
char * array_value_internal(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)

{
  char cVar1;
  undefined *puVar2;
  SHELL_VAR *var;
  ARRAY *a;
  WORD_LIST *list;
  undefined4 uVar3;
  char *pcVar4;
  uint uVar5;
  uint uVar6;
  ARRAY *a_00;
  uint uVar7;
  int iVar8;
  int *lenp;
  char *pcVar9;
  undefined4 unaff_s3;
  undefined4 unaff_s4;
  code *pcVar10;
  longlong lVar11;
  longlong lVar12;
  arrayind_t *indp_00;
  undefined4 in_stack_ffffffbc;
  int len;
  char *t;
  char *local_2c;
  
  puVar2 = PTR___stack_chk_guard_001464dc;
  lVar11 = CONCAT44(unaff_s3,unaff_s4);
  indp_00 = (arrayind_t *)(pidstat_table + 0x581);
  lenp = &len;
  pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f);
  local_2c = *(char **)PTR___stack_chk_guard_001464dc;
  var = array_variable_part(s,(int)pcVar4,&t,lenp);
  if (len == 0) goto LAB_00094ddc;
  cVar1 = *t;
  pcVar4 = t;
  if (((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')) {
    if (rtype != (int *)0x0) {
      iVar8 = 2;
      if (cVar1 == '*') {
        iVar8 = 1;
      }
      *rtype = iVar8;
    }
    if ((flags & 1U) == 0) {
      (**(code **)(indp_00 + -0xe45))(s);
      lVar12 = CONCAT44(len,lenp);
      a = (ARRAY *)0x0;
      pcVar4 = t;
      goto LAB_00094de0;
    }
    a = (ARRAY *)0x0;
    lVar12 = CONCAT44(len,lenp);
    if ((var == (SHELL_VAR *)0x0) ||
       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))
    goto LAB_00094de0;
    uVar5 = var->attributes;
    if ((uVar5 & 0x1000) == 0) {
      if ((uVar5 & 0x44) == 0) {
        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();
        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);
      }
      else if ((uVar5 & 0x40) == 0) {
        list = array_to_word_list(a_00);
        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;
      }
      else {
        list = assoc_to_word_list((HASH_TABLE *)a_00);
        lVar12 = CONCAT44(len,lenp);
        if (list == (WORD_LIST *)0x0) {
          a = (ARRAY *)0x0;
          goto LAB_00094de0;
        }
      }
      uVar5 = flags >> 1 & 8;
      if ((*t == '*') && ((quoted & 3U) != 0)) {
        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);
        a = (ARRAY *)quote_string(pcVar4);
        (**(code **)((int)indp_00 + -0x6044))(pcVar4);
      }
      else {
        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);
      }
      (**(code **)((int)indp_00 + -0x7f74))(list);
      lVar12 = CONCAT44(uVar5,lenp);
      pcVar4 = (char *)quoted;
      goto LAB_00094de0;
    }
  }
  else {
    if (rtype != (int *)0x0) {
      *rtype = 0;
    }
    if (var == (SHELL_VAR *)0x0) {
LAB_00094c78:
      if ((flags & 4U) == 0) {
        lVar11 = array_expand_index(var,t,len,flags);
        iVar8 = len;
        lenp = (int *)flags;
        if (lVar11 < 0) {
LAB_00094f18:
          if (var == (SHELL_VAR *)0x0) {
            pcVar10 = *(code **)(indp_00 + -0xe45);
            t[-1] = '\0';
            (*pcVar10)(s);
            a = (ARRAY *)0x0;
            t[-1] = '[';
            lVar12 = CONCAT44(iVar8,lenp);
            goto LAB_00094de0;
          }
          uVar5 = var->attributes;
          pcVar10 = *(code **)(indp_00 + -0xe45);
          if ((uVar5 & 4) != 0) {
            a = (ARRAY *)var->value;
            uVar6 = (uint)a->max_index;
            iVar8 = *(int *)&a->max_index;
            uVar7 = uVar6 + 1;
            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);
            pcVar4 = (char *)lVar11;
            if (-1 < lVar11) {
              uVar6 = uVar5 & 0x1000;
              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;
              *indp = lVar11;
              len = iVar8;
              goto LAB_00094c94;
            }
          }
LAB_00094fbc:
          (*pcVar10)(var->name);
          a = (ARRAY *)0x0;
          lVar12 = CONCAT44(iVar8,lenp);
          goto LAB_00094de0;
        }
        if (indp != (arrayind_t *)0x0) {
          *indp = lVar11;
        }
      }
      else if (indp == (arrayind_t *)0x0) {
        lVar11 = array_expand_index(var,t,len,flags);
        iVar8 = len;
        lenp = (int *)flags;
        if (lVar11 < 0) goto LAB_00094f18;
      }
      else {
        lVar11 = *indp;
        lenp = (int *)flags;
      }
LAB_00094c94:
      a = (ARRAY *)0x0;
      lVar12 = CONCAT44(len,lenp);
      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;
      a = (ARRAY *)var->value;
      if (a != (ARRAY *)0x0) {
        uVar5 = var->attributes;
        uVar6 = uVar5 & 0x1000;
        iVar8 = len;
        goto LAB_00094cb0;
      }
    }
    else {
      uVar5 = var->attributes;
      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;
      pcVar4 = t + len;
      iVar8 = len;
      if ((uVar5 & 0x40) == 0) {
        a = (ARRAY *)var->value;
        uVar6 = uVar5 & 0x1000;
        if (a == (ARRAY *)0x0) {
          a = (ARRAY *)0x0;
          lVar12 = CONCAT44(len,lenp);
          goto LAB_00094de0;
        }
LAB_00094cb0:
        pcVar9 = (char *)0x0;
        len = iVar8;
        if (uVar6 != 0) goto LAB_00094ddc;
      }
      else {
        pcVar4[-1] = '\0';
        if ((flags & 0x20U) != 0) {
          iVar8 = (**(code **)(indp_00 + -0xc36))(t);
                    /* WARNING: Subroutine does not return */
          xmalloc(iVar8 + 1);
        }
        pcVar4 = (char *)0x0;
        pcVar9 = expand_assignment_string_to_string(t,0);
        t[len + -1] = ']';
        if (pcVar9 == (char *)0x0) {
LAB_00094fb8:
          pcVar10 = *(code **)(indp_00 + -0xe45);
          goto LAB_00094fbc;
        }
        pcVar10 = *(code **)((int)indp_00 + -0x6044);
        if (*pcVar9 == '\0') {
          (*pcVar10)(pcVar9);
          goto LAB_00094fb8;
        }
        a = (ARRAY *)var->value;
        if (a == (ARRAY *)0x0) {
          (*pcVar10)(pcVar9);
          lVar12 = CONCAT44(iVar8,lenp);
          goto LAB_00094de0;
        }
        uVar5 = var->attributes;
        if ((uVar5 & 0x1000) != 0) {
          (*pcVar10)(pcVar9);
          a = (ARRAY *)0x0;
          lVar12 = CONCAT44(iVar8,lenp);
          goto LAB_00094de0;
        }
      }
      if ((uVar5 & 0x44) != 0) {
        if ((uVar5 & 0x40) == 0) {
          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));
          lVar12 = lVar11;
        }
        else {
          pcVar4 = pcVar9;
          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);
          (**(code **)((int)indp_00 + -0x6044))(pcVar9);
          lVar12 = CONCAT44(iVar8,lenp);
        }
        goto LAB_00094de0;
      }
      len = iVar8;
      lVar12 = CONCAT44(iVar8,lenp);
      if (lVar11 == 0) goto LAB_00094de0;
    }
  }
LAB_00094ddc:
  a = (ARRAY *)0x0;
  lVar12 = CONCAT44(len,lenp);
LAB_00094de0:
  if (local_2c != *(char **)puVar2) {
    pcVar9 = local_2c;
    (**(code **)(indp_00 + -0xc17))();
    pcVar4 = array_value_internal
                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,
                        indp_00);
    return pcVar4;
  }
  return (char *)a;
}



int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)

{
  char cVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  char *pcVar13;
  undefined4 unaff_s3;
  undefined4 unaff_s4;
  longlong lVar14;
  int local_34;
  char *local_30;
  int local_2c;
  
  puVar6 = PTR___stack_chk_guard_001464dc;
  lVar3 = CONCAT44(unaff_s3,unaff_s4);
  local_2c = *(int *)PTR___stack_chk_guard_001464dc;
  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);
  if (local_34 == 0) goto LAB_00094ddc;
  cVar1 = *local_30;
  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {
    if (param_4 != (undefined4 *)0x0) {
      uVar10 = 2;
      if (cVar1 == '*') {
        uVar10 = 1;
      }
      *param_4 = uVar10;
    }
    if ((param_3 & 1) == 0) {
      (*(code *)PTR_err_badarraysub_00145318)(param_1);
      iVar8 = 0;
      goto LAB_00094de0;
    }
    iVar8 = 0;
    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;
    uVar11 = puVar7[5];
    if ((uVar11 & 0x1000) == 0) {
      if ((uVar11 & 0x44) == 0) {
        uVar10 = (*(code *)PTR_make_word_001445bc)();
        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);
      }
      else if ((uVar11 & 0x40) == 0) {
        iVar9 = array_to_word_list();
        if (iVar9 == 0) goto LAB_00094ddc;
      }
      else {
        iVar9 = assoc_to_word_list();
        if (iVar9 == 0) {
          iVar8 = 0;
          goto LAB_00094de0;
        }
      }
      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {
        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)
                           (iVar9,param_2,(int)param_3 >> 1 & 8);
        iVar8 = quote_string(uVar10);
        (*(code *)PTR_free_001464fc)(uVar10);
      }
      else {
        iVar8 = string_list_dollar_at(iVar9,param_2);
      }
      (*(code *)PTR_dispose_words_001445cc)(iVar9);
      goto LAB_00094de0;
    }
  }
  else {
    if (param_4 != (undefined4 *)0x0) {
      *param_4 = 0;
    }
    if (puVar7 == (undefined4 *)0x0) {
LAB_00094c78:
      if ((param_3 & 4) == 0) {
        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);
        if (lVar14 < 0) {
LAB_00094f18:
          puVar5 = PTR_err_badarraysub_00145318;
          if (puVar7 == (undefined4 *)0x0) {
            local_30[-1] = '\0';
            (*(code *)puVar5)(param_1);
            iVar8 = 0;
            local_30[-1] = '[';
            goto LAB_00094de0;
          }
          uVar11 = puVar7[5];
          if ((uVar11 & 4) != 0) {
            iVar8 = puVar7[1];
            uVar12 = *(uint *)(iVar8 + 0xc) + 1;
            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);
            lVar4 = lVar14 + lVar2;
            lVar3 = lVar14 + lVar2;
            lVar14 = lVar14 + lVar2;
            if (-1 < lVar4) {
              uVar12 = uVar11 & 0x1000;
              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;
              *param_5 = lVar4;
              goto LAB_00094c94;
            }
          }
LAB_00094fbc:
          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);
          iVar8 = 0;
          goto LAB_00094de0;
        }
        if (param_5 != (longlong *)0x0) {
          *param_5 = lVar14;
        }
      }
      else if (param_5 == (longlong *)0x0) {
        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);
        if (lVar14 < 0) goto LAB_00094f18;
      }
      else {
        lVar14 = *param_5;
      }
LAB_00094c94:
      iVar8 = 0;
      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;
      iVar8 = puVar7[1];
      if (iVar8 != 0) {
        uVar11 = puVar7[5];
        uVar12 = uVar11 & 0x1000;
        lVar3 = lVar14;
        goto LAB_00094cb0;
      }
    }
    else {
      uVar11 = puVar7[5];
      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;
      if ((uVar11 & 0x40) == 0) {
        iVar8 = puVar7[1];
        uVar12 = uVar11 & 0x1000;
        if (iVar8 == 0) {
          iVar8 = 0;
          goto LAB_00094de0;
        }
LAB_00094cb0:
        pcVar13 = (char *)0x0;
        if (uVar12 != 0) goto LAB_00094ddc;
      }
      else {
        local_30[local_34 + -1] = '\0';
        if ((param_3 & 0x20) == 0) {
          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);
          local_30[local_34 + -1] = ']';
          if (pcVar13 != (char *)0x0) goto LAB_00094eac;
          goto LAB_00094fbc;
        }
        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);
        uVar10 = xmalloc(iVar8 + 1);
        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);
        local_30[local_34 + -1] = ']';
LAB_00094eac:
        if (*pcVar13 == '\0') {
          (*(code *)PTR_free_001464fc)(pcVar13);
          goto LAB_00094fbc;
        }
        iVar8 = puVar7[1];
        if (iVar8 == 0) {
          (*(code *)PTR_free_001464fc)(pcVar13);
          goto LAB_00094de0;
        }
        uVar11 = puVar7[5];
        if ((uVar11 & 0x1000) != 0) {
          (*(code *)PTR_free_001464fc)(pcVar13);
          iVar8 = 0;
          goto LAB_00094de0;
        }
      }
      if ((uVar11 & 0x44) != 0) {
        if ((uVar11 & 0x40) == 0) {
          iVar8 = array_reference(iVar8);
        }
        else {
          iVar8 = assoc_reference(iVar8,pcVar13);
          (*(code *)PTR_free_001464fc)(pcVar13);
        }
        goto LAB_00094de0;
      }
      if (lVar3 == 0) goto LAB_00094de0;
    }
  }
LAB_00094ddc:
  iVar8 = 0;
LAB_00094de0:
  if (local_2c != *(int *)puVar6) {
    (*(code *)PTR___stack_chk_fail_00146488)();
    iVar8 = FUN_00094bb4();
    return iVar8;
  }
  return iVar8;
}


lui gp,0xb
addiu gp,gp,0x798c
addu gp,gp,t9
addiu sp,sp,-0x58
lw t9,-0x74e8(gp)
sw s2,0x38(sp)
lw s2,-0x6064(gp)
sw s1,0x34(sp)
or s1,a2,zero
sw s8,0x50(sp)
addiu a2,sp,0x28
sw s7,0x4c(sp)
or s8,a3,zero
sw gp,0x10(sp)
or s7,a1,zero
sw s6,0x48(sp)
addiu a3,sp,0x24
sw s5,0x44(sp)
ext a1,s1,0x5,0x1
sw ra,0x54(sp)
or s6,a0,zero
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s0,0x30(sp)
lw v0,0x0(s2)
lw s5,0x68(sp)
sw v0,0x2c(sp)
bal 0x00094b3c
_nop
lw a2,0x24(sp)
beq a2,zero,0x00094ddc
_lw gp,0x10(sp)
lw a1,0x28(sp)
or s0,v0,zero
li v1,0x40
lb v0,0x0(a1)
beq v0,v1,0x00094cfc
_li v1,0x2a
beq v0,v1,0x00094cfc
_nop
beq s8,zero,0x00094c60
_nop
sw zero,0x0(s8)
beq s0,zero,0x00094c78
_li v0,0x40
lw v1,0x14(s0)
andi a0,v1,0x44
beq a0,v0,0x00094e4c
_andi v0,v1,0x40
andi v0,s1,0x4
beq v0,zero,0x00094e1c
_lw t9,-0x722c(gp)
beq s5,zero,0x00094f00
_or a3,s1,zero
lw s3,0x0(s5)
lw s4,0x4(s5)
beq s0,zero,0x00094de0
_or v0,zero,zero
lw v0,0x4(s0)
beq v0,zero,0x00094ddc
_nop
lw v1,0x14(s0)
andi a0,v1,0x1000
bne a0,zero,0x00094ddc
_or s1,zero,zero
andi a0,v1,0x44
beq a0,zero,0x00094dd0
_andi v1,v1,0x40
beq v1,zero,0x00094ee8
_lw t9,-0x7a18(gp)
lw t9,-0x75d8(gp)
or a0,v0,zero
bal 0x00095694
_or a1,s1,zero
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x6044(gp)
jalr t9
_sw v0,0x1c(sp)
lw gp,0x10(sp)
b 0x00094de0
_lw v0,0x1c(sp)
lb a0,0x1(a1)
li v1,0x5d
bne a0,v1,0x00094c54
_nop
beq s8,zero,0x00094d24
_li a0,0x1
li v1,0x2
xori v0,v0,0x2a
movz v1,a0,v0
sw v1,0x0(s8)
andi v0,s1,0x1
beq v0,zero,0x0009506c
_lw t9,-0x7228(gp)
beq s0,zero,0x00094de0
_or v0,zero,zero
lw a0,0x4(s0)
beq a0,zero,0x00094de0
_nop
lw v0,0x14(s0)
andi v1,v0,0x1000
bne v1,zero,0x00094ddc
_andi v1,v0,0x44
beq v1,zero,0x00095000
_andi v0,v0,0x40
bne v0,zero,0x00094fd0
_lw t9,-0x7258(gp)
lw t9,-0x7270(gp)
bal 0x00091718
_nop
lw gp,0x10(sp)
beq v0,zero,0x00094ddc
_or s0,v0,zero
lw v1,0x28(sp)
sra s1,s1,0x1
li v0,0x2a
lb v1,0x0(v1)
bne v1,v0,0x00094da0
_andi a2,s1,0x8
andi v0,s7,0x3
bne v0,zero,0x0009502c
_lw t9,-0x7314(gp)
lw t9,-0x72d8(gp)
or a1,s7,zero
bal 0x00076134
_or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x7f74(gp)
or a0,s0,zero
jalr t9
_sw v0,0x1c(sp)
lw gp,0x10(sp)
b 0x00094de0
_lw v0,0x1c(sp)
or s3,s3,s4
beq s3,zero,0x00094de0
_nop
or v0,zero,zero
lw a0,0x2c(sp)
lw v1,0x0(s2)
bne a0,v1,0x000950b8
_lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
or a3,s1,zero
bal 0x000939c0
_or a0,s0,zero
or s3,v0,zero
lw gp,0x10(sp)
bltz s3,0x00094f18
_or s4,v1,zero
beq s5,zero,0x00094c94
_nop
sw s3,0x0(s5)
b 0x00094c94
_sw s4,0x4(s5)
beq v0,zero,0x00094f74
_addu a1,a1,a2
andi s1,s1,0x20
beq s1,zero,0x00094f88
_sb zero,-0x1(a1)
lw t9,-0x61b0(gp)
jalr t9
_lw a0,0x28(sp)
lw gp,0x10(sp)
lw t9,-0x7f90(gp)
bal 0x000ad290
_addiu a0,v0,0x1
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x6128(gp)
jalr t9
_lw a1,0x28(sp)
lw v1,0x24(sp)
or s1,v0,zero
lw v0,0x28(sp)
lw gp,0x10(sp)
addu v0,v0,v1
li v1,0x5d
sb v1,-0x1(v0)
lb v0,0x0(s1)
beq v0,zero,0x00095080
_lw t9,-0x6044(gp)
lw v0,0x4(s0)
beq v0,zero,0x00094fec
_or a0,s1,zero
lw v1,0x14(s0)
andi a0,v1,0x1000
beq a0,zero,0x00094cbc
_andi a0,v1,0x44
jalr t9
_or a0,s1,zero
or v0,zero,zero
b 0x00094de0
_lw gp,0x10(sp)
or a0,v0,zero
or a2,s3,zero
bal 0x00091530
_or a3,s4,zero
b 0x00094de0
_lw gp,0x10(sp)
bal 0x000939c0
_or a0,s0,zero
or s3,v0,zero
lw gp,0x10(sp)
bgez s3,0x00094c94
_or s4,v1,zero
beq s0,zero,0x00095090
_lw v0,0x28(sp)
lw v1,0x14(s0)
andi v0,v1,0x4
beq v0,zero,0x00094fbc
_lw t9,-0x7228(gp)
lw v0,0x4(s0)
lw a0,0xc(v0)
lw a2,0x8(v0)
addiu a1,a0,0x1
sltu a0,a1,a0
addu a0,a0,a2
addu a1,s4,a1
addu s3,s3,a0
sltu s4,a1,s4
addu s3,s4,s3
bltz s3,0x00094fbc
_or s4,a1,zero
beq s5,zero,0x00094cb0
_andi a0,v1,0x1000
sw s3,0x0(s5)
b 0x00094c94
_sw s4,0x4(s5)
lw v0,0x4(s0)
bne v0,zero,0x00094cb0
_andi a0,v1,0x1000
b 0x00094de0
_or v0,zero,zero
lw t9,-0x74bc(gp)
or a1,zero,zero
bal 0x00081488
_lw a0,0x28(sp)
lw v1,0x24(sp)
or s1,v0,zero
lw v0,0x28(sp)
lw gp,0x10(sp)
addu v0,v0,v1
li v1,0x5d
bne s1,zero,0x00094eac
_sb v1,-0x1(v0)
lw t9,-0x7228(gp)
jalr t9
_lw a0,0x0(s0)
or v0,zero,zero
b 0x00094de0
_lw gp,0x10(sp)
bal 0x00096540
_nop
lw gp,0x10(sp)
bne v0,zero,0x00094d7c
_or s0,v0,zero
b 0x00094de0
_or v0,zero,zero
jalr t9
_sw v0,0x1c(sp)
lw gp,0x10(sp)
b 0x00094de0
_lw v0,0x1c(sp)
lw t9,-0x7f84(gp)
jalr t9
_nop
or a1,zero,zero
lw gp,0x10(sp)
lw t9,-0x7f88(gp)
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
b 0x00094d7c
_or s0,v0,zero
or a1,s7,zero
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x72e8(gp)
bal 0x00075e20
_or s1,v0,zero
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x6044(gp)
jalr t9
_sw v0,0x1c(sp)
lw gp,0x10(sp)
b 0x00094db4
_lw v0,0x1c(sp)
jalr t9
_or a0,s6,zero
or v0,zero,zero
b 0x00094de0
_lw gp,0x10(sp)
jalr t9
_or a0,s1,zero
b 0x00094fb8
_lw gp,0x10(sp)
or a0,s6,zero
lw t9,-0x7228(gp)
jalr t9
_sb zero,-0x1(v0)
li a0,0x5b
lw v1,0x28(sp)
or v0,zero,zero
lw gp,0x10(sp)
b 0x00094de0
_sb a0,-0x1(v1)
lw t9,-0x60b8(gp)
jalr t9
_nop
(translation_unit "int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)\n\n{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}\n\n" (function_definition "int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)\n\n{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" primitive_type (function_declarator "FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "longlong *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "longlong lVar14;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "lVar3 = CONCAT44(unaff_s3,unaff_s4);" (assignment_expression "lVar3 = CONCAT44(unaff_s3,unaff_s4)" identifier = (call_expression "CONCAT44(unaff_s3,unaff_s4)" identifier (argument_list "(unaff_s3,unaff_s4)" ( identifier , identifier )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);" (assignment_expression "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" identifier = (cast_expression "(undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" identifier (argument_list "(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" ( identifier , (binary_expression "(param_3 << 0x1a) >> 0x1f" (parenthesized_expression "(param_3 << 0x1a)" ( (binary_expression "param_3 << 0x1a" identifier << number_literal) )) >> number_literal) , (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_34" & identifier) ))))) ;) (if_statement "if (local_34 == 0) goto LAB_00094ddc;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) (expression_statement "cVar1 = *local_30;" (assignment_expression "cVar1 = *local_30" identifier = (pointer_expression "*local_30" * identifier)) ;) (if_statement "if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" if (parenthesized_expression "(((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']'))" ( (binary_expression "((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')" (parenthesized_expression "((cVar1 == '@') || (cVar1 == '*'))" ( (binary_expression "(cVar1 == '@') || (cVar1 == '*')" (parenthesized_expression "(cVar1 == '@')" ( (binary_expression "cVar1 == '@'" identifier == (char_literal "'@'" ' character ')) )) || (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "(local_30[1] == ']')" ( (binary_expression "local_30[1] == ']'" (subscript_expression "local_30[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" { (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) (if_statement "if (cVar1 == '*') {\n        uVar10 = 1;\n      }" if (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        uVar10 = 1;\n      }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) })) (expression_statement "*param_4 = uVar10;" (assignment_expression "*param_4 = uVar10" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (if_statement "if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((param_3 & 1) == 0)" ( (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" { (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(param_1);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(param_1)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" ( (pointer_expression "*(code *)PTR_err_badarraysub_00145318" * (cast_expression "(code *)PTR_err_badarraysub_00145318" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;" if (parenthesized_expression "((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0))" ( (binary_expression "(puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)" (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar7[1] == 0)" ( (binary_expression "puVar7[1] == 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((uVar11 & 0x1000) == 0)" ( (binary_expression "(uVar11 & 0x1000) == 0" (parenthesized_expression "(uVar11 & 0x1000)" ( (binary_expression "uVar11 & 0x1000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" { (if_statement "if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x44) == 0)" ( (binary_expression "(uVar11 & 0x44) == 0" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }" { (expression_statement "uVar10 = (*(code *)PTR_make_word_001445bc)();" (assignment_expression "uVar10 = (*(code *)PTR_make_word_001445bc)()" identifier = (call_expression "(*(code *)PTR_make_word_001445bc)()" (parenthesized_expression "(*(code *)PTR_make_word_001445bc)" ( (pointer_expression "*(code *)PTR_make_word_001445bc" * (cast_expression "(code *)PTR_make_word_001445bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);" (assignment_expression "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0)" identifier = (call_expression "(*(code *)PTR_make_word_list_001445b8)(uVar10,0)" (parenthesized_expression "(*(code *)PTR_make_word_list_001445b8)" ( (pointer_expression "*(code *)PTR_make_word_list_001445b8" * (cast_expression "(code *)PTR_make_word_list_001445b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,0)" ( identifier , number_literal )))) ;) }) (else_clause "else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }" { (expression_statement "iVar9 = array_to_word_list();" (assignment_expression "iVar9 = array_to_word_list()" identifier = (call_expression "array_to_word_list()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) goto LAB_00094ddc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "iVar9 = assoc_to_word_list();" (assignment_expression "iVar9 = assoc_to_word_list()" identifier = (call_expression "assoc_to_word_list()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))))) (if_statement "if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" if (parenthesized_expression "((*local_30 == '*') && ((param_2 & 3) != 0))" ( (binary_expression "(*local_30 == '*') && ((param_2 & 3) != 0)" (parenthesized_expression "(*local_30 == '*')" ( (binary_expression "*local_30 == '*'" (pointer_expression "*local_30" * identifier) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "((param_2 & 3) != 0)" ( (binary_expression "(param_2 & 3) != 0" (parenthesized_expression "(param_2 & 3)" ( (binary_expression "param_2 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }" { (expression_statement "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);" (assignment_expression "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" identifier = (call_expression "(*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" (parenthesized_expression "(*(code *)PTR_string_list_dollar_star_0014522c)" ( (pointer_expression "*(code *)PTR_string_list_dollar_star_0014522c" * (cast_expression "(code *)PTR_string_list_dollar_star_0014522c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,param_2,(int)param_3 >> 1 & 8)" ( identifier , identifier , (binary_expression "(int)param_3 >> 1 & 8" (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal) )))) ;) (expression_statement "iVar8 = quote_string(uVar10);" (assignment_expression "iVar8 = quote_string(uVar10)" identifier = (call_expression "quote_string(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_free_001464fc)(uVar10);" (call_expression "(*(code *)PTR_free_001464fc)(uVar10)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))) ;) }) (else_clause "else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" else (compound_statement "{\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" { (expression_statement "iVar8 = string_list_dollar_at(iVar9,param_2);" (assignment_expression "iVar8 = string_list_dollar_at(iVar9,param_2)" identifier = (call_expression "string_list_dollar_at(iVar9,param_2)" identifier (argument_list "(iVar9,param_2)" ( identifier , identifier )))) ;) }))) (expression_statement "(*(code *)PTR_dispose_words_001445cc)(iVar9);" (call_expression "(*(code *)PTR_dispose_words_001445cc)(iVar9)" (parenthesized_expression "(*(code *)PTR_dispose_words_001445cc)" ( (pointer_expression "*(code *)PTR_dispose_words_001445cc" * (cast_expression "(code *)PTR_dispose_words_001445cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" else (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = 0;\n    }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) (if_statement "if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }" { (labeled_statement "LAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" statement_identifier : (if_statement "if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" if (parenthesized_expression "((param_3 & 4) == 0)" ( (binary_expression "(param_3 & 4) == 0" (parenthesized_expression "(param_3 & 4)" ( (binary_expression "param_3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }" { (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" identifier = (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" identifier (argument_list "(puVar7,local_30,local_34,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (labeled_statement "LAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;" statement_identifier : (expression_statement "puVar5 = PTR_err_badarraysub_00145318;" (assignment_expression "puVar5 = PTR_err_badarraysub_00145318" identifier = identifier) ;)) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" { (expression_statement "local_30[-1] = '\0';" (assignment_expression "local_30[-1] = '\0'" (subscript_expression "local_30[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*(code *)puVar5)(param_1);" (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "local_30[-1] = '[';" (assignment_expression "local_30[-1] = '['" (subscript_expression "local_30[-1]" identifier [ number_literal ]) = (char_literal "'['" ' character ')) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" if (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" { (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = *(uint *)(iVar8 + 0xc) + 1;" (assignment_expression "uVar12 = *(uint *)(iVar8 + 0xc) + 1" identifier = (binary_expression "*(uint *)(iVar8 + 0xc) + 1" (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);" (assignment_expression "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" identifier = (call_expression "CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" identifier (argument_list "((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" ( (binary_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8)" (call_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < *(uint *)(iVar8 + 0xc))" ( (binary_expression "uVar12 < *(uint *)(iVar8 + 0xc)" identifier < (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) , identifier )))) ;) (expression_statement "lVar4 = lVar14 + lVar2;" (assignment_expression "lVar4 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (expression_statement "lVar3 = lVar14 + lVar2;" (assignment_expression "lVar3 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (expression_statement "lVar14 = lVar14 + lVar2;" (assignment_expression "lVar14 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (if_statement "if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" if (parenthesized_expression "(-1 < lVar4)" ( (binary_expression "-1 < lVar4" number_literal < identifier) )) (compound_statement "{\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" { (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (if_statement "if (param_5 == (longlong *)0x0) goto LAB_00094cb0;" if (parenthesized_expression "(param_5 == (longlong *)0x0)" ( (binary_expression "param_5 == (longlong *)0x0" identifier == (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;)) (expression_statement "*param_5 = lVar4;" (assignment_expression "*param_5 = lVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) (goto_statement "goto LAB_00094c94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);" statement_identifier : (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(*puVar7);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(*puVar7)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" ( (pointer_expression "*(code *)PTR_err_badarraysub_00145318" * (cast_expression "(code *)PTR_err_badarraysub_00145318" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar7)" ( (pointer_expression "*puVar7" * identifier) ))) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (if_statement "if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }" if (parenthesized_expression "(param_5 != (longlong *)0x0)" ( (binary_expression "param_5 != (longlong *)0x0" identifier != (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_5 = lVar14;\n        }" { (expression_statement "*param_5 = lVar14;" (assignment_expression "*param_5 = lVar14" (pointer_expression "*param_5" * identifier) = identifier) ;) })) }) (else_clause "else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" else (if_statement "if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" if (parenthesized_expression "(param_5 == (longlong *)0x0)" ( (binary_expression "param_5 == (longlong *)0x0" identifier == (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }" { (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" identifier = (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" identifier (argument_list "(puVar7,local_30,local_34,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar14 < 0) goto LAB_00094f18;" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00094f18;" goto statement_identifier ;)) }) (else_clause "else {\n        lVar14 = *param_5;\n      }" else (compound_statement "{\n        lVar14 = *param_5;\n      }" { (expression_statement "lVar14 = *param_5;" (assignment_expression "lVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) })))))) (labeled_statement "LAB_00094c94:\n      iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (if_statement "if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" { (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (expression_statement "lVar3 = lVar14;" (assignment_expression "lVar3 = lVar14" identifier = identifier) ;) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" else (compound_statement "{\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" { (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;" if (parenthesized_expression "((uVar11 & 0x44) != 0x40)" ( (binary_expression "(uVar11 & 0x44) != 0x40" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00094c78;" goto statement_identifier ;)) (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }" { (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (if_statement "if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (labeled_statement "LAB_00094cb0:\n        pcVar13 = (char *)0x0;" statement_identifier : (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar12 != 0) goto LAB_00094ddc;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "local_30[local_34 + -1] = '\0';" (assignment_expression "local_30[local_34 + -1] = '\0'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" if (parenthesized_expression "((param_3 & 0x20) == 0)" ( (binary_expression "(param_3 & 0x20) == 0" (parenthesized_expression "(param_3 & 0x20)" ( (binary_expression "param_3 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" { (expression_statement "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);" (assignment_expression "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0)" identifier = (cast_expression "(char *)expand_assignment_string_to_string(local_30,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "expand_assignment_string_to_string(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal ))))) ;) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar13 != (char *)0x0) goto LAB_00094eac;" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094eac;" goto statement_identifier ;)) (goto_statement "goto LAB_00094fbc;" goto statement_identifier ;) })) (expression_statement "iVar8 = (*(code *)PTR_strlen_00146390)(local_30);" (assignment_expression "iVar8 = (*(code *)PTR_strlen_00146390)(local_30)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(local_30)" (parenthesized_expression "(*(code *)PTR_strlen_00146390)" ( (pointer_expression "*(code *)PTR_strlen_00146390" * (cast_expression "(code *)PTR_strlen_00146390" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "uVar10 = xmalloc(iVar8 + 1);" (assignment_expression "uVar10 = xmalloc(iVar8 + 1)" identifier = (call_expression "xmalloc(iVar8 + 1)" identifier (argument_list "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);" (assignment_expression "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" identifier = (cast_expression "(char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" (parenthesized_expression "(*(code *)PTR_strcpy_00146418)" ( (pointer_expression "*(code *)PTR_strcpy_00146418" * (cast_expression "(code *)PTR_strcpy_00146418" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,local_30)" ( identifier , identifier ))))) ;) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (labeled_statement "LAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" statement_identifier : (if_statement "if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00094fbc;" goto statement_identifier ;) }))) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "((uVar11 & 0x1000) != 0)" ( (binary_expression "(uVar11 & 0x1000) != 0" (parenthesized_expression "(uVar11 & 0x1000)" ( (binary_expression "uVar11 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" if (parenthesized_expression "((uVar11 & 0x44) != 0)" ( (binary_expression "(uVar11 & 0x44) != 0" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" { (if_statement "if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar8 = array_reference(iVar8);\n        }" { (expression_statement "iVar8 = array_reference(iVar8);" (assignment_expression "iVar8 = array_reference(iVar8)" identifier = (call_expression "array_reference(iVar8)" identifier (argument_list "(iVar8)" ( identifier )))) ;) }) (else_clause "else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" else (compound_statement "{\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" { (expression_statement "iVar8 = assoc_reference(iVar8,pcVar13);" (assignment_expression "iVar8 = assoc_reference(iVar8,pcVar13)" identifier = (call_expression "assoc_reference(iVar8,pcVar13)" identifier (argument_list "(iVar8,pcVar13)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (if_statement "if (lVar3 == 0) goto LAB_00094de0;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00094ddc:\n  iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar6)" ( (binary_expression "local_2c != *(int *)puVar6" identifier != (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = FUN_00094bb4();" (assignment_expression "iVar8 = FUN_00094bb4()" identifier = (call_expression "FUN_00094bb4()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) }))) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit "char * array_value_internal(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  SHELL_VAR *var;\n  ARRAY *a;\n  WORD_LIST *list;\n  undefined4 uVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  ARRAY *a_00;\n  uint uVar7;\n  int iVar8;\n  int *lenp;\n  char *pcVar9;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  code *pcVar10;\n  longlong lVar11;\n  longlong lVar12;\n  arrayind_t *indp_00;\n  undefined4 in_stack_ffffffbc;\n  int len;\n  char *t;\n  char *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_001464dc;\n  lVar11 = CONCAT44(unaff_s3,unaff_s4);\n  indp_00 = (arrayind_t *)(pidstat_table + 0x581);\n  lenp = &len;\n  pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f);\n  local_2c = *(char **)PTR___stack_chk_guard_001464dc;\n  var = array_variable_part(s,(int)pcVar4,&t,lenp);\n  if (len == 0) goto LAB_00094ddc;\n  cVar1 = *t;\n  pcVar4 = t;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')) {\n    if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }\n    if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }\n    a = (ARRAY *)0x0;\n    lVar12 = CONCAT44(len,lenp);\n    if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;\n    uVar5 = var->attributes;\n    if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  a = (ARRAY *)0x0;\n  lVar12 = CONCAT44(len,lenp);\nLAB_00094de0:\n  if (local_2c != *(char **)puVar2) {\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }\n  return (char *)a;\n}\n\n" (function_definition "char * array_value_internal(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  SHELL_VAR *var;\n  ARRAY *a;\n  WORD_LIST *list;\n  undefined4 uVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  ARRAY *a_00;\n  uint uVar7;\n  int iVar8;\n  int *lenp;\n  char *pcVar9;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  code *pcVar10;\n  longlong lVar11;\n  longlong lVar12;\n  arrayind_t *indp_00;\n  undefined4 in_stack_ffffffbc;\n  int len;\n  char *t;\n  char *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_001464dc;\n  lVar11 = CONCAT44(unaff_s3,unaff_s4);\n  indp_00 = (arrayind_t *)(pidstat_table + 0x581);\n  lenp = &len;\n  pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f);\n  local_2c = *(char **)PTR___stack_chk_guard_001464dc;\n  var = array_variable_part(s,(int)pcVar4,&t,lenp);\n  if (len == 0) goto LAB_00094ddc;\n  cVar1 = *t;\n  pcVar4 = t;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')) {\n    if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }\n    if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }\n    a = (ARRAY *)0x0;\n    lVar12 = CONCAT44(len,lenp);\n    if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;\n    uVar5 = var->attributes;\n    if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  a = (ARRAY *)0x0;\n  lVar12 = CONCAT44(len,lenp);\nLAB_00094de0:\n  if (local_2c != *(char **)puVar2) {\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }\n  return (char *)a;\n}" primitive_type (pointer_declarator "* array_value_internal(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)" * (function_declarator "array_value_internal(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)" identifier (parameter_list "(char *s,int quoted,int flags,int *rtype,arrayind_t *indp)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "int quoted" primitive_type identifier) , (parameter_declaration "int flags" primitive_type identifier) , (parameter_declaration "int *rtype" primitive_type (pointer_declarator "*rtype" * identifier)) , (parameter_declaration "arrayind_t *indp" type_identifier (pointer_declarator "*indp" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  SHELL_VAR *var;\n  ARRAY *a;\n  WORD_LIST *list;\n  undefined4 uVar3;\n  char *pcVar4;\n  uint uVar5;\n  uint uVar6;\n  ARRAY *a_00;\n  uint uVar7;\n  int iVar8;\n  int *lenp;\n  char *pcVar9;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  code *pcVar10;\n  longlong lVar11;\n  longlong lVar12;\n  arrayind_t *indp_00;\n  undefined4 in_stack_ffffffbc;\n  int len;\n  char *t;\n  char *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_001464dc;\n  lVar11 = CONCAT44(unaff_s3,unaff_s4);\n  indp_00 = (arrayind_t *)(pidstat_table + 0x581);\n  lenp = &len;\n  pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f);\n  local_2c = *(char **)PTR___stack_chk_guard_001464dc;\n  var = array_variable_part(s,(int)pcVar4,&t,lenp);\n  if (len == 0) goto LAB_00094ddc;\n  cVar1 = *t;\n  pcVar4 = t;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')) {\n    if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }\n    if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }\n    a = (ARRAY *)0x0;\n    lVar12 = CONCAT44(len,lenp);\n    if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;\n    uVar5 = var->attributes;\n    if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  a = (ARRAY *)0x0;\n  lVar12 = CONCAT44(len,lenp);\nLAB_00094de0:\n  if (local_2c != *(char **)puVar2) {\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }\n  return (char *)a;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "SHELL_VAR *var;" type_identifier (pointer_declarator "*var" * identifier) ;) (declaration "ARRAY *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "WORD_LIST *list;" type_identifier (pointer_declarator "*list" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "ARRAY *a_00;" type_identifier (pointer_declarator "*a_00" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *lenp;" primitive_type (pointer_declarator "*lenp" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "longlong lVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "arrayind_t *indp_00;" type_identifier (pointer_declarator "*indp_00" * identifier) ;) (declaration "undefined4 in_stack_ffffffbc;" type_identifier identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "char *t;" primitive_type (pointer_declarator "*t" * identifier) ;) (declaration "char *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "lVar11 = CONCAT44(unaff_s3,unaff_s4);" (assignment_expression "lVar11 = CONCAT44(unaff_s3,unaff_s4)" identifier = (call_expression "CONCAT44(unaff_s3,unaff_s4)" identifier (argument_list "(unaff_s3,unaff_s4)" ( identifier , identifier )))) ;) (expression_statement "indp_00 = (arrayind_t *)(pidstat_table + 0x581);" (assignment_expression "indp_00 = (arrayind_t *)(pidstat_table + 0x581)" identifier = (cast_expression "(arrayind_t *)(pidstat_table + 0x581)" ( (type_descriptor "arrayind_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pidstat_table + 0x581)" ( (binary_expression "pidstat_table + 0x581" identifier + number_literal) )))) ;) (expression_statement "lenp = &len;" (assignment_expression "lenp = &len" identifier = (pointer_expression "&len" & identifier)) ;) (expression_statement "pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f);" (assignment_expression "pcVar4 = (char *)((uint)(flags << 0x1a) >> 0x1f)" identifier = (cast_expression "(char *)((uint)(flags << 0x1a) >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(flags << 0x1a) >> 0x1f)" ( (binary_expression "(uint)(flags << 0x1a) >> 0x1f" (call_expression "(uint)(flags << 0x1a)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1a)" ( (binary_expression "flags << 0x1a" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "local_2c = *(char **)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(char **)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_001464dc" * (cast_expression "(char **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "var = array_variable_part(s,(int)pcVar4,&t,lenp);" (assignment_expression "var = array_variable_part(s,(int)pcVar4,&t,lenp)" identifier = (call_expression "array_variable_part(s,(int)pcVar4,&t,lenp)" identifier (argument_list "(s,(int)pcVar4,&t,lenp)" ( identifier , (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&t" & identifier) , identifier )))) ;) (if_statement "if (len == 0) goto LAB_00094ddc;" if (parenthesized_expression "(len == 0)" ( (binary_expression "len == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) (expression_statement "cVar1 = *t;" (assignment_expression "cVar1 = *t" identifier = (pointer_expression "*t" * identifier)) ;) (expression_statement "pcVar4 = t;" (assignment_expression "pcVar4 = t" identifier = identifier) ;) (if_statement "if (((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')) {\n    if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }\n    if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }\n    a = (ARRAY *)0x0;\n    lVar12 = CONCAT44(len,lenp);\n    if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;\n    uVar5 = var->attributes;\n    if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }" if (parenthesized_expression "(((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']'))" ( (binary_expression "((cVar1 == '@') || (cVar1 == '*')) && (t[1] == ']')" (parenthesized_expression "((cVar1 == '@') || (cVar1 == '*'))" ( (binary_expression "(cVar1 == '@') || (cVar1 == '*')" (parenthesized_expression "(cVar1 == '@')" ( (binary_expression "cVar1 == '@'" identifier == (char_literal "'@'" ' character ')) )) || (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "(t[1] == ']')" ( (binary_expression "t[1] == ']'" (subscript_expression "t[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n    if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }\n    if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }\n    a = (ARRAY *)0x0;\n    lVar12 = CONCAT44(len,lenp);\n    if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;\n    uVar5 = var->attributes;\n    if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }\n  }" { (if_statement "if (rtype != (int *)0x0) {\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }" if (parenthesized_expression "(rtype != (int *)0x0)" ( (binary_expression "rtype != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar8 = 2;\n      if (cVar1 == '*') {\n        iVar8 = 1;\n      }\n      *rtype = iVar8;\n    }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (if_statement "if (cVar1 == '*') {\n        iVar8 = 1;\n      }" if (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        iVar8 = 1;\n      }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) (expression_statement "*rtype = iVar8;" (assignment_expression "*rtype = iVar8" (pointer_expression "*rtype" * identifier) = identifier) ;) })) (if_statement "if ((flags & 1U) == 0) {\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((flags & 1U) == 0)" ( (binary_expression "(flags & 1U) == 0" (parenthesized_expression "(flags & 1U)" ( (binary_expression "flags & 1U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      (**(code **)(indp_00 + -0xe45))(s);\n      lVar12 = CONCAT44(len,lenp);\n      a = (ARRAY *)0x0;\n      pcVar4 = t;\n      goto LAB_00094de0;\n    }" { (expression_statement "(**(code **)(indp_00 + -0xe45))(s);" (call_expression "(**(code **)(indp_00 + -0xe45))(s)" (parenthesized_expression "(**(code **)(indp_00 + -0xe45))" ( (pointer_expression "**(code **)(indp_00 + -0xe45)" * (pointer_expression "*(code **)(indp_00 + -0xe45)" * (cast_expression "(code **)(indp_00 + -0xe45)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xe45)" ( (binary_expression "indp_00 + -0xe45" identifier + number_literal) ))))) )) (argument_list "(s)" ( identifier ))) ;) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (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)) ;) (expression_statement "pcVar4 = t;" (assignment_expression "pcVar4 = t" identifier = identifier) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (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)) ;) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (if_statement "if ((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))\n    goto LAB_00094de0;" if (parenthesized_expression "((var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0))" ( (binary_expression "(var == (SHELL_VAR *)0x0) ||\n       (a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0)" (parenthesized_expression "(var == (SHELL_VAR *)0x0)" ( (binary_expression "var == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0)" ( (comma_expression "a_00 = (ARRAY *)var->value, lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0" (assignment_expression "a_00 = (ARRAY *)var->value" identifier = (cast_expression "(ARRAY *)var->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "var->value" identifier -> field_identifier))) , (comma_expression "lVar12 = CONCAT44(len,lenp), a_00 == (ARRAY *)0x0" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) , (binary_expression "a_00 == (ARRAY *)0x0" identifier == (cast_expression "(ARRAY *)0x0" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "uVar5 = var->attributes;" (assignment_expression "uVar5 = var->attributes" identifier = (field_expression "var->attributes" identifier -> field_identifier)) ;) (if_statement "if ((uVar5 & 0x1000) == 0) {\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((uVar5 & 0x1000) == 0)" ( (binary_expression "(uVar5 & 0x1000) == 0" (parenthesized_expression "(uVar5 & 0x1000)" ( (binary_expression "uVar5 & 0x1000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }\n      uVar5 = flags >> 1 & 8;\n      if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }\n      (**(code **)((int)indp_00 + -0x7f74))(list);\n      lVar12 = CONCAT44(uVar5,lenp);\n      pcVar4 = (char *)quoted;\n      goto LAB_00094de0;\n    }" { (if_statement "if ((uVar5 & 0x44) == 0) {\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }\n      else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar5 & 0x44) == 0)" ( (binary_expression "(uVar5 & 0x44) == 0" (parenthesized_expression "(uVar5 & 0x44)" ( (binary_expression "uVar5 & 0x44" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar3 = (**(code **)((int)indp_00 + -0x7f84))();\n        list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);\n      }" { (expression_statement "uVar3 = (**(code **)((int)indp_00 + -0x7f84))();" (assignment_expression "uVar3 = (**(code **)((int)indp_00 + -0x7f84))()" identifier = (call_expression "(**(code **)((int)indp_00 + -0x7f84))()" (parenthesized_expression "(**(code **)((int)indp_00 + -0x7f84))" ( (pointer_expression "**(code **)((int)indp_00 + -0x7f84)" * (pointer_expression "*(code **)((int)indp_00 + -0x7f84)" * (cast_expression "(code **)((int)indp_00 + -0x7f84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x7f84)" ( (binary_expression "(int)indp_00 + -0x7f84" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0);" (assignment_expression "list = (WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0)" identifier = (cast_expression "(WORD_LIST *)(**(code **)(indp_00 + -0xff1))(uVar3,0)" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(indp_00 + -0xff1))(uVar3,0)" (parenthesized_expression "(**(code **)(indp_00 + -0xff1))" ( (pointer_expression "**(code **)(indp_00 + -0xff1)" * (pointer_expression "*(code **)(indp_00 + -0xff1)" * (cast_expression "(code **)(indp_00 + -0xff1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xff1)" ( (binary_expression "indp_00 + -0xff1" identifier + number_literal) ))))) )) (argument_list "(uVar3,0)" ( identifier , number_literal ))))) ;) }) (else_clause "else if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }" else (if_statement "if ((uVar5 & 0x40) == 0) {\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }\n      else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar5 & 0x40) == 0)" ( (binary_expression "(uVar5 & 0x40) == 0" (parenthesized_expression "(uVar5 & 0x40)" ( (binary_expression "uVar5 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        list = array_to_word_list(a_00);\n        if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;\n      }" { (expression_statement "list = array_to_word_list(a_00);" (assignment_expression "list = array_to_word_list(a_00)" identifier = (call_expression "array_to_word_list(a_00)" identifier (argument_list "(a_00)" ( identifier )))) ;) (if_statement "if (list == (WORD_LIST *)0x0) goto LAB_00094ddc;" if (parenthesized_expression "(list == (WORD_LIST *)0x0)" ( (binary_expression "list == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        list = assoc_to_word_list((HASH_TABLE *)a_00);\n        lVar12 = CONCAT44(len,lenp);\n        if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "list = assoc_to_word_list((HASH_TABLE *)a_00);" (assignment_expression "list = assoc_to_word_list((HASH_TABLE *)a_00)" identifier = (call_expression "assoc_to_word_list((HASH_TABLE *)a_00)" identifier (argument_list "((HASH_TABLE *)a_00)" ( (cast_expression "(HASH_TABLE *)a_00" ( (type_descriptor "HASH_TABLE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (if_statement "if (list == (WORD_LIST *)0x0) {\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(list == (WORD_LIST *)0x0)" ( (binary_expression "list == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          a = (ARRAY *)0x0;\n          goto LAB_00094de0;\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)) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))))) (expression_statement "uVar5 = flags >> 1 & 8;" (assignment_expression "uVar5 = flags >> 1 & 8" identifier = (binary_expression "flags >> 1 & 8" (binary_expression "flags >> 1" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((*t == '*') && ((quoted & 3U) != 0)) {\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }\n      else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }" if (parenthesized_expression "((*t == '*') && ((quoted & 3U) != 0))" ( (binary_expression "(*t == '*') && ((quoted & 3U) != 0)" (parenthesized_expression "(*t == '*')" ( (binary_expression "*t == '*'" (pointer_expression "*t" * identifier) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "((quoted & 3U) != 0)" ( (binary_expression "(quoted & 3U) != 0" (parenthesized_expression "(quoted & 3U)" ( (binary_expression "quoted & 3U" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);\n        a = (ARRAY *)quote_string(pcVar4);\n        (**(code **)((int)indp_00 + -0x6044))(pcVar4);\n      }" { (expression_statement "pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list);" (assignment_expression "pcVar4 = (char *)(**(code **)((int)indp_00 + -0x7314))(list)" identifier = (cast_expression "(char *)(**(code **)((int)indp_00 + -0x7314))(list)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)((int)indp_00 + -0x7314))(list)" (parenthesized_expression "(**(code **)((int)indp_00 + -0x7314))" ( (pointer_expression "**(code **)((int)indp_00 + -0x7314)" * (pointer_expression "*(code **)((int)indp_00 + -0x7314)" * (cast_expression "(code **)((int)indp_00 + -0x7314)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x7314)" ( (binary_expression "(int)indp_00 + -0x7314" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "(list)" ( identifier ))))) ;) (expression_statement "a = (ARRAY *)quote_string(pcVar4);" (assignment_expression "a = (ARRAY *)quote_string(pcVar4)" identifier = (cast_expression "(ARRAY *)quote_string(pcVar4)" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "quote_string(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))))) ;) (expression_statement "(**(code **)((int)indp_00 + -0x6044))(pcVar4);" (call_expression "(**(code **)((int)indp_00 + -0x6044))(pcVar4)" (parenthesized_expression "(**(code **)((int)indp_00 + -0x6044))" ( (pointer_expression "**(code **)((int)indp_00 + -0x6044)" * (pointer_expression "*(code **)((int)indp_00 + -0x6044)" * (cast_expression "(code **)((int)indp_00 + -0x6044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x6044)" ( (binary_expression "(int)indp_00 + -0x6044" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) }) (else_clause "else {\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }" else (compound_statement "{\n        a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);\n      }" { (expression_statement "a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5);" (assignment_expression "a = (ARRAY *)string_list_dollar_at(list,quoted,uVar5)" identifier = (cast_expression "(ARRAY *)string_list_dollar_at(list,quoted,uVar5)" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "string_list_dollar_at(list,quoted,uVar5)" identifier (argument_list "(list,quoted,uVar5)" ( identifier , identifier , identifier ))))) ;) }))) (expression_statement "(**(code **)((int)indp_00 + -0x7f74))(list);" (call_expression "(**(code **)((int)indp_00 + -0x7f74))(list)" (parenthesized_expression "(**(code **)((int)indp_00 + -0x7f74))" ( (pointer_expression "**(code **)((int)indp_00 + -0x7f74)" * (pointer_expression "*(code **)((int)indp_00 + -0x7f74)" * (cast_expression "(code **)((int)indp_00 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x7f74)" ( (binary_expression "(int)indp_00 + -0x7f74" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "(list)" ( identifier ))) ;) (expression_statement "lVar12 = CONCAT44(uVar5,lenp);" (assignment_expression "lVar12 = CONCAT44(uVar5,lenp)" identifier = (call_expression "CONCAT44(uVar5,lenp)" identifier (argument_list "(uVar5,lenp)" ( identifier , identifier )))) ;) (expression_statement "pcVar4 = (char *)quoted;" (assignment_expression "pcVar4 = (char *)quoted" identifier = (cast_expression "(char *)quoted" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }" else (compound_statement "{\n    if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }\n    if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }\n  }" { (if_statement "if (rtype != (int *)0x0) {\n      *rtype = 0;\n    }" if (parenthesized_expression "(rtype != (int *)0x0)" ( (binary_expression "rtype != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *rtype = 0;\n    }" { (expression_statement "*rtype = 0;" (assignment_expression "*rtype = 0" (pointer_expression "*rtype" * identifier) = number_literal) ;) })) (if_statement "if (var == (SHELL_VAR *)0x0) {\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }" if (parenthesized_expression "(var == (SHELL_VAR *)0x0)" ( (binary_expression "var == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }\nLAB_00094c94:\n      a = (ARRAY *)0x0;\n      lVar12 = CONCAT44(len,lenp);\n      if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;\n      a = (ARRAY *)var->value;\n      if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }\n    }" { (labeled_statement "LAB_00094c78:\n      if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" statement_identifier : (if_statement "if ((flags & 4U) == 0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }\n      else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" if (parenthesized_expression "((flags & 4U) == 0)" ( (binary_expression "(flags & 4U) == 0" (parenthesized_expression "(flags & 4U)" ( (binary_expression "flags & 4U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }\n      }" { (expression_statement "lVar11 = array_expand_index(var,t,len,flags);" (assignment_expression "lVar11 = array_expand_index(var,t,len,flags)" identifier = (call_expression "array_expand_index(var,t,len,flags)" identifier (argument_list "(var,t,len,flags)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = len;" (assignment_expression "iVar8 = len" identifier = identifier) ;) (expression_statement "lenp = (int *)flags;" (assignment_expression "lenp = (int *)flags" identifier = (cast_expression "(int *)flags" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (lVar11 < 0) {\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(lVar11 < 0)" ( (binary_expression "lVar11 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }\n          uVar5 = var->attributes;\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*pcVar10)(var->name);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }" { (labeled_statement "LAB_00094f18:\n          if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }" statement_identifier : (if_statement "if (var == (SHELL_VAR *)0x0) {\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }" if (parenthesized_expression "(var == (SHELL_VAR *)0x0)" ( (binary_expression "var == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar10 = *(code **)(indp_00 + -0xe45);\n            t[-1] = '\0';\n            (*pcVar10)(s);\n            a = (ARRAY *)0x0;\n            t[-1] = '[';\n            lVar12 = CONCAT44(iVar8,lenp);\n            goto LAB_00094de0;\n          }" { (expression_statement "pcVar10 = *(code **)(indp_00 + -0xe45);" (assignment_expression "pcVar10 = *(code **)(indp_00 + -0xe45)" identifier = (pointer_expression "*(code **)(indp_00 + -0xe45)" * (cast_expression "(code **)(indp_00 + -0xe45)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xe45)" ( (binary_expression "indp_00 + -0xe45" identifier + number_literal) ))))) ;) (expression_statement "t[-1] = '\0';" (assignment_expression "t[-1] = '\0'" (subscript_expression "t[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*pcVar10)(s);" (call_expression "(*pcVar10)(s)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(s)" ( identifier ))) ;) (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)) ;) (expression_statement "t[-1] = '[';" (assignment_expression "t[-1] = '['" (subscript_expression "t[-1]" identifier [ number_literal ]) = (char_literal "'['" ' character ')) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) }))) (expression_statement "uVar5 = var->attributes;" (assignment_expression "uVar5 = var->attributes" identifier = (field_expression "var->attributes" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = *(code **)(indp_00 + -0xe45);" (assignment_expression "pcVar10 = *(code **)(indp_00 + -0xe45)" identifier = (pointer_expression "*(code **)(indp_00 + -0xe45)" * (cast_expression "(code **)(indp_00 + -0xe45)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xe45)" ( (binary_expression "indp_00 + -0xe45" identifier + number_literal) ))))) ;) (if_statement "if ((uVar5 & 4) != 0) {\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }" if (parenthesized_expression "((uVar5 & 4) != 0)" ( (binary_expression "(uVar5 & 4) != 0" (parenthesized_expression "(uVar5 & 4)" ( (binary_expression "uVar5 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            a = (ARRAY *)var->value;\n            uVar6 = (uint)a->max_index;\n            iVar8 = *(int *)&a->max_index;\n            uVar7 = uVar6 + 1;\n            lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);\n            pcVar4 = (char *)lVar11;\n            if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }\n          }" { (expression_statement "a = (ARRAY *)var->value;" (assignment_expression "a = (ARRAY *)var->value" identifier = (cast_expression "(ARRAY *)var->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "var->value" identifier -> field_identifier))) ;) (expression_statement "uVar6 = (uint)a->max_index;" (assignment_expression "uVar6 = (uint)a->max_index" identifier = (cast_expression "(uint)a->max_index" ( (type_descriptor "uint" type_identifier) ) (field_expression "a->max_index" identifier -> field_identifier))) ;) (expression_statement "iVar8 = *(int *)&a->max_index;" (assignment_expression "iVar8 = *(int *)&a->max_index" identifier = (pointer_expression "*(int *)&a->max_index" * (cast_expression "(int *)&a->max_index" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&a->max_index" & (field_expression "a->max_index" identifier -> field_identifier))))) ;) (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7);" (assignment_expression "lVar11 = lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7)" identifier = (binary_expression "lVar11 + CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7)" identifier + (call_expression "CONCAT44((uint)(uVar7 < uVar6) + iVar8,uVar7)" identifier (argument_list "((uint)(uVar7 < uVar6) + iVar8,uVar7)" ( (binary_expression "(uint)(uVar7 < uVar6) + iVar8" (call_expression "(uint)(uVar7 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) ))) + identifier) , identifier ))))) ;) (expression_statement "pcVar4 = (char *)lVar11;" (assignment_expression "pcVar4 = (char *)lVar11" identifier = (cast_expression "(char *)lVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (-1 < lVar11) {\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }" if (parenthesized_expression "(-1 < lVar11)" ( (binary_expression "-1 < lVar11" number_literal < identifier) )) (compound_statement "{\n              uVar6 = uVar5 & 0x1000;\n              if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;\n              *indp = lVar11;\n              len = iVar8;\n              goto LAB_00094c94;\n            }" { (expression_statement "uVar6 = uVar5 & 0x1000;" (assignment_expression "uVar6 = uVar5 & 0x1000" identifier = (binary_expression "uVar5 & 0x1000" identifier & number_literal)) ;) (if_statement "if (indp == (arrayind_t *)0x0) goto LAB_00094cb0;" if (parenthesized_expression "(indp == (arrayind_t *)0x0)" ( (binary_expression "indp == (arrayind_t *)0x0" identifier == (cast_expression "(arrayind_t *)0x0" ( (type_descriptor "arrayind_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;)) (expression_statement "*indp = lVar11;" (assignment_expression "*indp = lVar11" (pointer_expression "*indp" * identifier) = identifier) ;) (expression_statement "len = iVar8;" (assignment_expression "len = iVar8" identifier = identifier) ;) (goto_statement "goto LAB_00094c94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00094fbc:\n          (*pcVar10)(var->name);" statement_identifier : (expression_statement "(*pcVar10)(var->name);" (call_expression "(*pcVar10)(var->name)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(var->name)" ( (field_expression "var->name" identifier -> field_identifier) ))) ;)) (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)) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (if_statement "if (indp != (arrayind_t *)0x0) {\n          *indp = lVar11;\n        }" if (parenthesized_expression "(indp != (arrayind_t *)0x0)" ( (binary_expression "indp != (arrayind_t *)0x0" identifier != (cast_expression "(arrayind_t *)0x0" ( (type_descriptor "arrayind_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *indp = lVar11;\n        }" { (expression_statement "*indp = lVar11;" (assignment_expression "*indp = lVar11" (pointer_expression "*indp" * identifier) = identifier) ;) })) }) (else_clause "else if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" else (if_statement "if (indp == (arrayind_t *)0x0) {\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" if (parenthesized_expression "(indp == (arrayind_t *)0x0)" ( (binary_expression "indp == (arrayind_t *)0x0" identifier == (cast_expression "(arrayind_t *)0x0" ( (type_descriptor "arrayind_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar11 = array_expand_index(var,t,len,flags);\n        iVar8 = len;\n        lenp = (int *)flags;\n        if (lVar11 < 0) goto LAB_00094f18;\n      }" { (expression_statement "lVar11 = array_expand_index(var,t,len,flags);" (assignment_expression "lVar11 = array_expand_index(var,t,len,flags)" identifier = (call_expression "array_expand_index(var,t,len,flags)" identifier (argument_list "(var,t,len,flags)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar8 = len;" (assignment_expression "iVar8 = len" identifier = identifier) ;) (expression_statement "lenp = (int *)flags;" (assignment_expression "lenp = (int *)flags" identifier = (cast_expression "(int *)flags" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (lVar11 < 0) goto LAB_00094f18;" if (parenthesized_expression "(lVar11 < 0)" ( (binary_expression "lVar11 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00094f18;" goto statement_identifier ;)) }) (else_clause "else {\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" else (compound_statement "{\n        lVar11 = *indp;\n        lenp = (int *)flags;\n      }" { (expression_statement "lVar11 = *indp;" (assignment_expression "lVar11 = *indp" identifier = (pointer_expression "*indp" * identifier)) ;) (expression_statement "lenp = (int *)flags;" (assignment_expression "lenp = (int *)flags" identifier = (cast_expression "(int *)flags" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })))))) (labeled_statement "LAB_00094c94:\n      a = (ARRAY *)0x0;" statement_identifier : (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)) ;)) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (if_statement "if (var == (SHELL_VAR *)0x0) goto LAB_00094de0;" if (parenthesized_expression "(var == (SHELL_VAR *)0x0)" ( (binary_expression "var == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "a = (ARRAY *)var->value;" (assignment_expression "a = (ARRAY *)var->value" identifier = (cast_expression "(ARRAY *)var->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "var->value" identifier -> field_identifier))) ;) (if_statement "if (a != (ARRAY *)0x0) {\n        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\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        uVar5 = var->attributes;\n        uVar6 = uVar5 & 0x1000;\n        iVar8 = len;\n        goto LAB_00094cb0;\n      }" { (expression_statement "uVar5 = var->attributes;" (assignment_expression "uVar5 = var->attributes" identifier = (field_expression "var->attributes" identifier -> field_identifier)) ;) (expression_statement "uVar6 = uVar5 & 0x1000;" (assignment_expression "uVar6 = uVar5 & 0x1000" identifier = (binary_expression "uVar5 & 0x1000" identifier & number_literal)) ;) (expression_statement "iVar8 = len;" (assignment_expression "iVar8 = len" identifier = identifier) ;) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }" else (compound_statement "{\n      uVar5 = var->attributes;\n      if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;\n      pcVar4 = t + len;\n      iVar8 = len;\n      if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }\n      len = iVar8;\n      lVar12 = CONCAT44(iVar8,lenp);\n      if (lVar11 == 0) goto LAB_00094de0;\n    }" { (expression_statement "uVar5 = var->attributes;" (assignment_expression "uVar5 = var->attributes" identifier = (field_expression "var->attributes" identifier -> field_identifier)) ;) (if_statement "if ((uVar5 & 0x44) != 0x40) goto LAB_00094c78;" if (parenthesized_expression "((uVar5 & 0x44) != 0x40)" ( (binary_expression "(uVar5 & 0x44) != 0x40" (parenthesized_expression "(uVar5 & 0x44)" ( (binary_expression "uVar5 & 0x44" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00094c78;" goto statement_identifier ;)) (expression_statement "pcVar4 = t + len;" (assignment_expression "pcVar4 = t + len" identifier = (binary_expression "t + len" identifier + identifier)) ;) (expression_statement "iVar8 = len;" (assignment_expression "iVar8 = len" identifier = identifier) ;) (if_statement "if ((uVar5 & 0x40) == 0) {\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }\n      else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar5 & 0x40) == 0)" ( (binary_expression "(uVar5 & 0x40) == 0" (parenthesized_expression "(uVar5 & 0x40)" ( (binary_expression "uVar5 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        a = (ARRAY *)var->value;\n        uVar6 = uVar5 & 0x1000;\n        if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar9 = (char *)0x0;\n        len = iVar8;\n        if (uVar6 != 0) goto LAB_00094ddc;\n      }" { (expression_statement "a = (ARRAY *)var->value;" (assignment_expression "a = (ARRAY *)var->value" identifier = (cast_expression "(ARRAY *)var->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "var->value" identifier -> field_identifier))) ;) (expression_statement "uVar6 = uVar5 & 0x1000;" (assignment_expression "uVar6 = uVar5 & 0x1000" identifier = (binary_expression "uVar5 & 0x1000" identifier & number_literal)) ;) (if_statement "if (a == (ARRAY *)0x0) {\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\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          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(len,lenp);\n          goto LAB_00094de0;\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)) ;) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (labeled_statement "LAB_00094cb0:\n        pcVar9 = (char *)0x0;" statement_identifier : (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "len = iVar8;" (assignment_expression "len = iVar8" identifier = identifier) ;) (if_statement "if (uVar6 != 0) goto LAB_00094ddc;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        pcVar4[-1] = '\0';\n        if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }\n        pcVar4 = (char *)0x0;\n        pcVar9 = expand_assignment_string_to_string(t,0);\n        t[len + -1] = ']';\n        if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }\n        pcVar10 = *(code **)((int)indp_00 + -0x6044);\n        if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }\n        a = (ARRAY *)var->value;\n        if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n        uVar5 = var->attributes;\n        if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "pcVar4[-1] = '\0';" (assignment_expression "pcVar4[-1] = '\0'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((flags & 0x20U) != 0) {\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }" if (parenthesized_expression "((flags & 0x20U) != 0)" ( (binary_expression "(flags & 0x20U) != 0" (parenthesized_expression "(flags & 0x20U)" ( (binary_expression "flags & 0x20U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar8 = (**(code **)(indp_00 + -0xc36))(t);\n                    /* WARNING: Subroutine does not return */\n          xmalloc(iVar8 + 1);\n        }" { (expression_statement "iVar8 = (**(code **)(indp_00 + -0xc36))(t);" (assignment_expression "iVar8 = (**(code **)(indp_00 + -0xc36))(t)" identifier = (call_expression "(**(code **)(indp_00 + -0xc36))(t)" (parenthesized_expression "(**(code **)(indp_00 + -0xc36))" ( (pointer_expression "**(code **)(indp_00 + -0xc36)" * (pointer_expression "*(code **)(indp_00 + -0xc36)" * (cast_expression "(code **)(indp_00 + -0xc36)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xc36)" ( (binary_expression "indp_00 + -0xc36" identifier + number_literal) ))))) )) (argument_list "(t)" ( identifier )))) ;) comment (expression_statement "xmalloc(iVar8 + 1);" (call_expression "xmalloc(iVar8 + 1)" identifier (argument_list "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) ))) ;) })) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar9 = expand_assignment_string_to_string(t,0);" (assignment_expression "pcVar9 = expand_assignment_string_to_string(t,0)" identifier = (call_expression "expand_assignment_string_to_string(t,0)" identifier (argument_list "(t,0)" ( identifier , number_literal )))) ;) (expression_statement "t[len + -1] = ']';" (assignment_expression "t[len + -1] = ']'" (subscript_expression "t[len + -1]" identifier [ (binary_expression "len + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar9 == (char *)0x0) {\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);\n          goto LAB_00094fbc;\n        }" { (labeled_statement "LAB_00094fb8:\n          pcVar10 = *(code **)(indp_00 + -0xe45);" statement_identifier : (expression_statement "pcVar10 = *(code **)(indp_00 + -0xe45);" (assignment_expression "pcVar10 = *(code **)(indp_00 + -0xe45)" identifier = (pointer_expression "*(code **)(indp_00 + -0xe45)" * (cast_expression "(code **)(indp_00 + -0xe45)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xe45)" ( (binary_expression "indp_00 + -0xe45" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_00094fbc;" goto statement_identifier ;) })) (expression_statement "pcVar10 = *(code **)((int)indp_00 + -0x6044);" (assignment_expression "pcVar10 = *(code **)((int)indp_00 + -0x6044)" identifier = (pointer_expression "*(code **)((int)indp_00 + -0x6044)" * (cast_expression "(code **)((int)indp_00 + -0x6044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x6044)" ( (binary_expression "(int)indp_00 + -0x6044" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*pcVar9 == '\0') {\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }" if (parenthesized_expression "(*pcVar9 == '\0')" ( (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*pcVar10)(pcVar9);\n          goto LAB_00094fb8;\n        }" { (expression_statement "(*pcVar10)(pcVar9);" (call_expression "(*pcVar10)(pcVar9)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar9)" ( identifier ))) ;) (goto_statement "goto LAB_00094fb8;" goto statement_identifier ;) })) (expression_statement "a = (ARRAY *)var->value;" (assignment_expression "a = (ARRAY *)var->value" identifier = (cast_expression "(ARRAY *)var->value" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "var->value" identifier -> field_identifier))) ;) (if_statement "if (a == (ARRAY *)0x0) {\n          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\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          (*pcVar10)(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }" { (expression_statement "(*pcVar10)(pcVar9);" (call_expression "(*pcVar10)(pcVar9)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "uVar5 = var->attributes;" (assignment_expression "uVar5 = var->attributes" identifier = (field_expression "var->attributes" identifier -> field_identifier)) ;) (if_statement "if ((uVar5 & 0x1000) != 0) {\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "((uVar5 & 0x1000) != 0)" ( (binary_expression "(uVar5 & 0x1000) != 0" (parenthesized_expression "(uVar5 & 0x1000)" ( (binary_expression "uVar5 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          (*pcVar10)(pcVar9);\n          a = (ARRAY *)0x0;\n          lVar12 = CONCAT44(iVar8,lenp);\n          goto LAB_00094de0;\n        }" { (expression_statement "(*pcVar10)(pcVar9);" (call_expression "(*pcVar10)(pcVar9)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(pcVar9)" ( identifier ))) ;) (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)) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar5 & 0x44) != 0) {\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }" if (parenthesized_expression "((uVar5 & 0x44) != 0)" ( (binary_expression "(uVar5 & 0x44) != 0" (parenthesized_expression "(uVar5 & 0x44)" ( (binary_expression "uVar5 & 0x44" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }\n        goto LAB_00094de0;\n      }" { (if_statement "if ((uVar5 & 0x40) == 0) {\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }\n        else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }" if (parenthesized_expression "((uVar5 & 0x40) == 0)" ( (binary_expression "(uVar5 & 0x40) == 0" (parenthesized_expression "(uVar5 & 0x40)" ( (binary_expression "uVar5 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));\n          lVar12 = lVar11;\n        }" { (expression_statement "a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc));" (assignment_expression "a = (ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc))" identifier = (cast_expression "(ARRAY *)array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc))" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "array_reference(a,CONCAT44(indp_00,in_stack_ffffffbc))" identifier (argument_list "(a,CONCAT44(indp_00,in_stack_ffffffbc))" ( identifier , (call_expression "CONCAT44(indp_00,in_stack_ffffffbc)" identifier (argument_list "(indp_00,in_stack_ffffffbc)" ( identifier , identifier ))) ))))) ;) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" identifier = identifier) ;) }) (else_clause "else {\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }" else (compound_statement "{\n          pcVar4 = pcVar9;\n          a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);\n          (**(code **)((int)indp_00 + -0x6044))(pcVar9);\n          lVar12 = CONCAT44(iVar8,lenp);\n        }" { (expression_statement "pcVar4 = pcVar9;" (assignment_expression "pcVar4 = pcVar9" identifier = identifier) ;) (expression_statement "a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9);" (assignment_expression "a = (ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9)" identifier = (cast_expression "(ARRAY *)assoc_reference((HASH_TABLE *)a,pcVar9)" ( (type_descriptor "ARRAY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "assoc_reference((HASH_TABLE *)a,pcVar9)" identifier (argument_list "((HASH_TABLE *)a,pcVar9)" ( (cast_expression "(HASH_TABLE *)a" ( (type_descriptor "HASH_TABLE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))))) ;) (expression_statement "(**(code **)((int)indp_00 + -0x6044))(pcVar9);" (call_expression "(**(code **)((int)indp_00 + -0x6044))(pcVar9)" (parenthesized_expression "(**(code **)((int)indp_00 + -0x6044))" ( (pointer_expression "**(code **)((int)indp_00 + -0x6044)" * (pointer_expression "*(code **)((int)indp_00 + -0x6044)" * (cast_expression "(code **)((int)indp_00 + -0x6044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)indp_00 + -0x6044)" ( (binary_expression "(int)indp_00 + -0x6044" (cast_expression "(int)indp_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) }))) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "len = iVar8;" (assignment_expression "len = iVar8" identifier = identifier) ;) (expression_statement "lVar12 = CONCAT44(iVar8,lenp);" (assignment_expression "lVar12 = CONCAT44(iVar8,lenp)" identifier = (call_expression "CONCAT44(iVar8,lenp)" identifier (argument_list "(iVar8,lenp)" ( identifier , identifier )))) ;) (if_statement "if (lVar11 == 0) goto LAB_00094de0;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00094ddc:\n  a = (ARRAY *)0x0;" statement_identifier : (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)) ;)) (expression_statement "lVar12 = CONCAT44(len,lenp);" (assignment_expression "lVar12 = CONCAT44(len,lenp)" identifier = (call_expression "CONCAT44(len,lenp)" identifier (argument_list "(len,lenp)" ( identifier , identifier )))) ;) (labeled_statement "LAB_00094de0:\n  if (local_2c != *(char **)puVar2) {\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }" statement_identifier : (if_statement "if (local_2c != *(char **)puVar2) {\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }" if (parenthesized_expression "(local_2c != *(char **)puVar2)" ( (binary_expression "local_2c != *(char **)puVar2" identifier != (pointer_expression "*(char **)puVar2" * (cast_expression "(char **)puVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    pcVar9 = local_2c;\n    (**(code **)(indp_00 + -0xc17))();\n    pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);\n    return pcVar4;\n  }" { (expression_statement "pcVar9 = local_2c;" (assignment_expression "pcVar9 = local_2c" identifier = identifier) ;) (expression_statement "(**(code **)(indp_00 + -0xc17))();" (call_expression "(**(code **)(indp_00 + -0xc17))()" (parenthesized_expression "(**(code **)(indp_00 + -0xc17))" ( (pointer_expression "**(code **)(indp_00 + -0xc17)" * (pointer_expression "*(code **)(indp_00 + -0xc17)" * (cast_expression "(code **)(indp_00 + -0xc17)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(indp_00 + -0xc17)" ( (binary_expression "indp_00 + -0xc17" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00);" (assignment_expression "pcVar4 = array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00)" identifier = (call_expression "array_value_internal\n                       (pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00)" identifier (argument_list "(pcVar9,(int)pcVar4,(uint)((ulonglong)lVar12 >> 0x20) | 1,(int *)lVar12,\n                        indp_00)" ( identifier , (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(uint)((ulonglong)lVar12 >> 0x20) | 1" (call_expression "(uint)((ulonglong)lVar12 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar12 >> 0x20)" ( (binary_expression "(ulonglong)lVar12 >> 0x20" (cast_expression "(ulonglong)lVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | number_literal) , (cast_expression "(int *)lVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (return_statement "return pcVar4;" return identifier ;) }))) (return_statement "return (char *)a;" return (cast_expression "(char *)a" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)\n\n{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}\n\n" (function_definition "int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)\n\n{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" primitive_type (function_declarator "FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "longlong *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 unaff_s3;" type_identifier identifier ;) (declaration "undefined4 unaff_s4;" type_identifier identifier ;) (declaration "longlong lVar14;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_001464dc" identifier = identifier) ;) (expression_statement "lVar3 = CONCAT44(unaff_s3,unaff_s4);" (assignment_expression "lVar3 = CONCAT44(unaff_s3,unaff_s4)" identifier = (call_expression "CONCAT44(unaff_s3,unaff_s4)" identifier (argument_list "(unaff_s3,unaff_s4)" ( identifier , identifier )))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" * (cast_expression "(int *)PTR___stack_chk_guard_001464dc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);" (assignment_expression "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" identifier = (cast_expression "(undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" identifier (argument_list "(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" ( identifier , (binary_expression "(param_3 << 0x1a) >> 0x1f" (parenthesized_expression "(param_3 << 0x1a)" ( (binary_expression "param_3 << 0x1a" identifier << number_literal) )) >> number_literal) , (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_34" & identifier) ))))) ;) (if_statement "if (local_34 == 0) goto LAB_00094ddc;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) (expression_statement "cVar1 = *local_30;" (assignment_expression "cVar1 = *local_30" identifier = (pointer_expression "*local_30" * identifier)) ;) (if_statement "if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" if (parenthesized_expression "(((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']'))" ( (binary_expression "((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')" (parenthesized_expression "((cVar1 == '@') || (cVar1 == '*'))" ( (binary_expression "(cVar1 == '@') || (cVar1 == '*')" (parenthesized_expression "(cVar1 == '@')" ( (binary_expression "cVar1 == '@'" identifier == (char_literal "'@'" ' character ')) )) || (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) ))) )) && (parenthesized_expression "(local_30[1] == ']')" ( (binary_expression "local_30[1] == ']'" (subscript_expression "local_30[1]" identifier [ number_literal ]) == (char_literal "']'" ' character ')) ))) )) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" { (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) (if_statement "if (cVar1 == '*') {\n        uVar10 = 1;\n      }" if (parenthesized_expression "(cVar1 == '*')" ( (binary_expression "cVar1 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n        uVar10 = 1;\n      }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) })) (expression_statement "*param_4 = uVar10;" (assignment_expression "*param_4 = uVar10" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (if_statement "if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((param_3 & 1) == 0)" ( (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" { (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(param_1);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(param_1)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" ( (pointer_expression "*(code *)PTR_err_badarraysub_00145318" * (cast_expression "(code *)PTR_err_badarraysub_00145318" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;" if (parenthesized_expression "((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0))" ( (binary_expression "(puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)" (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar7[1] == 0)" ( (binary_expression "puVar7[1] == 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" if (parenthesized_expression "((uVar11 & 0x1000) == 0)" ( (binary_expression "(uVar11 & 0x1000) == 0" (parenthesized_expression "(uVar11 & 0x1000)" ( (binary_expression "uVar11 & 0x1000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" { (if_statement "if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x44) == 0)" ( (binary_expression "(uVar11 & 0x44) == 0" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }" { (expression_statement "uVar10 = (*(code *)PTR_make_word_001445bc)();" (assignment_expression "uVar10 = (*(code *)PTR_make_word_001445bc)()" identifier = (call_expression "(*(code *)PTR_make_word_001445bc)()" (parenthesized_expression "(*(code *)PTR_make_word_001445bc)" ( (pointer_expression "*(code *)PTR_make_word_001445bc" * (cast_expression "(code *)PTR_make_word_001445bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);" (assignment_expression "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0)" identifier = (call_expression "(*(code *)PTR_make_word_list_001445b8)(uVar10,0)" (parenthesized_expression "(*(code *)PTR_make_word_list_001445b8)" ( (pointer_expression "*(code *)PTR_make_word_list_001445b8" * (cast_expression "(code *)PTR_make_word_list_001445b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,0)" ( identifier , number_literal )))) ;) }) (else_clause "else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }" { (expression_statement "iVar9 = array_to_word_list();" (assignment_expression "iVar9 = array_to_word_list()" identifier = (call_expression "array_to_word_list()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) goto LAB_00094ddc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "iVar9 = assoc_to_word_list();" (assignment_expression "iVar9 = assoc_to_word_list()" identifier = (call_expression "assoc_to_word_list()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))))) (if_statement "if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" if (parenthesized_expression "((*local_30 == '*') && ((param_2 & 3) != 0))" ( (binary_expression "(*local_30 == '*') && ((param_2 & 3) != 0)" (parenthesized_expression "(*local_30 == '*')" ( (binary_expression "*local_30 == '*'" (pointer_expression "*local_30" * identifier) == (char_literal "'*'" ' character ')) )) && (parenthesized_expression "((param_2 & 3) != 0)" ( (binary_expression "(param_2 & 3) != 0" (parenthesized_expression "(param_2 & 3)" ( (binary_expression "param_2 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }" { (expression_statement "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);" (assignment_expression "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" identifier = (call_expression "(*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" (parenthesized_expression "(*(code *)PTR_string_list_dollar_star_0014522c)" ( (pointer_expression "*(code *)PTR_string_list_dollar_star_0014522c" * (cast_expression "(code *)PTR_string_list_dollar_star_0014522c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,param_2,(int)param_3 >> 1 & 8)" ( identifier , identifier , (binary_expression "(int)param_3 >> 1 & 8" (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal) )))) ;) (expression_statement "iVar8 = quote_string(uVar10);" (assignment_expression "iVar8 = quote_string(uVar10)" identifier = (call_expression "quote_string(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_free_001464fc)(uVar10);" (call_expression "(*(code *)PTR_free_001464fc)(uVar10)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))) ;) }) (else_clause "else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" else (compound_statement "{\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" { (expression_statement "iVar8 = string_list_dollar_at(iVar9,param_2);" (assignment_expression "iVar8 = string_list_dollar_at(iVar9,param_2)" identifier = (call_expression "string_list_dollar_at(iVar9,param_2)" identifier (argument_list "(iVar9,param_2)" ( identifier , identifier )))) ;) }))) (expression_statement "(*(code *)PTR_dispose_words_001445cc)(iVar9);" (call_expression "(*(code *)PTR_dispose_words_001445cc)(iVar9)" (parenthesized_expression "(*(code *)PTR_dispose_words_001445cc)" ( (pointer_expression "*(code *)PTR_dispose_words_001445cc" * (cast_expression "(code *)PTR_dispose_words_001445cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier ))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" else (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = 0;\n    }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) })) (if_statement "if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }" { (labeled_statement "LAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" statement_identifier : (if_statement "if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" if (parenthesized_expression "((param_3 & 4) == 0)" ( (binary_expression "(param_3 & 4) == 0" (parenthesized_expression "(param_3 & 4)" ( (binary_expression "param_3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }" { (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" identifier = (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" identifier (argument_list "(puVar7,local_30,local_34,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (compound_statement "{\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (labeled_statement "LAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;" statement_identifier : (expression_statement "puVar5 = PTR_err_badarraysub_00145318;" (assignment_expression "puVar5 = PTR_err_badarraysub_00145318" identifier = identifier) ;)) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" { (expression_statement "local_30[-1] = '\0';" (assignment_expression "local_30[-1] = '\0'" (subscript_expression "local_30[-1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*(code *)puVar5)(param_1);" (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" ( (pointer_expression "*(code *)puVar5" * (cast_expression "(code *)puVar5" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "local_30[-1] = '[';" (assignment_expression "local_30[-1] = '['" (subscript_expression "local_30[-1]" identifier [ number_literal ]) = (char_literal "'['" ' character ')) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" if (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" { (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = *(uint *)(iVar8 + 0xc) + 1;" (assignment_expression "uVar12 = *(uint *)(iVar8 + 0xc) + 1" identifier = (binary_expression "*(uint *)(iVar8 + 0xc) + 1" (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);" (assignment_expression "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" identifier = (call_expression "CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" identifier (argument_list "((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" ( (binary_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8)" (call_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < *(uint *)(iVar8 + 0xc))" ( (binary_expression "uVar12 < *(uint *)(iVar8 + 0xc)" identifier < (pointer_expression "*(uint *)(iVar8 + 0xc)" * (cast_expression "(uint *)(iVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) , identifier )))) ;) (expression_statement "lVar4 = lVar14 + lVar2;" (assignment_expression "lVar4 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (expression_statement "lVar3 = lVar14 + lVar2;" (assignment_expression "lVar3 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (expression_statement "lVar14 = lVar14 + lVar2;" (assignment_expression "lVar14 = lVar14 + lVar2" identifier = (binary_expression "lVar14 + lVar2" identifier + identifier)) ;) (if_statement "if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" if (parenthesized_expression "(-1 < lVar4)" ( (binary_expression "-1 < lVar4" number_literal < identifier) )) (compound_statement "{\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" { (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (if_statement "if (param_5 == (longlong *)0x0) goto LAB_00094cb0;" if (parenthesized_expression "(param_5 == (longlong *)0x0)" ( (binary_expression "param_5 == (longlong *)0x0" identifier == (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;)) (expression_statement "*param_5 = lVar4;" (assignment_expression "*param_5 = lVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) (goto_statement "goto LAB_00094c94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);" statement_identifier : (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(*puVar7);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(*puVar7)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" ( (pointer_expression "*(code *)PTR_err_badarraysub_00145318" * (cast_expression "(code *)PTR_err_badarraysub_00145318" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar7)" ( (pointer_expression "*puVar7" * identifier) ))) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (if_statement "if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }" if (parenthesized_expression "(param_5 != (longlong *)0x0)" ( (binary_expression "param_5 != (longlong *)0x0" identifier != (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_5 = lVar14;\n        }" { (expression_statement "*param_5 = lVar14;" (assignment_expression "*param_5 = lVar14" (pointer_expression "*param_5" * identifier) = identifier) ;) })) }) (else_clause "else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" else (if_statement "if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" if (parenthesized_expression "(param_5 == (longlong *)0x0)" ( (binary_expression "param_5 == (longlong *)0x0" identifier == (cast_expression "(longlong *)0x0" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }" { (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" identifier = (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" identifier (argument_list "(puVar7,local_30,local_34,param_3)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar14 < 0) goto LAB_00094f18;" if (parenthesized_expression "(lVar14 < 0)" ( (binary_expression "lVar14 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00094f18;" goto statement_identifier ;)) }) (else_clause "else {\n        lVar14 = *param_5;\n      }" else (compound_statement "{\n        lVar14 = *param_5;\n      }" { (expression_statement "lVar14 = *param_5;" (assignment_expression "lVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) })))))) (labeled_statement "LAB_00094c94:\n      iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (if_statement "if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" { (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (expression_statement "lVar3 = lVar14;" (assignment_expression "lVar3 = lVar14" identifier = identifier) ;) (goto_statement "goto LAB_00094cb0;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" else (compound_statement "{\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" { (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;" if (parenthesized_expression "((uVar11 & 0x44) != 0x40)" ( (binary_expression "(uVar11 & 0x44) != 0x40" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00094c78;" goto statement_identifier ;)) (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }" { (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" identifier = (binary_expression "uVar11 & 0x1000" identifier & number_literal)) ;) (if_statement "if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (labeled_statement "LAB_00094cb0:\n        pcVar13 = (char *)0x0;" statement_identifier : (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar12 != 0) goto LAB_00094ddc;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00094ddc;" goto statement_identifier ;)) }) (else_clause "else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" else (compound_statement "{\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" { (expression_statement "local_30[local_34 + -1] = '\0';" (assignment_expression "local_30[local_34 + -1] = '\0'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" if (parenthesized_expression "((param_3 & 0x20) == 0)" ( (binary_expression "(param_3 & 0x20) == 0" (parenthesized_expression "(param_3 & 0x20)" ( (binary_expression "param_3 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" { (expression_statement "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);" (assignment_expression "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0)" identifier = (cast_expression "(char *)expand_assignment_string_to_string(local_30,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "expand_assignment_string_to_string(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal ))))) ;) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (if_statement "if (pcVar13 != (char *)0x0) goto LAB_00094eac;" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00094eac;" goto statement_identifier ;)) (goto_statement "goto LAB_00094fbc;" goto statement_identifier ;) })) (expression_statement "iVar8 = (*(code *)PTR_strlen_00146390)(local_30);" (assignment_expression "iVar8 = (*(code *)PTR_strlen_00146390)(local_30)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(local_30)" (parenthesized_expression "(*(code *)PTR_strlen_00146390)" ( (pointer_expression "*(code *)PTR_strlen_00146390" * (cast_expression "(code *)PTR_strlen_00146390" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "uVar10 = xmalloc(iVar8 + 1);" (assignment_expression "uVar10 = xmalloc(iVar8 + 1)" identifier = (call_expression "xmalloc(iVar8 + 1)" identifier (argument_list "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);" (assignment_expression "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" identifier = (cast_expression "(char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" (parenthesized_expression "(*(code *)PTR_strcpy_00146418)" ( (pointer_expression "*(code *)PTR_strcpy_00146418" * (cast_expression "(code *)PTR_strcpy_00146418" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,local_30)" ( identifier , identifier ))))) ;) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" identifier [ (binary_expression "local_34 + -1" identifier + number_literal) ]) = (char_literal "']'" ' character ')) ;) (labeled_statement "LAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" statement_identifier : (if_statement "if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" if (parenthesized_expression "(*pcVar13 == '\0')" ( (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00094fbc;" goto statement_identifier ;) }))) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" if (parenthesized_expression "((uVar11 & 0x1000) != 0)" ( (binary_expression "(uVar11 & 0x1000) != 0" (parenthesized_expression "(uVar11 & 0x1000)" ( (binary_expression "uVar11 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" { (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) }))) (if_statement "if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" if (parenthesized_expression "((uVar11 & 0x44) != 0)" ( (binary_expression "(uVar11 & 0x44) != 0" (parenthesized_expression "(uVar11 & 0x44)" ( (binary_expression "uVar11 & 0x44" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" { (if_statement "if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" if (parenthesized_expression "((uVar11 & 0x40) == 0)" ( (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" ( (binary_expression "uVar11 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar8 = array_reference(iVar8);\n        }" { (expression_statement "iVar8 = array_reference(iVar8);" (assignment_expression "iVar8 = array_reference(iVar8)" identifier = (call_expression "array_reference(iVar8)" identifier (argument_list "(iVar8)" ( identifier )))) ;) }) (else_clause "else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" else (compound_statement "{\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" { (expression_statement "iVar8 = assoc_reference(iVar8,pcVar13);" (assignment_expression "iVar8 = assoc_reference(iVar8,pcVar13)" identifier = (call_expression "assoc_reference(iVar8,pcVar13)" identifier (argument_list "(iVar8,pcVar13)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar13)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;) })) (if_statement "if (lVar3 == 0) goto LAB_00094de0;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00094de0;" goto statement_identifier ;)) }))) }))) (labeled_statement "LAB_00094ddc:\n  iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar6)" ( (binary_expression "local_2c != *(int *)puVar6" identifier != (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = FUN_00094bb4();" (assignment_expression "iVar8 = FUN_00094bb4()" identifier = (call_expression "FUN_00094bb4()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) }))) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }) (else_clause else (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 ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' escape_sequence ')) ;) (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 ( IDENT , LIT ))))) ;) (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)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (char_literal ' character ')) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (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 IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)\n\n{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" (primitive_type "int") (function_declarator "FUN_00094bb4(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" (identifier "FUN_00094bb4") (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "longlong *param_5" (type_identifier "longlong") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  char cVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  uint uVar12;\n  char *pcVar13;\n  undefined4 unaff_s3;\n  undefined4 unaff_s4;\n  longlong lVar14;\n  int local_34;\n  char *local_30;\n  int local_2c;\n  \n  puVar6 = PTR___stack_chk_guard_001464dc;\n  lVar3 = CONCAT44(unaff_s3,unaff_s4);\n  local_2c = *(int *)PTR___stack_chk_guard_001464dc;\n  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);\n  if (local_34 == 0) goto LAB_00094ddc;\n  cVar1 = *local_30;\n  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }\nLAB_00094ddc:\n  iVar8 = 0;\nLAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }\n  return iVar8;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "longlong lVar4;" (type_identifier "longlong") (identifier "lVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined4 unaff_s3;" (type_identifier "undefined4") (identifier "unaff_s3") (; ";")) (declaration "undefined4 unaff_s4;" (type_identifier "undefined4") (identifier "unaff_s4") (; ";")) (declaration "longlong lVar14;" (type_identifier "longlong") (identifier "lVar14") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar6 = PTR___stack_chk_guard_001464dc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_001464dc" (identifier "puVar6") (= "=") (identifier "PTR___stack_chk_guard_001464dc")) (; ";")) (expression_statement "lVar3 = CONCAT44(unaff_s3,unaff_s4);" (assignment_expression "lVar3 = CONCAT44(unaff_s3,unaff_s4)" (identifier "lVar3") (= "=") (call_expression "CONCAT44(unaff_s3,unaff_s4)" (identifier "CONCAT44") (argument_list "(unaff_s3,unaff_s4)" (( "(") (identifier "unaff_s3") (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_001464dc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_001464dc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_001464dc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_001464dc")))) (; ";")) (expression_statement "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);" (assignment_expression "puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" (identifier "array_variable_part") (argument_list "(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34)" (( "(") (identifier "param_1") (, ",") (binary_expression "(param_3 << 0x1a) >> 0x1f" (parenthesized_expression "(param_3 << 0x1a)" (( "(") (binary_expression "param_3 << 0x1a" (identifier "param_3") (<< "<<") (number_literal "0x1a")) () ")")) (>> ">>") (number_literal "0x1f")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))))) (; ";")) (if_statement "if (local_34 == 0) goto LAB_00094ddc;" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00094ddc;" (goto "goto") (statement_identifier "LAB_00094ddc") (; ";"))) (expression_statement "cVar1 = *local_30;" (assignment_expression "cVar1 = *local_30" (identifier "cVar1") (= "=") (pointer_expression "*local_30" (* "*") (identifier "local_30"))) (; ";")) (if_statement "if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }\n  else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" (if "if") (parenthesized_expression "(((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']'))" (( "(") (binary_expression "((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')" (parenthesized_expression "((cVar1 == '@') || (cVar1 == '*'))" (( "(") (binary_expression "(cVar1 == '@') || (cVar1 == '*')" (parenthesized_expression "(cVar1 == '@')" (( "(") (binary_expression "cVar1 == '@'" (identifier "cVar1") (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar1 == '*')" (( "(") (binary_expression "cVar1 == '*'" (identifier "cVar1") (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_30[1] == ']')" (( "(") (binary_expression "local_30[1] == ']'" (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "']'" (' "'") (character "]") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }\n    if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }\n    iVar8 = 0;\n    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;\n    uVar11 = puVar7[5];\n    if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }\n  }" ({ "{") (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar10 = 2;\n      if (cVar1 == '*') {\n        uVar10 = 1;\n      }\n      *param_4 = uVar10;\n    }" ({ "{") (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" (identifier "uVar10") (= "=") (number_literal "2")) (; ";")) (if_statement "if (cVar1 == '*') {\n        uVar10 = 1;\n      }" (if "if") (parenthesized_expression "(cVar1 == '*')" (( "(") (binary_expression "cVar1 == '*'" (identifier "cVar1") (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n        uVar10 = 1;\n      }" ({ "{") (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*param_4 = uVar10;" (assignment_expression "*param_4 = uVar10" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (if_statement "if ((param_3 & 1) == 0) {\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" (if "if") (parenthesized_expression "((param_3 & 1) == 0)" (( "(") (binary_expression "(param_3 & 1) == 0" (parenthesized_expression "(param_3 & 1)" (( "(") (binary_expression "param_3 & 1" (identifier "param_3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_err_badarraysub_00145318)(param_1);\n      iVar8 = 0;\n      goto LAB_00094de0;\n    }" ({ "{") (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(param_1);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(param_1)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" (( "(") (pointer_expression "*(code *)PTR_err_badarraysub_00145318" (* "*") (cast_expression "(code *)PTR_err_badarraysub_00145318" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_err_badarraysub_00145318"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;" (if "if") (parenthesized_expression "((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0))" (( "(") (binary_expression "(puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)" (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar7[1] == 0)" (( "(") (binary_expression "puVar7[1] == 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";"))) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((uVar11 & 0x1000) == 0) {\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" (if "if") (parenthesized_expression "((uVar11 & 0x1000) == 0)" (( "(") (binary_expression "(uVar11 & 0x1000) == 0" (parenthesized_expression "(uVar11 & 0x1000)" (( "(") (binary_expression "uVar11 & 0x1000" (identifier "uVar11") (& "&") (number_literal "0x1000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }\n      (*(code *)PTR_dispose_words_001445cc)(iVar9);\n      goto LAB_00094de0;\n    }" ({ "{") (if_statement "if ((uVar11 & 0x44) == 0) {\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }\n      else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (if "if") (parenthesized_expression "((uVar11 & 0x44) == 0)" (( "(") (binary_expression "(uVar11 & 0x44) == 0" (parenthesized_expression "(uVar11 & 0x44)" (( "(") (binary_expression "uVar11 & 0x44" (identifier "uVar11") (& "&") (number_literal "0x44")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = (*(code *)PTR_make_word_001445bc)();\n        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);\n      }" ({ "{") (expression_statement "uVar10 = (*(code *)PTR_make_word_001445bc)();" (assignment_expression "uVar10 = (*(code *)PTR_make_word_001445bc)()" (identifier "uVar10") (= "=") (call_expression "(*(code *)PTR_make_word_001445bc)()" (parenthesized_expression "(*(code *)PTR_make_word_001445bc)" (( "(") (pointer_expression "*(code *)PTR_make_word_001445bc" (* "*") (cast_expression "(code *)PTR_make_word_001445bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_make_word_001445bc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);" (assignment_expression "iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_make_word_list_001445b8)(uVar10,0)" (parenthesized_expression "(*(code *)PTR_make_word_list_001445b8)" (( "(") (pointer_expression "*(code *)PTR_make_word_list_001445b8" (* "*") (cast_expression "(code *)PTR_make_word_list_001445b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_make_word_list_001445b8"))) () ")")) (argument_list "(uVar10,0)" (( "(") (identifier "uVar10") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (else "else") (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }\n      else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (if "if") (parenthesized_expression "((uVar11 & 0x40) == 0)" (( "(") (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" (( "(") (binary_expression "uVar11 & 0x40" (identifier "uVar11") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = array_to_word_list();\n        if (iVar9 == 0) goto LAB_00094ddc;\n      }" ({ "{") (expression_statement "iVar9 = array_to_word_list();" (assignment_expression "iVar9 = array_to_word_list()" (identifier "iVar9") (= "=") (call_expression "array_to_word_list()" (identifier "array_to_word_list") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_00094ddc;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00094ddc;" (goto "goto") (statement_identifier "LAB_00094ddc") (; ";"))) (} "}")) (else_clause "else {\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (else "else") (compound_statement "{\n        iVar9 = assoc_to_word_list();\n        if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" ({ "{") (expression_statement "iVar9 = assoc_to_word_list();" (assignment_expression "iVar9 = assoc_to_word_list()" (identifier "iVar9") (= "=") (call_expression "assoc_to_word_list()" (identifier "assoc_to_word_list") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (} "}")))))) (if_statement "if ((*local_30 == '*') && ((param_2 & 3) != 0)) {\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }\n      else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" (if "if") (parenthesized_expression "((*local_30 == '*') && ((param_2 & 3) != 0))" (( "(") (binary_expression "(*local_30 == '*') && ((param_2 & 3) != 0)" (parenthesized_expression "(*local_30 == '*')" (( "(") (binary_expression "*local_30 == '*'" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((param_2 & 3) != 0)" (( "(") (binary_expression "(param_2 & 3) != 0" (parenthesized_expression "(param_2 & 3)" (( "(") (binary_expression "param_2 & 3" (identifier "param_2") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);\n        iVar8 = quote_string(uVar10);\n        (*(code *)PTR_free_001464fc)(uVar10);\n      }" ({ "{") (expression_statement "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8);" (assignment_expression "uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" (identifier "uVar10") (= "=") (call_expression "(*(code *)PTR_string_list_dollar_star_0014522c)\n                           (iVar9,param_2,(int)param_3 >> 1 & 8)" (parenthesized_expression "(*(code *)PTR_string_list_dollar_star_0014522c)" (( "(") (pointer_expression "*(code *)PTR_string_list_dollar_star_0014522c" (* "*") (cast_expression "(code *)PTR_string_list_dollar_star_0014522c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_string_list_dollar_star_0014522c"))) () ")")) (argument_list "(iVar9,param_2,(int)param_3 >> 1 & 8)" (( "(") (identifier "iVar9") (, ",") (identifier "param_2") (, ",") (binary_expression "(int)param_3 >> 1 & 8" (binary_expression "(int)param_3 >> 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (>> ">>") (number_literal "1")) (& "&") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar8 = quote_string(uVar10);" (assignment_expression "iVar8 = quote_string(uVar10)" (identifier "iVar8") (= "=") (call_expression "quote_string(uVar10)" (identifier "quote_string") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_free_001464fc)(uVar10);" (call_expression "(*(code *)PTR_free_001464fc)(uVar10)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" (else "else") (compound_statement "{\n        iVar8 = string_list_dollar_at(iVar9,param_2);\n      }" ({ "{") (expression_statement "iVar8 = string_list_dollar_at(iVar9,param_2);" (assignment_expression "iVar8 = string_list_dollar_at(iVar9,param_2)" (identifier "iVar8") (= "=") (call_expression "string_list_dollar_at(iVar9,param_2)" (identifier "string_list_dollar_at") (argument_list "(iVar9,param_2)" (( "(") (identifier "iVar9") (, ",") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_dispose_words_001445cc)(iVar9);" (call_expression "(*(code *)PTR_dispose_words_001445cc)(iVar9)" (parenthesized_expression "(*(code *)PTR_dispose_words_001445cc)" (( "(") (pointer_expression "*(code *)PTR_dispose_words_001445cc" (* "*") (cast_expression "(code *)PTR_dispose_words_001445cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dispose_words_001445cc"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" (else "else") (compound_statement "{\n    if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }\n    if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }\n  }" ({ "{") (if_statement "if (param_4 != (undefined4 *)0x0) {\n      *param_4 = 0;\n    }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_4 = 0;\n    }" ({ "{") (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (puVar7 == (undefined4 *)0x0) {\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }\n    else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }\nLAB_00094c94:\n      iVar8 = 0;\n      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;\n      iVar8 = puVar7[1];\n      if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }\n    }" ({ "{") (labeled_statement "LAB_00094c78:\n      if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" (statement_identifier "LAB_00094c78") (: ":") (if_statement "if ((param_3 & 4) == 0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }\n      else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" (if "if") (parenthesized_expression "((param_3 & 4) == 0)" (( "(") (binary_expression "(param_3 & 4) == 0" (parenthesized_expression "(param_3 & 4)" (( "(") (binary_expression "param_3 & 4" (identifier "param_3") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n        if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }\n      }" ({ "{") (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" (identifier "lVar14") (= "=") (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" (identifier "array_expand_index") (argument_list "(puVar7,local_30,local_34,param_3)" (( "(") (identifier "puVar7") (, ",") (identifier "local_30") (, ",") (identifier "local_34") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar14 < 0) {\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" (if "if") (parenthesized_expression "(lVar14 < 0)" (( "(") (binary_expression "lVar14 < 0" (identifier "lVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;\n          if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }\n          uVar11 = puVar7[5];\n          if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }\nLAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" ({ "{") (labeled_statement "LAB_00094f18:\n          puVar5 = PTR_err_badarraysub_00145318;" (statement_identifier "LAB_00094f18") (: ":") (expression_statement "puVar5 = PTR_err_badarraysub_00145318;" (assignment_expression "puVar5 = PTR_err_badarraysub_00145318" (identifier "puVar5") (= "=") (identifier "PTR_err_badarraysub_00145318")) (; ";"))) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_30[-1] = '\0';\n            (*(code *)puVar5)(param_1);\n            iVar8 = 0;\n            local_30[-1] = '[';\n            goto LAB_00094de0;\n          }" ({ "{") (expression_statement "local_30[-1] = '\0';" (assignment_expression "local_30[-1] = '\0'" (subscript_expression "local_30[-1]" (identifier "local_30") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "(*(code *)puVar5)(param_1);" (call_expression "(*(code *)puVar5)(param_1)" (parenthesized_expression "(*(code *)puVar5)" (( "(") (pointer_expression "*(code *)puVar5" (* "*") (cast_expression "(code *)puVar5" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30[-1] = '[';" (assignment_expression "local_30[-1] = '['" (subscript_expression "local_30[-1]" (identifier "local_30") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'['" (' "'") (character "[") (' "'"))) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((uVar11 & 4) != 0) {\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" (if "if") (parenthesized_expression "((uVar11 & 4) != 0)" (( "(") (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" (( "(") (binary_expression "uVar11 & 4" (identifier "uVar11") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar8 = puVar7[1];\n            uVar12 = *(uint *)(iVar8 + 0xc) + 1;\n            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);\n            lVar4 = lVar14 + lVar2;\n            lVar3 = lVar14 + lVar2;\n            lVar14 = lVar14 + lVar2;\n            if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }\n          }" ({ "{") (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" (identifier "iVar8") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = *(uint *)(iVar8 + 0xc) + 1;" (assignment_expression "uVar12 = *(uint *)(iVar8 + 0xc) + 1" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(iVar8 + 0xc) + 1" (pointer_expression "*(uint *)(iVar8 + 0xc)" (* "*") (cast_expression "(uint *)(iVar8 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);" (assignment_expression "lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" (identifier "lVar2") (= "=") (call_expression "CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" (identifier "CONCAT44") (argument_list "((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12)" (( "(") (binary_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8)" (call_expression "(uint)(uVar12 < *(uint *)(iVar8 + 0xc))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < *(uint *)(iVar8 + 0xc))" (( "(") (binary_expression "uVar12 < *(uint *)(iVar8 + 0xc)" (identifier "uVar12") (< "<") (pointer_expression "*(uint *)(iVar8 + 0xc)" (* "*") (cast_expression "(uint *)(iVar8 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "lVar4 = lVar14 + lVar2;" (assignment_expression "lVar4 = lVar14 + lVar2" (identifier "lVar4") (= "=") (binary_expression "lVar14 + lVar2" (identifier "lVar14") (+ "+") (identifier "lVar2"))) (; ";")) (expression_statement "lVar3 = lVar14 + lVar2;" (assignment_expression "lVar3 = lVar14 + lVar2" (identifier "lVar3") (= "=") (binary_expression "lVar14 + lVar2" (identifier "lVar14") (+ "+") (identifier "lVar2"))) (; ";")) (expression_statement "lVar14 = lVar14 + lVar2;" (assignment_expression "lVar14 = lVar14 + lVar2" (identifier "lVar14") (= "=") (binary_expression "lVar14 + lVar2" (identifier "lVar14") (+ "+") (identifier "lVar2"))) (; ";")) (if_statement "if (-1 < lVar4) {\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" (if "if") (parenthesized_expression "(-1 < lVar4)" (( "(") (binary_expression "-1 < lVar4" (number_literal "-1") (< "<") (identifier "lVar4")) () ")")) (compound_statement "{\n              uVar12 = uVar11 & 0x1000;\n              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;\n              *param_5 = lVar4;\n              goto LAB_00094c94;\n            }" ({ "{") (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" (identifier "uVar12") (= "=") (binary_expression "uVar11 & 0x1000" (identifier "uVar11") (& "&") (number_literal "0x1000"))) (; ";")) (if_statement "if (param_5 == (longlong *)0x0) goto LAB_00094cb0;" (if "if") (parenthesized_expression "(param_5 == (longlong *)0x0)" (( "(") (binary_expression "param_5 == (longlong *)0x0" (identifier "param_5") (== "==") (cast_expression "(longlong *)0x0" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00094cb0;" (goto "goto") (statement_identifier "LAB_00094cb0") (; ";"))) (expression_statement "*param_5 = lVar4;" (assignment_expression "*param_5 = lVar4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "lVar4")) (; ";")) (goto_statement "goto LAB_00094c94;" (goto "goto") (statement_identifier "LAB_00094c94") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00094fbc:\n          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);" (statement_identifier "LAB_00094fbc") (: ":") (expression_statement "(*(code *)PTR_err_badarraysub_00145318)(*puVar7);" (call_expression "(*(code *)PTR_err_badarraysub_00145318)(*puVar7)" (parenthesized_expression "(*(code *)PTR_err_badarraysub_00145318)" (( "(") (pointer_expression "*(code *)PTR_err_badarraysub_00145318" (* "*") (cast_expression "(code *)PTR_err_badarraysub_00145318" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_err_badarraysub_00145318"))) () ")")) (argument_list "(*puVar7)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) () ")"))) (; ";"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (if_statement "if (param_5 != (longlong *)0x0) {\n          *param_5 = lVar14;\n        }" (if "if") (parenthesized_expression "(param_5 != (longlong *)0x0)" (( "(") (binary_expression "param_5 != (longlong *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(longlong *)0x0" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *param_5 = lVar14;\n        }" ({ "{") (expression_statement "*param_5 = lVar14;" (assignment_expression "*param_5 = lVar14" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "lVar14")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" (else "else") (if_statement "if (param_5 == (longlong *)0x0) {\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }\n      else {\n        lVar14 = *param_5;\n      }" (if "if") (parenthesized_expression "(param_5 == (longlong *)0x0)" (( "(") (binary_expression "param_5 == (longlong *)0x0" (identifier "param_5") (== "==") (cast_expression "(longlong *)0x0" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);\n        if (lVar14 < 0) goto LAB_00094f18;\n      }" ({ "{") (expression_statement "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);" (assignment_expression "lVar14 = array_expand_index(puVar7,local_30,local_34,param_3)" (identifier "lVar14") (= "=") (call_expression "array_expand_index(puVar7,local_30,local_34,param_3)" (identifier "array_expand_index") (argument_list "(puVar7,local_30,local_34,param_3)" (( "(") (identifier "puVar7") (, ",") (identifier "local_30") (, ",") (identifier "local_34") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar14 < 0) goto LAB_00094f18;" (if "if") (parenthesized_expression "(lVar14 < 0)" (( "(") (binary_expression "lVar14 < 0" (identifier "lVar14") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00094f18;" (goto "goto") (statement_identifier "LAB_00094f18") (; ";"))) (} "}")) (else_clause "else {\n        lVar14 = *param_5;\n      }" (else "else") (compound_statement "{\n        lVar14 = *param_5;\n      }" ({ "{") (expression_statement "lVar14 = *param_5;" (assignment_expression "lVar14 = *param_5" (identifier "lVar14") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (} "}"))))))) (labeled_statement "LAB_00094c94:\n      iVar8 = 0;" (statement_identifier "LAB_00094c94") (: ":") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";"))) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" (identifier "iVar8") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar8 != 0) {\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = puVar7[5];\n        uVar12 = uVar11 & 0x1000;\n        lVar3 = lVar14;\n        goto LAB_00094cb0;\n      }" ({ "{") (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" (identifier "uVar12") (= "=") (binary_expression "uVar11 & 0x1000" (identifier "uVar11") (& "&") (number_literal "0x1000"))) (; ";")) (expression_statement "lVar3 = lVar14;" (assignment_expression "lVar3 = lVar14" (identifier "lVar3") (= "=") (identifier "lVar14")) (; ";")) (goto_statement "goto LAB_00094cb0;" (goto "goto") (statement_identifier "LAB_00094cb0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" (else "else") (compound_statement "{\n      uVar11 = puVar7[5];\n      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;\n      if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }\n      if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }\n      if (lVar3 == 0) goto LAB_00094de0;\n    }" ({ "{") (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;" (if "if") (parenthesized_expression "((uVar11 & 0x44) != 0x40)" (( "(") (binary_expression "(uVar11 & 0x44) != 0x40" (parenthesized_expression "(uVar11 & 0x44)" (( "(") (binary_expression "uVar11 & 0x44" (identifier "uVar11") (& "&") (number_literal "0x44")) () ")")) (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_00094c78;" (goto "goto") (statement_identifier "LAB_00094c78") (; ";"))) (if_statement "if ((uVar11 & 0x40) == 0) {\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }\n      else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (if "if") (parenthesized_expression "((uVar11 & 0x40) == 0)" (( "(") (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" (( "(") (binary_expression "uVar11 & 0x40" (identifier "uVar11") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = puVar7[1];\n        uVar12 = uVar11 & 0x1000;\n        if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\nLAB_00094cb0:\n        pcVar13 = (char *)0x0;\n        if (uVar12 != 0) goto LAB_00094ddc;\n      }" ({ "{") (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" (identifier "iVar8") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = uVar11 & 0x1000;" (assignment_expression "uVar12 = uVar11 & 0x1000" (identifier "uVar12") (= "=") (binary_expression "uVar11 & 0x1000" (identifier "uVar11") (& "&") (number_literal "0x1000"))) (; ";")) (if_statement "if (iVar8 == 0) {\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (labeled_statement "LAB_00094cb0:\n        pcVar13 = (char *)0x0;" (statement_identifier "LAB_00094cb0") (: ":") (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" (identifier "pcVar13") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (uVar12 != 0) goto LAB_00094ddc;" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00094ddc;" (goto "goto") (statement_identifier "LAB_00094ddc") (; ";"))) (} "}")) (else_clause "else {\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" (else "else") (compound_statement "{\n        local_30[local_34 + -1] = '\0';\n        if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }\n        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);\n        uVar10 = xmalloc(iVar8 + 1);\n        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);\n        local_30[local_34 + -1] = ']';\nLAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }\n        iVar8 = puVar7[1];\n        if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }\n        uVar11 = puVar7[5];\n        if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }\n      }" ({ "{") (expression_statement "local_30[local_34 + -1] = '\0';" (assignment_expression "local_30[local_34 + -1] = '\0'" (subscript_expression "local_30[local_34 + -1]" (identifier "local_30") ([ "[") (binary_expression "local_34 + -1" (identifier "local_34") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if ((param_3 & 0x20) == 0) {\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" (if "if") (parenthesized_expression "((param_3 & 0x20) == 0)" (( "(") (binary_expression "(param_3 & 0x20) == 0" (parenthesized_expression "(param_3 & 0x20)" (( "(") (binary_expression "param_3 & 0x20" (identifier "param_3") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);\n          local_30[local_34 + -1] = ']';\n          if (pcVar13 != (char *)0x0) goto LAB_00094eac;\n          goto LAB_00094fbc;\n        }" ({ "{") (expression_statement "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);" (assignment_expression "pcVar13 = (char *)expand_assignment_string_to_string(local_30,0)" (identifier "pcVar13") (= "=") (cast_expression "(char *)expand_assignment_string_to_string(local_30,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "expand_assignment_string_to_string(local_30,0)" (identifier "expand_assignment_string_to_string") (argument_list "(local_30,0)" (( "(") (identifier "local_30") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" (identifier "local_30") ([ "[") (binary_expression "local_34 + -1" (identifier "local_34") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "']'" (' "'") (character "]") (' "'"))) (; ";")) (if_statement "if (pcVar13 != (char *)0x0) goto LAB_00094eac;" (if "if") (parenthesized_expression "(pcVar13 != (char *)0x0)" (( "(") (binary_expression "pcVar13 != (char *)0x0" (identifier "pcVar13") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00094eac;" (goto "goto") (statement_identifier "LAB_00094eac") (; ";"))) (goto_statement "goto LAB_00094fbc;" (goto "goto") (statement_identifier "LAB_00094fbc") (; ";")) (} "}"))) (expression_statement "iVar8 = (*(code *)PTR_strlen_00146390)(local_30);" (assignment_expression "iVar8 = (*(code *)PTR_strlen_00146390)(local_30)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_strlen_00146390)(local_30)" (parenthesized_expression "(*(code *)PTR_strlen_00146390)" (( "(") (pointer_expression "*(code *)PTR_strlen_00146390" (* "*") (cast_expression "(code *)PTR_strlen_00146390" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00146390"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";")) (expression_statement "uVar10 = xmalloc(iVar8 + 1);" (assignment_expression "uVar10 = xmalloc(iVar8 + 1)" (identifier "uVar10") (= "=") (call_expression "xmalloc(iVar8 + 1)" (identifier "xmalloc") (argument_list "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);" (assignment_expression "pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" (identifier "pcVar13") (= "=") (cast_expression "(char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strcpy_00146418)(uVar10,local_30)" (parenthesized_expression "(*(code *)PTR_strcpy_00146418)" (( "(") (pointer_expression "*(code *)PTR_strcpy_00146418" (* "*") (cast_expression "(code *)PTR_strcpy_00146418" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcpy_00146418"))) () ")")) (argument_list "(uVar10,local_30)" (( "(") (identifier "uVar10") (, ",") (identifier "local_30") () ")"))))) (; ";")) (expression_statement "local_30[local_34 + -1] = ']';" (assignment_expression "local_30[local_34 + -1] = ']'" (subscript_expression "local_30[local_34 + -1]" (identifier "local_30") ([ "[") (binary_expression "local_34 + -1" (identifier "local_34") (+ "+") (number_literal "-1")) (] "]")) (= "=") (char_literal "']'" (' "'") (character "]") (' "'"))) (; ";")) (labeled_statement "LAB_00094eac:\n        if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" (statement_identifier "LAB_00094eac") (: ":") (if_statement "if (*pcVar13 == '\0') {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" (if "if") (parenthesized_expression "(*pcVar13 == '\0')" (( "(") (binary_expression "*pcVar13 == '\0'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094fbc;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (goto_statement "goto LAB_00094fbc;" (goto "goto") (statement_identifier "LAB_00094fbc") (; ";")) (} "}")))) (expression_statement "iVar8 = puVar7[1];" (assignment_expression "iVar8 = puVar7[1]" (identifier "iVar8") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar8 == 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          goto LAB_00094de0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (expression_statement "uVar11 = puVar7[5];" (assignment_expression "uVar11 = puVar7[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((uVar11 & 0x1000) != 0) {\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" (if "if") (parenthesized_expression "((uVar11 & 0x1000) != 0)" (( "(") (binary_expression "(uVar11 & 0x1000) != 0" (parenthesized_expression "(uVar11 & 0x1000)" (( "(") (binary_expression "uVar11 & 0x1000" (identifier "uVar11") (& "&") (number_literal "0x1000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_001464fc)(pcVar13);\n          iVar8 = 0;\n          goto LAB_00094de0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uVar11 & 0x44) != 0) {\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" (if "if") (parenthesized_expression "((uVar11 & 0x44) != 0)" (( "(") (binary_expression "(uVar11 & 0x44) != 0" (parenthesized_expression "(uVar11 & 0x44)" (( "(") (binary_expression "uVar11 & 0x44" (identifier "uVar11") (& "&") (number_literal "0x44")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }\n        goto LAB_00094de0;\n      }" ({ "{") (if_statement "if ((uVar11 & 0x40) == 0) {\n          iVar8 = array_reference(iVar8);\n        }\n        else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" (if "if") (parenthesized_expression "((uVar11 & 0x40) == 0)" (( "(") (binary_expression "(uVar11 & 0x40) == 0" (parenthesized_expression "(uVar11 & 0x40)" (( "(") (binary_expression "uVar11 & 0x40" (identifier "uVar11") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = array_reference(iVar8);\n        }" ({ "{") (expression_statement "iVar8 = array_reference(iVar8);" (assignment_expression "iVar8 = array_reference(iVar8)" (identifier "iVar8") (= "=") (call_expression "array_reference(iVar8)" (identifier "array_reference") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" (else "else") (compound_statement "{\n          iVar8 = assoc_reference(iVar8,pcVar13);\n          (*(code *)PTR_free_001464fc)(pcVar13);\n        }" ({ "{") (expression_statement "iVar8 = assoc_reference(iVar8,pcVar13);" (assignment_expression "iVar8 = assoc_reference(iVar8,pcVar13)" (identifier "iVar8") (= "=") (call_expression "assoc_reference(iVar8,pcVar13)" (identifier "assoc_reference") (argument_list "(iVar8,pcVar13)" (( "(") (identifier "iVar8") (, ",") (identifier "pcVar13") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_free_001464fc)(pcVar13);" (call_expression "(*(code *)PTR_free_001464fc)(pcVar13)" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";")) (} "}"))) (if_statement "if (lVar3 == 0) goto LAB_00094de0;" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00094de0;" (goto "goto") (statement_identifier "LAB_00094de0") (; ";"))) (} "}")))) (} "}")))) (labeled_statement "LAB_00094ddc:\n  iVar8 = 0;" (statement_identifier "LAB_00094ddc") (: ":") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_00094de0:\n  if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" (statement_identifier "LAB_00094de0") (: ":") (if_statement "if (local_2c != *(int *)puVar6) {\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(local_2c != *(int *)puVar6)" (( "(") (binary_expression "local_2c != *(int *)puVar6" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) () ")")) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_00146488)();\n    iVar8 = FUN_00094bb4();\n    return iVar8;\n  }" ({ "{") (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00146488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00146488"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00094bb4();" (assignment_expression "iVar8 = FUN_00094bb4()" (identifier "iVar8") (= "=") (call_expression "FUN_00094bb4()" (identifier "FUN_00094bb4") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (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 (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) 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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_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: (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)))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (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: (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 (identifier) (number_literal)))))) (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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (character)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier))))) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) 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: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (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: (identifier))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier))))) (return_statement (identifier)))))

int MASKED(undefined4 param_1,uint param_2,uint param_3,undefined4 *param_4,longlong *param_5)

{
  char cVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  uint uVar11;
  uint uVar12;
  char *pcVar13;
  undefined4 unaff_s3;
  undefined4 unaff_s4;
  longlong lVar14;
  int local_34;
  char *local_30;
  int local_2c;
  
  puVar6 = PTR___stack_chk_guard_001464dc;
  lVar3 = CONCAT44(unaff_s3,unaff_s4);
  local_2c = *(int *)PTR___stack_chk_guard_001464dc;
  puVar7 = (undefined4 *)array_variable_part(param_1,(param_3 << 0x1a) >> 0x1f,&local_30,&local_34);
  if (local_34 == 0) goto LAB_00094ddc;
  cVar1 = *local_30;
  if (((cVar1 == '@') || (cVar1 == '*')) && (local_30[1] == ']')) {
    if (param_4 != (undefined4 *)0x0) {
      uVar10 = 2;
      if (cVar1 == '*') {
        uVar10 = 1;
      }
      *param_4 = uVar10;
    }
    if ((param_3 & 1) == 0) {
      (*(code *)PTR_err_badarraysub_00145318)(param_1);
      iVar8 = 0;
      goto LAB_00094de0;
    }
    iVar8 = 0;
    if ((puVar7 == (undefined4 *)0x0) || (puVar7[1] == 0)) goto LAB_00094de0;
    uVar11 = puVar7[5];
    if ((uVar11 & 0x1000) == 0) {
      if ((uVar11 & 0x44) == 0) {
        uVar10 = (*(code *)PTR_make_word_001445bc)();
        iVar9 = (*(code *)PTR_make_word_list_001445b8)(uVar10,0);
      }
      else if ((uVar11 & 0x40) == 0) {
        iVar9 = array_to_word_list();
        if (iVar9 == 0) goto LAB_00094ddc;
      }
      else {
        iVar9 = assoc_to_word_list();
        if (iVar9 == 0) {
          iVar8 = 0;
          goto LAB_00094de0;
        }
      }
      if ((*local_30 == '*') && ((param_2 & 3) != 0)) {
        uVar10 = (*(code *)PTR_string_list_dollar_star_0014522c)
                           (iVar9,param_2,(int)param_3 >> 1 & 8);
        iVar8 = quote_string(uVar10);
        (*(code *)PTR_free_001464fc)(uVar10);
      }
      else {
        iVar8 = string_list_dollar_at(iVar9,param_2);
      }
      (*(code *)PTR_dispose_words_001445cc)(iVar9);
      goto LAB_00094de0;
    }
  }
  else {
    if (param_4 != (undefined4 *)0x0) {
      *param_4 = 0;
    }
    if (puVar7 == (undefined4 *)0x0) {
LAB_00094c78:
      if ((param_3 & 4) == 0) {
        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);
        if (lVar14 < 0) {
LAB_00094f18:
          puVar5 = PTR_err_badarraysub_00145318;
          if (puVar7 == (undefined4 *)0x0) {
            local_30[-1] = '\0';
            (*(code *)puVar5)(param_1);
            iVar8 = 0;
            local_30[-1] = '[';
            goto LAB_00094de0;
          }
          uVar11 = puVar7[5];
          if ((uVar11 & 4) != 0) {
            iVar8 = puVar7[1];
            uVar12 = *(uint *)(iVar8 + 0xc) + 1;
            lVar2 = CONCAT44((uint)(uVar12 < *(uint *)(iVar8 + 0xc)) + *(int *)(iVar8 + 8),uVar12);
            lVar4 = lVar14 + lVar2;
            lVar3 = lVar14 + lVar2;
            lVar14 = lVar14 + lVar2;
            if (-1 < lVar4) {
              uVar12 = uVar11 & 0x1000;
              if (param_5 == (longlong *)0x0) goto LAB_00094cb0;
              *param_5 = lVar4;
              goto LAB_00094c94;
            }
          }
LAB_00094fbc:
          (*(code *)PTR_err_badarraysub_00145318)(*puVar7);
          iVar8 = 0;
          goto LAB_00094de0;
        }
        if (param_5 != (longlong *)0x0) {
          *param_5 = lVar14;
        }
      }
      else if (param_5 == (longlong *)0x0) {
        lVar14 = array_expand_index(puVar7,local_30,local_34,param_3);
        if (lVar14 < 0) goto LAB_00094f18;
      }
      else {
        lVar14 = *param_5;
      }
LAB_00094c94:
      iVar8 = 0;
      if (puVar7 == (undefined4 *)0x0) goto LAB_00094de0;
      iVar8 = puVar7[1];
      if (iVar8 != 0) {
        uVar11 = puVar7[5];
        uVar12 = uVar11 & 0x1000;
        lVar3 = lVar14;
        goto LAB_00094cb0;
      }
    }
    else {
      uVar11 = puVar7[5];
      if ((uVar11 & 0x44) != 0x40) goto LAB_00094c78;
      if ((uVar11 & 0x40) == 0) {
        iVar8 = puVar7[1];
        uVar12 = uVar11 & 0x1000;
        if (iVar8 == 0) {
          iVar8 = 0;
          goto LAB_00094de0;
        }
LAB_00094cb0:
        pcVar13 = (char *)0x0;
        if (uVar12 != 0) goto LAB_00094ddc;
      }
      else {
        local_30[local_34 + -1] = '\0';
        if ((param_3 & 0x20) == 0) {
          pcVar13 = (char *)expand_assignment_string_to_string(local_30,0);
          local_30[local_34 + -1] = ']';
          if (pcVar13 != (char *)0x0) goto LAB_00094eac;
          goto LAB_00094fbc;
        }
        iVar8 = (*(code *)PTR_strlen_00146390)(local_30);
        uVar10 = xmalloc(iVar8 + 1);
        pcVar13 = (char *)(*(code *)PTR_strcpy_00146418)(uVar10,local_30);
        local_30[local_34 + -1] = ']';
LAB_00094eac:
        if (*pcVar13 == '\0') {
          (*(code *)PTR_free_001464fc)(pcVar13);
          goto LAB_00094fbc;
        }
        iVar8 = puVar7[1];
        if (iVar8 == 0) {
          (*(code *)PTR_free_001464fc)(pcVar13);
          goto LAB_00094de0;
        }
        uVar11 = puVar7[5];
        if ((uVar11 & 0x1000) != 0) {
          (*(code *)PTR_free_001464fc)(pcVar13);
          iVar8 = 0;
          goto LAB_00094de0;
        }
      }
      if ((uVar11 & 0x44) != 0) {
        if ((uVar11 & 0x40) == 0) {
          iVar8 = array_reference(iVar8);
        }
        else {
          iVar8 = assoc_reference(iVar8,pcVar13);
          (*(code *)PTR_free_001464fc)(pcVar13);
        }
        goto LAB_00094de0;
      }
      if (lVar3 == 0) goto LAB_00094de0;
    }
  }
LAB_00094ddc:
  iVar8 = 0;
LAB_00094de0:
  if (local_2c != *(int *)puVar6) {
    (*(code *)PTR___stack_chk_fail_00146488)();
    iVar8 = MASKED();
    return iVar8;
  }
  return iVar8;
}

