
SHELL_VAR * make_local_variable(char *name,int flags)

{
  char cVar1;
  undefined *puVar2;
  undefined *puVar3;
  SHELL_VAR *pSVar4;
  uint uVar5;
  SHELL_VAR *pSVar6;
  undefined4 uVar7;
  uint uVar8;
  sh_var_assign_func_t *psVar9;
  int iVar10;
  int iVar11;
  char *pcVar12;
  uint uVar13;
  
  pSVar4 = find_variable_noref(name);
  if ((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)) {
    pSVar4 = find_variable(name);
    if (pSVar4 == (SHELL_VAR *)0x0) {
      pcVar12 = (char *)0x0;
      uVar13 = 0;
      goto LAB_0005990c;
    }
    uVar5 = pSVar4->attributes;
  }
  else {
    find_variable(name);
    uVar5 = pSVar4->attributes;
  }
  if ((uVar5 & 0x20) == 0) {
    uVar13 = uVar5 & 0x100000;
    pcVar12 = (char *)0x0;
    if (uVar13 == 0) goto LAB_0005990c;
    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&
       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {
      pSVar4->attributes = uVar5 & 0xffffefff;
      return pSVar4;
    }
  }
  else {
    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {
      return pSVar4;
    }
    uVar13 = uVar5 & 0x100000;
    pcVar12 = (char *)0x0;
    if (uVar13 == 0) goto LAB_0005990c;
  }
  pcVar12 = pSVar4->value;
  uVar13 = 1;
LAB_0005990c:
  puVar2 = PTR_variable_context_0014485c;
  iVar11 = *(int *)PTR_shell_variables_001446f8;
  if (iVar11 != 0) {
    do {
      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&
         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {
        if (*(int *)(iVar11 + 0x14) == 0) {
          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);
          *(undefined4 *)(iVar11 + 0x14) = uVar7;
        }
        if (pSVar4 == (SHELL_VAR *)0x0) {
          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));
          uVar5 = pSVar6->attributes;
        }
        else {
          uVar5 = pSVar4->attributes & 2;
          if ((pSVar4->attributes & 0x4000U) != 0) {
            if (uVar5 == 0) {
              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);
              (*(code *)PTR_builtin_error_00145030)(uVar7,name);
              return (SHELL_VAR *)0x0;
            }
LAB_00059c90:
            (*(code *)PTR_sh_readonly_00145028)(name);
            return (SHELL_VAR *)0x0;
          }
          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;
          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));
          puVar3 = PTR_localvar_inherit_0014501c;
          if (uVar13 == 0) {
            iVar10 = *(int *)PTR_localvar_inherit_0014501c;
            uVar5 = pSVar4->attributes;
            if ((flags & 1U) != 0 || iVar10 != 0) {
              if ((uVar5 & 0x40) == 0) {
                if ((uVar5 & 4) == 0) {
                  if (pSVar4->value == (char *)0x0) {
                    pSVar6->value = (char *)0x0;
                  }
                  else {
                    iVar10 = (*(code *)PTR_strlen_00146390)();
                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);
                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);
                    iVar10 = *(int *)puVar3;
                    uVar5 = pSVar4->attributes;
                    pSVar6->value = pcVar12;
                  }
                }
                else {
                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);
                  uVar5 = pSVar4->attributes;
                  iVar10 = *(int *)puVar3;
                  pSVar6->value = pcVar12;
                }
              }
              else {
                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);
                uVar5 = pSVar4->attributes;
                iVar10 = *(int *)puVar3;
                pSVar6->value = pcVar12;
              }
              goto LAB_00059ad4;
            }
          }
          else {
            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);
            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);
            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);
            uVar5 = pSVar4->attributes;
            pSVar6->value = pcVar12;
            iVar10 = *(int *)PTR_localvar_inherit_0014501c;
LAB_00059ad4:
            if ((iVar10 != 0) || ((flags & 1U) != 0)) {
              psVar9 = pSVar4->assign_func;
              uVar8 = *(uint *)(iVar11 + 8);
              pSVar6->dynamic_value = pSVar4->dynamic_value;
              pSVar6->attributes = uVar5 & 0xfffff7ff;
              pSVar6->assign_func = psVar9;
              *(uint *)(iVar11 + 8) = uVar8 | 1;
              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;
              pSVar6->context = *(int *)puVar2;
              cVar1 = *name;
              goto joined_r0x00059b1c;
            }
          }
          uVar5 = uVar5 & 1;
          pSVar6->attributes = uVar5;
        }
        iVar10 = *(int *)puVar2;
        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;
        pSVar6->context = iVar10;
        pSVar6->attributes = uVar5 | 0x20;
        cVar1 = *name;
joined_r0x00059b1c:
        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {
          (*(code *)PTR_setifs_00144de8)(pSVar6);
        }
        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {
          return pSVar6;
        }
        if (pSVar6->value != (char *)0x0) {
          return pSVar6;
        }
        pSVar6->attributes = pSVar6->attributes | 0x1000;
        return pSVar6;
      }
      iVar11 = *(int *)(iVar11 + 0x10);
    } while (iVar11 != 0);
  }
  pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);
  internal_error(pcVar12);
  return (SHELL_VAR *)0x0;
}



int make_local_variable(char *param_1,uint param_2)

{
  char cVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  undefined4 uVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  undefined4 uVar11;
  uint uVar12;
  
  iVar4 = find_variable_noref();
  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {
    iVar4 = find_variable(param_1);
    if (iVar4 == 0) {
      uVar11 = 0;
      uVar12 = 0;
      goto LAB_0005990c;
    }
    uVar5 = *(uint *)(iVar4 + 0x14);
  }
  else {
    find_variable(param_1);
    uVar5 = *(uint *)(iVar4 + 0x14);
  }
  if ((uVar5 & 0x20) == 0) {
    uVar12 = uVar5 & 0x100000;
    uVar11 = 0;
    if (uVar12 == 0) goto LAB_0005990c;
    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&
       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {
      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;
      return iVar4;
    }
  }
  else {
    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {
      return iVar4;
    }
    uVar12 = uVar5 & 0x100000;
    uVar11 = 0;
    if (uVar12 == 0) goto LAB_0005990c;
  }
  uVar11 = *(undefined4 *)(iVar4 + 4);
  uVar12 = 1;
LAB_0005990c:
  puVar2 = PTR_variable_context_0014485c;
  iVar10 = *(int *)PTR_shell_variables_001446f8;
  if (iVar10 != 0) {
    do {
      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&
         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {
        if (*(int *)(iVar10 + 0x14) == 0) {
          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);
          *(undefined4 *)(iVar10 + 0x14) = uVar7;
        }
        if (iVar4 == 0) {
          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));
          uVar5 = *(uint *)(iVar6 + 0x14);
        }
        else {
          uVar5 = *(uint *)(iVar4 + 0x14) & 2;
          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {
            if (uVar5 == 0) {
              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);
              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);
              return 0;
            }
LAB_00059c90:
            (*(code *)PTR_sh_readonly_00145028)(param_1);
            return 0;
          }
          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;
          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));
          puVar3 = PTR_localvar_inherit_0014501c;
          if (uVar12 == 0) {
            iVar9 = *(int *)PTR_localvar_inherit_0014501c;
            uVar5 = *(uint *)(iVar4 + 0x14);
            if ((param_2 & 1) != 0 || iVar9 != 0) {
              if ((uVar5 & 0x40) == 0) {
                if ((uVar5 & 4) == 0) {
                  if (*(int *)(iVar4 + 4) == 0) {
                    *(undefined4 *)(iVar6 + 4) = 0;
                  }
                  else {
                    iVar9 = (*(code *)PTR_strlen_00146390)();
                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);
                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));
                    iVar9 = *(int *)puVar3;
                    uVar5 = *(uint *)(iVar4 + 0x14);
                    *(undefined4 *)(iVar6 + 4) = uVar11;
                  }
                }
                else {
                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));
                  uVar5 = *(uint *)(iVar4 + 0x14);
                  iVar9 = *(int *)puVar3;
                  *(undefined4 *)(iVar6 + 4) = uVar11;
                }
              }
              else {
                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);
                uVar5 = *(uint *)(iVar4 + 0x14);
                iVar9 = *(int *)puVar3;
                *(undefined4 *)(iVar6 + 4) = uVar11;
              }
              goto LAB_00059ad4;
            }
          }
          else {
            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);
            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);
            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);
            uVar5 = *(uint *)(iVar4 + 0x14);
            *(undefined4 *)(iVar6 + 4) = uVar11;
            iVar9 = *(int *)PTR_localvar_inherit_0014501c;
LAB_00059ad4:
            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {
              uVar11 = *(undefined4 *)(iVar4 + 0x10);
              uVar8 = *(uint *)(iVar10 + 8);
              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);
              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;
              *(undefined4 *)(iVar6 + 0x10) = uVar11;
              *(uint *)(iVar10 + 8) = uVar8 | 1;
              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;
              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;
              cVar1 = *param_1;
              goto joined_r0x00059b1c;
            }
          }
          uVar5 = uVar5 & 1;
          *(uint *)(iVar6 + 0x14) = uVar5;
        }
        uVar11 = *(undefined4 *)puVar2;
        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;
        *(undefined4 *)(iVar6 + 0x18) = uVar11;
        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;
        cVar1 = *param_1;
joined_r0x00059b1c:
        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')
           ) {
          (*(code *)PTR_setifs_00144de8)(iVar6);
        }
        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {
          return iVar6;
        }
        if (*(int *)(iVar6 + 4) != 0) {
          return iVar6;
        }
        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;
        return iVar6;
      }
      iVar10 = *(int *)(iVar10 + 0x10);
    } while (iVar10 != 0);
  }
  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);
  internal_error(uVar11);
  return 0;
}


lui gp,0xf
addiu gp,gp,0x2cec
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x75e4(gp)
sw gp,0x10(sp)
sw s3,0x28(sp)
or s3,a1,zero
sw s2,0x24(sp)
or s2,a0,zero
sw ra,0x3c(sp)
sw s7,0x38(sp)
sw s6,0x34(sp)
sw s5,0x30(sp)
sw s4,0x2c(sp)
sw s1,0x20(sp)
bal 0x000563c0
_sw s0,0x1c(sp)
or a0,s2,zero
lw gp,0x10(sp)
beq v0,zero,0x000598c0
_lw t9,-0x7db8(gp)
or s1,v0,zero
lw v0,0x14(v0)
andi v0,v0,0x800
bne v0,zero,0x000599a4
_nop
bal 0x00055be0
_nop
lw gp,0x10(sp)
beq v0,zero,0x00059c7c
_or s1,v0,zero
lw v0,0x14(v0)
andi v1,v0,0x20
beq v1,zero,0x000599c0
_lui s6,0x10
lw v1,-0x7ce4(gp)
lw a0,0x18(s1)
lw v1,0x0(v1)
beq a0,v1,0x00059ca8
_lui s6,0x10
and s6,v0,s6
beq s6,zero,0x0005990c
_or s4,zero,zero
lw s4,0x4(s1)
li s6,0x1
lw v0,-0x7e48(gp)
lw s0,0x0(v0)
beq s0,zero,0x00059948
_lw s7,-0x7ce4(gp)
lw v1,0x0(s7)
lw v0,0x8(s0)
andi v0,v0,0x4
beq v0,zero,0x0005993c
_nop
lw v0,0x4(s0)
beq v0,v1,0x00059a04
_nop
lw s0,0x10(s0)
bne s0,zero,0x00059920
_nop
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x60a8(gp)
or a0,zero,zero
or s5,zero,zero
jalr t9
_addiu a1,a1,0x6eb4
lw gp,0x10(sp)
lw t9,-0x7d44(gp)
bal 0x0005faf8
_or a0,v0,zero
lw ra,0x3c(sp)
or v0,s5,zero
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x40
bal 0x00055be0
_nop
lw v0,0x14(s1)
andi v1,v0,0x20
bne v1,zero,0x000598e4
_lw gp,0x10(sp)
lui s6,0x10
and s6,v0,s6
beq s6,zero,0x0005990c
_or s4,zero,zero
lw v1,-0x7ce4(gp)
lw a0,0x18(s1)
lw v1,0x0(v1)
bne a0,v1,0x00059904
_lw v1,-0x7fd8(gp)
lw a0,0x7cf0(v1)
lw v1,-0x7ce8(gp)
lw v1,0x0(v1)
beq a0,v1,0x00059904
_li v1,-0x1001
or s5,s1,zero
and v0,v0,v1
b 0x00059974
_sw v0,0x14(s1)
lw v0,0x14(s0)
beq v0,zero,0x00059c64
_nop
beq s1,zero,0x00059b64
_nop
lw v0,0x14(s1)
andi v1,v0,0x4000
bne v1,zero,0x00059c88
_andi v0,v0,0x2
beq v0,zero,0x00059a3c
_lw t9,-0x7550(gp)
lw v0,0x18(s1)
beq v0,zero,0x00059c90
_nop
or a0,s2,zero
addiu t9,t9,-0x74e4
bal 0x00058b1c
_lw a1,0x14(s0)
lw gp,0x10(sp)
bne s6,zero,0x00059c1c
_or s5,v0,zero
lw s4,-0x7524(gp)
andi v0,s3,0x1
lw a1,0x0(s4)
or v0,v0,a1
beq v0,zero,0x00059bec
_lw v1,0x14(s1)
andi v0,v1,0x40
bne v0,zero,0x00059bf8
_nop
andi v0,v1,0x4
bne v0,zero,0x00059cb0
_nop
lw a0,0x4(s1)
beq a0,zero,0x00059cd0
_nop
lw t9,-0x61b0(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw t9,-0x7f90(gp)
jalr t9
_addiu a0,v0,0x1
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x6128(gp)
jalr t9
_lw a1,0x4(s1)
lw a1,0x0(s4)
lw gp,0x10(sp)
lw v1,0x14(s1)
sw v0,0x4(s5)
beq a1,zero,0x00059be0
_nop
lw a1,0xc(s1)
li v0,-0x801
lw a0,0x10(s1)
and v0,v1,v0
lw v1,0x8(s0)
sw a1,0xc(s5)
sw v0,0x14(s5)
ori v0,v0,0x20
sw a0,0x10(s5)
ori v1,v1,0x1
sw v1,0x8(s0)
li a0,0x49
sw v0,0x14(s5)
lw a1,0x0(s7)
sw a1,0x18(s5)
lb v0,0x0(s2)
bne v0,a0,0x00059bb4
_lw v0,-0x7520(gp)
lb v1,0x1(s2)
li v0,0x46
bne v1,v0,0x00059bb4
_lw v0,-0x7520(gp)
lb v1,0x2(s2)
li v0,0x53
bne v1,v0,0x00059bb4
_lw v0,-0x7520(gp)
lb v0,0x3(s2)
bne v0,zero,0x00059bb4
_lw v0,-0x7520(gp)
lw t9,-0x7758(gp)
jalr t9
_or a0,s5,zero
b 0x00059bb0
_lw gp,0x10(sp)
lw t9,-0x7550(gp)
or a0,s2,zero
addiu t9,t9,-0x74e4
bal 0x00058b1c
_lw a1,0x14(s0)
or s5,v0,zero
lw gp,0x10(sp)
lw v0,0x14(v0)
lw v1,0x8(s0)
ori v0,v0,0x20
lw a1,0x0(s7)
li a0,0x49
ori v1,v1,0x1
sw v1,0x8(s0)
sw a1,0x18(s5)
sw v0,0x14(s5)
lb v0,0x0(s2)
beq v0,a0,0x00059b24
_nop
lw v0,-0x7520(gp)
lw v0,0x0(v0)
or s6,s6,v0
bne s6,zero,0x00059978
_lw ra,0x3c(sp)
lw v0,0x4(s5)
bne v0,zero,0x0005997c
_or v0,s5,zero
lw v0,0x14(s5)
ori v0,v0,0x1000
b 0x00059974
_sw v0,0x14(s5)
andi s3,s3,0x1
bne s3,zero,0x00059adc
_nop
andi v0,v1,0x1
b 0x00059b84
_sw v0,0x14(s5)
lw t9,-0x751c(gp)
or a1,zero,zero
jalr t9
_lw a0,0x4(s1)
lw gp,0x10(sp)
lw v1,0x14(s1)
lw a1,0x0(s4)
b 0x00059ad4
_sw v0,0x4(s5)
lw t9,-0x61b0(gp)
jalr t9
_or a0,s4,zero
lw gp,0x10(sp)
lw t9,-0x7f90(gp)
jalr t9
_addiu a0,v0,0x1
or a1,s4,zero
lw gp,0x10(sp)
lw t9,-0x6128(gp)
jalr t9
_or a0,v0,zero
lw gp,0x10(sp)
lw v1,0x14(s1)
sw v0,0x4(s5)
lw v0,-0x7524(gp)
b 0x00059ad4
_lw a1,0x0(v0)
lw t9,-0x76a4(gp)
jalr t9
_li a0,0x4
lw gp,0x10(sp)
b 0x00059a10
_sw v0,0x14(s0)
or s4,zero,zero
b 0x0005990c
_or s6,zero,zero
beq v0,zero,0x00059cd8
_lw a1,-0x7fc8(gp)
lw t9,-0x7518(gp)
or a0,s2,zero
jalr t9
_or s5,zero,zero
b 0x00059978
_lw ra,0x3c(sp)
b 0x00059974
_or s5,s1,zero
lw t9,-0x7514(gp)
jalr t9
_lw a0,0x4(s1)
lw gp,0x10(sp)
lw v1,0x14(s1)
lw a1,0x0(s4)
b 0x00059ad4
_sw v0,0x4(s5)
b 0x00059ad4
_sw zero,0x4(s5)
li a2,0x5
lw t9,-0x60a8(gp)
or a0,zero,zero
or s5,zero,zero
jalr t9
_addiu a1,a1,0x6e8c
or a1,s2,zero
lw gp,0x10(sp)
lw t9,-0x7510(gp)
jalr t9
_or a0,v0,zero
b 0x00059978
_lw ra,0x3c(sp)
(translation_unit "int make_local_variable(char *param_1,uint param_2)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}\n\n" (function_definition "int make_local_variable(char *param_1,uint param_2)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" primitive_type (function_declarator "make_local_variable(char *param_1,uint param_2)" identifier (parameter_list "(char *param_1,uint param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "iVar4 = find_variable_noref();" (assignment_expression "iVar4 = find_variable_noref()" identifier = (call_expression "find_variable_noref()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" if (parenthesized_expression "((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0))" ( (binary_expression "(iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x800)" ( (binary_expression "*(uint *)(iVar4 + 0x14) & 0x800" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" { (expression_statement "iVar4 = find_variable(param_1);" (assignment_expression "iVar4 = find_variable(param_1)" identifier = (call_expression "find_variable(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" else (compound_statement "{\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" { (expression_statement "find_variable(param_1);" (call_expression "find_variable(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" if (parenthesized_expression "((uVar5 & 0x20) == 0)" ( (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }" { (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) (if_statement "if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858))" ( (binary_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) && (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7cf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7cf0)" ( (binary_expression "PTR_data_start_00144568 + 0x7cf0" identifier + number_literal) )))) != (pointer_expression "*(int *)PTR_temporary_env_00144858" * (cast_expression "(int *)PTR_temporary_env_00144858" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" { (expression_statement "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffffefff" identifier & number_literal)) ;) (return_statement "return iVar4;" return identifier ;) })) }) (else_clause "else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" else (compound_statement "{\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" { (if_statement "if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;" statement_identifier : (expression_statement "puVar2 = PTR_variable_context_0014485c;" (assignment_expression "puVar2 = PTR_variable_context_0014485c" identifier = identifier) ;)) (expression_statement "iVar10 = *(int *)PTR_shell_variables_001446f8;" (assignment_expression "iVar10 = *(int *)PTR_shell_variables_001446f8" identifier = (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" { (do_statement "do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);" do (compound_statement "{\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    }" { (if_statement "if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" if (parenthesized_expression "(((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c))" ( (binary_expression "((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" (parenthesized_expression "((*(uint *)(iVar10 + 8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar10 + 8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar10 + 8) & 4)" ( (binary_expression "*(uint *)(iVar10 + 8) & 4" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" { (if_statement "if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" if (parenthesized_expression "(*(int *)(iVar10 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x14) == 0" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" { (expression_statement "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);" (assignment_expression "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4)" identifier = (call_expression "(*(code *)PTR_hash_create_00144e9c)(4)" (parenthesized_expression "(*(code *)PTR_hash_create_00144e9c)" ( (pointer_expression "*(code *)PTR_hash_create_00144e9c" * (cast_expression "(code *)PTR_hash_create_00144e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = uVar7;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = uVar7" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }" { (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier = (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" else (compound_statement "{\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" { (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14) & 2;" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14) & 2" identifier = (binary_expression "*(uint *)(iVar4 + 0x14) & 2" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" if (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x4000) != 0)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x4000)" ( (binary_expression "*(uint *)(iVar4 + 0x14) & 0x4000" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" { (if_statement "if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" { (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6e8c,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6e8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1);" (call_expression "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1)" (parenthesized_expression "(*(code *)PTR_builtin_error_00145030)" ( (pointer_expression "*(code *)PTR_builtin_error_00145030" * (cast_expression "(code *)PTR_builtin_error_00145030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);" statement_identifier : (expression_statement "(*(code *)PTR_sh_readonly_00145028)(param_1);" (call_expression "(*(code *)PTR_sh_readonly_00145028)(param_1)" (parenthesized_expression "(*(code *)PTR_sh_readonly_00145028)" ( (pointer_expression "*(code *)PTR_sh_readonly_00145028" * (cast_expression "(code *)PTR_sh_readonly_00145028" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;" if (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0))" ( (binary_expression "(uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_00059c90;" goto statement_identifier ;)) (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier = (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar3 = PTR_localvar_inherit_0014501c;" (assignment_expression "puVar3 = PTR_localvar_inherit_0014501c" identifier = identifier) ;) (if_statement "if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }" { (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" if (parenthesized_expression "((param_2 & 1) != 0 || iVar9 != 0)" ( (binary_expression "(param_2 & 1) != 0 || iVar9 != 0" (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) || (binary_expression "iVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" { (if_statement "if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\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                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }" { (if_statement "if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\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                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }" { (if_statement "if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" if (parenthesized_expression "(*(int *)(iVar4 + 4) == 0)" ( (binary_expression "*(int *)(iVar4 + 4) == 0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" else (compound_statement "{\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" { (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)();" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)()" identifier = (call_expression "(*(code *)PTR_strlen_00146390)()" (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 "()" ( )))) ;) (expression_statement "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9 + 1)" ( (binary_expression "iVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" (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 "(uVar11,*(undefined4 *)(iVar4 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" else (compound_statement "{\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" { (expression_statement "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)PTR_array_copy_0014502c)" ( (pointer_expression "*(code *)PTR_array_copy_0014502c" * (cast_expression "(code *)PTR_array_copy_0014502c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar4 + 4))" ( (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" else (compound_statement "{\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" { (expression_statement "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);" (assignment_expression "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" identifier = (call_expression "(*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" (parenthesized_expression "(*(code *)PTR_hash_copy_00145024)" ( (pointer_expression "*(code *)PTR_hash_copy_00145024" * (cast_expression "(code *)PTR_hash_copy_00145024" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar4 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_00059ad4;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" else (compound_statement "{\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" { (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(uVar11)" (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 "(uVar11)" ( identifier )))) ;) (expression_statement "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9 + 1)" ( (binary_expression "iVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" (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 "(uVar7,uVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" statement_identifier : (if_statement "if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" if (parenthesized_expression "((iVar9 != 0) || ((param_2 & 1) != 0))" ( (binary_expression "(iVar9 != 0) || ((param_2 & 1) != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) || (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" { (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar10 + 8);" (assignment_expression "uVar8 = *(uint *)(iVar10 + 8)" identifier = (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc)" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" * (cast_expression "(undefined4 *)(iVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar10 + 8) = uVar8 | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = uVar8 | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (binary_expression "uVar8 | 1" identifier | number_literal)) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xfffff7ff | 0x20" (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto joined_r0x00059b1c;" goto statement_identifier ;) }))) }))) (expression_statement "uVar5 = uVar5 & 1;" (assignment_expression "uVar5 = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar11 = *(undefined4 *)puVar2;" (assignment_expression "uVar11 = *(undefined4 *)puVar2" identifier = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 | 0x20" identifier | number_literal)) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "joined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" statement_identifier : (if_statement "if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" if (parenthesized_expression "((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           )" ( (binary_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')" (parenthesized_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S'))" ( (binary_expression "((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')" (parenthesized_expression "((cVar1 == 'I') && (param_1[1] == 'F'))" ( (binary_expression "(cVar1 == 'I') && (param_1[1] == 'F')" (parenthesized_expression "(cVar1 == 'I')" ( (binary_expression "cVar1 == 'I'" identifier == (char_literal "'I'" ' character ')) )) && (parenthesized_expression "(param_1[1] == 'F')" ( (binary_expression "param_1[1] == 'F'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'F'" ' character ')) ))) )) && (parenthesized_expression "(param_1[2] == 'S')" ( (binary_expression "param_1[2] == 'S'" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (char_literal "'S'" ' character ')) ))) )) && (parenthesized_expression "(param_1[3] == '\0')" ( (binary_expression "param_1[3] == '\0'" (subscript_expression "param_1[3]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" { (expression_statement "(*(code *)PTR_setifs_00144de8)(iVar6);" (call_expression "(*(code *)PTR_setifs_00144de8)(iVar6)" (parenthesized_expression "(*(code *)PTR_setifs_00144de8)" ( (pointer_expression "*(code *)PTR_setifs_00144de8" * (cast_expression "(code *)PTR_setifs_00144de8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) }))) (if_statement "if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }" if (parenthesized_expression "(uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0)" ( (binary_expression "uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "*(int *)PTR_no_invisible_vars_00145020 != 0" (pointer_expression "*(int *)PTR_no_invisible_vars_00145020" * (cast_expression "(int *)PTR_no_invisible_vars_00145020" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal)) )) (compound_statement "{\n          return iVar6;\n        }" { (return_statement "return iVar6;" return identifier ;) })) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          return iVar6;\n        }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;" (assignment_expression "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return iVar6;" return identifier ;) })) (expression_statement "iVar10 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6eb4,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6eb4" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar11);" (call_expression "internal_error(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "SHELL_VAR * make_local_variable(char *name,int flags)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  SHELL_VAR *pSVar4;\n  uint uVar5;\n  SHELL_VAR *pSVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  sh_var_assign_func_t *psVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  \n  pSVar4 = find_variable_noref(name);\n  if ((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)) {\n    pSVar4 = find_variable(name);\n    if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = pSVar4->attributes;\n  }\n  else {\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }\n  }\n  else {\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }\n  pcVar12 = pSVar4->value;\n  uVar13 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar11 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar11 != 0) {\n    do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);\n  }\n  pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(pcVar12);\n  return (SHELL_VAR *)0x0;\n}\n\n" (function_definition "SHELL_VAR * make_local_variable(char *name,int flags)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  SHELL_VAR *pSVar4;\n  uint uVar5;\n  SHELL_VAR *pSVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  sh_var_assign_func_t *psVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  \n  pSVar4 = find_variable_noref(name);\n  if ((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)) {\n    pSVar4 = find_variable(name);\n    if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = pSVar4->attributes;\n  }\n  else {\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }\n  }\n  else {\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }\n  pcVar12 = pSVar4->value;\n  uVar13 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar11 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar11 != 0) {\n    do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);\n  }\n  pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(pcVar12);\n  return (SHELL_VAR *)0x0;\n}" type_identifier (pointer_declarator "* make_local_variable(char *name,int flags)" * (function_declarator "make_local_variable(char *name,int flags)" identifier (parameter_list "(char *name,int flags)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) )))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  SHELL_VAR *pSVar4;\n  uint uVar5;\n  SHELL_VAR *pSVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  sh_var_assign_func_t *psVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  \n  pSVar4 = find_variable_noref(name);\n  if ((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)) {\n    pSVar4 = find_variable(name);\n    if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = pSVar4->attributes;\n  }\n  else {\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }\n  }\n  else {\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }\n  pcVar12 = pSVar4->value;\n  uVar13 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar11 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar11 != 0) {\n    do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);\n  }\n  pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(pcVar12);\n  return (SHELL_VAR *)0x0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "SHELL_VAR *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "SHELL_VAR *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "sh_var_assign_func_t *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (expression_statement "pSVar4 = find_variable_noref(name);" (assignment_expression "pSVar4 = find_variable_noref(name)" identifier = (call_expression "find_variable_noref(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if ((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)) {\n    pSVar4 = find_variable(name);\n    if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = pSVar4->attributes;\n  }\n  else {\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }" if (parenthesized_expression "((pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0))" ( (binary_expression "(pSVar4 == (SHELL_VAR *)0x0) || ((pSVar4->attributes & 0x800U) == 0)" (parenthesized_expression "(pSVar4 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar4 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pSVar4->attributes & 0x800U) == 0)" ( (binary_expression "(pSVar4->attributes & 0x800U) == 0" (parenthesized_expression "(pSVar4->attributes & 0x800U)" ( (binary_expression "pSVar4->attributes & 0x800U" (field_expression "pSVar4->attributes" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    pSVar4 = find_variable(name);\n    if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = pSVar4->attributes;\n  }" { (expression_statement "pSVar4 = find_variable(name);" (assignment_expression "pSVar4 = find_variable(name)" identifier = (call_expression "find_variable(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (pSVar4 == (SHELL_VAR *)0x0) {\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }" if (parenthesized_expression "(pSVar4 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar4 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar12 = (char *)0x0;\n      uVar13 = 0;\n      goto LAB_0005990c;\n    }" { (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;) })) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) }) (else_clause "else {\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }" else (compound_statement "{\n    find_variable(name);\n    uVar5 = pSVar4->attributes;\n  }" { (expression_statement "find_variable(name);" (call_expression "find_variable(name)" identifier (argument_list "(name)" ( identifier ))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) }))) (if_statement "if ((uVar5 & 0x20) == 0) {\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }\n  }\n  else {\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }" if (parenthesized_expression "((uVar5 & 0x20) == 0)" ( (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n    if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }\n  }" { (expression_statement "uVar13 = uVar5 & 0x100000;" (assignment_expression "uVar13 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar13 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) (if_statement "if ((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }" if (parenthesized_expression "((pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858))" ( (binary_expression "(pSVar4->context == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" (parenthesized_expression "(pSVar4->context == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "pSVar4->context == *(int *)PTR_variable_context_0014485c" (field_expression "pSVar4->context" identifier -> field_identifier) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) && (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7cf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7cf0)" ( (binary_expression "PTR_data_start_00144568 + 0x7cf0" identifier + number_literal) )))) != (pointer_expression "*(int *)PTR_temporary_env_00144858" * (cast_expression "(int *)PTR_temporary_env_00144858" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n      pSVar4->attributes = uVar5 & 0xffffefff;\n      return pSVar4;\n    }" { (expression_statement "pSVar4->attributes = uVar5 & 0xffffefff;" (assignment_expression "pSVar4->attributes = uVar5 & 0xffffefff" (field_expression "pSVar4->attributes" identifier -> field_identifier) = (binary_expression "uVar5 & 0xffffefff" identifier & number_literal)) ;) (return_statement "return pSVar4;" return identifier ;) })) }) (else_clause "else {\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }" else (compound_statement "{\n    if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }\n    uVar13 = uVar5 & 0x100000;\n    pcVar12 = (char *)0x0;\n    if (uVar13 == 0) goto LAB_0005990c;\n  }" { (if_statement "if (pSVar4->context == *(int *)PTR_variable_context_0014485c) {\n      return pSVar4;\n    }" if (parenthesized_expression "(pSVar4->context == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "pSVar4->context == *(int *)PTR_variable_context_0014485c" (field_expression "pSVar4->context" identifier -> field_identifier) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return pSVar4;\n    }" { (return_statement "return pSVar4;" return identifier ;) })) (expression_statement "uVar13 = uVar5 & 0x100000;" (assignment_expression "uVar13 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "pcVar12 = (char *)0x0;" (assignment_expression "pcVar12 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar13 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) }))) (expression_statement "pcVar12 = pSVar4->value;" (assignment_expression "pcVar12 = pSVar4->value" identifier = (field_expression "pSVar4->value" identifier -> field_identifier)) ;) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;" statement_identifier : (expression_statement "puVar2 = PTR_variable_context_0014485c;" (assignment_expression "puVar2 = PTR_variable_context_0014485c" identifier = identifier) ;)) (expression_statement "iVar11 = *(int *)PTR_shell_variables_001446f8;" (assignment_expression "iVar11 = *(int *)PTR_shell_variables_001446f8" identifier = (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar11 != 0) {\n    do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);\n  }" { (do_statement "do {\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    } while (iVar11 != 0);" do (compound_statement "{\n      if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }\n      iVar11 = *(int *)(iVar11 + 0x10);\n    }" { (if_statement "if (((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }" if (parenthesized_expression "(((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c))" ( (binary_expression "((*(uint *)(iVar11 + 8) & 4) != 0) &&\n         (*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)" (parenthesized_expression "((*(uint *)(iVar11 + 8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar11 + 8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar11 + 8) & 4)" ( (binary_expression "*(uint *)(iVar11 + 8) & 4" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar11 + 4) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n        if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }\n        if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }\n        iVar10 = *(int *)puVar2;\n        *(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;\n        pSVar6->context = iVar10;\n        pSVar6->attributes = uVar5 | 0x20;\n        cVar1 = *name;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }\n        if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }\n        if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }\n        pSVar6->attributes = pSVar6->attributes | 0x1000;\n        return pSVar6;\n      }" { (if_statement "if (*(int *)(iVar11 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }" if (parenthesized_expression "(*(int *)(iVar11 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar11 + 0x14) == 0" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar11 + 0x14) = uVar7;\n        }" { (expression_statement "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);" (assignment_expression "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4)" identifier = (call_expression "(*(code *)PTR_hash_create_00144e9c)(4)" (parenthesized_expression "(*(code *)PTR_hash_create_00144e9c)" ( (pointer_expression "*(code *)PTR_hash_create_00144e9c" * (cast_expression "(code *)PTR_hash_create_00144e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x14) = uVar7;" (assignment_expression "*(undefined4 *)(iVar11 + 0x14) = uVar7" (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (pSVar4 == (SHELL_VAR *)0x0) {\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }\n        else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }" if (parenthesized_expression "(pSVar4 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar4 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          uVar5 = pSVar6->attributes;\n        }" { (expression_statement "pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));" (assignment_expression "pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14))" identifier = (call_expression "make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14))" identifier (argument_list "(name,*(HASH_TABLE **)(iVar11 + 0x14))" ( identifier , (pointer_expression "*(HASH_TABLE **)(iVar11 + 0x14)" * (cast_expression "(HASH_TABLE **)(iVar11 + 0x14)" ( (type_descriptor "HASH_TABLE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = pSVar6->attributes;" (assignment_expression "uVar5 = pSVar6->attributes" identifier = (field_expression "pSVar6->attributes" identifier -> field_identifier)) ;) }) (else_clause "else {\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }" else (compound_statement "{\n          uVar5 = pSVar4->attributes & 2;\n          if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }\n          if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;\n          pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          pSVar6->attributes = uVar5;\n        }" { (expression_statement "uVar5 = pSVar4->attributes & 2;" (assignment_expression "uVar5 = pSVar4->attributes & 2" identifier = (binary_expression "pSVar4->attributes & 2" (field_expression "pSVar4->attributes" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((pSVar4->attributes & 0x4000U) != 0) {\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }" if (parenthesized_expression "((pSVar4->attributes & 0x4000U) != 0)" ( (binary_expression "(pSVar4->attributes & 0x4000U) != 0" (parenthesized_expression "(pSVar4->attributes & 0x4000U)" ( (binary_expression "pSVar4->attributes & 0x4000U" (field_expression "pSVar4->attributes" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);\n            return (SHELL_VAR *)0x0;\n          }" { (if_statement "if (uVar5 == 0) {\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar7,name);\n              return (SHELL_VAR *)0x0;\n            }" { (expression_statement "uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);" (assignment_expression "uVar7 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6e8c,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6e8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_builtin_error_00145030)(uVar7,name);" (call_expression "(*(code *)PTR_builtin_error_00145030)(uVar7,name)" (parenthesized_expression "(*(code *)PTR_builtin_error_00145030)" ( (pointer_expression "*(code *)PTR_builtin_error_00145030" * (cast_expression "(code *)PTR_builtin_error_00145030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7,name)" ( identifier , identifier ))) ;) (return_statement "return (SHELL_VAR *)0x0;" return (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(name);" statement_identifier : (expression_statement "(*(code *)PTR_sh_readonly_00145028)(name);" (call_expression "(*(code *)PTR_sh_readonly_00145028)(name)" (parenthesized_expression "(*(code *)PTR_sh_readonly_00145028)" ( (pointer_expression "*(code *)PTR_sh_readonly_00145028" * (cast_expression "(code *)PTR_sh_readonly_00145028" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(name)" ( identifier ))) ;)) (return_statement "return (SHELL_VAR *)0x0;" return (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if ((uVar5 != 0) && (pSVar4->context == 0)) goto LAB_00059c90;" if (parenthesized_expression "((uVar5 != 0) && (pSVar4->context == 0))" ( (binary_expression "(uVar5 != 0) && (pSVar4->context == 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(pSVar4->context == 0)" ( (binary_expression "pSVar4->context == 0" (field_expression "pSVar4->context" identifier -> field_identifier) == number_literal) ))) )) (goto_statement "goto LAB_00059c90;" goto statement_identifier ;)) (expression_statement "pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14));" (assignment_expression "pSVar6 = make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14))" identifier = (call_expression "make_new_variable(name,*(HASH_TABLE **)(iVar11 + 0x14))" identifier (argument_list "(name,*(HASH_TABLE **)(iVar11 + 0x14))" ( identifier , (pointer_expression "*(HASH_TABLE **)(iVar11 + 0x14)" * (cast_expression "(HASH_TABLE **)(iVar11 + 0x14)" ( (type_descriptor "HASH_TABLE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar3 = PTR_localvar_inherit_0014501c;" (assignment_expression "puVar3 = PTR_localvar_inherit_0014501c" identifier = identifier) ;) (if_statement "if (uVar13 == 0) {\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = pSVar4->attributes;\n            if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }\n          }" { (expression_statement "iVar10 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar10 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) (if_statement "if ((flags & 1U) != 0 || iVar10 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }" if (parenthesized_expression "((flags & 1U) != 0 || iVar10 != 0)" ( (binary_expression "(flags & 1U) != 0 || iVar10 != 0" (binary_expression "(flags & 1U) != 0" (parenthesized_expression "(flags & 1U)" ( (binary_expression "flags & 1U" identifier & number_literal) )) != number_literal) || (binary_expression "iVar10 != 0" identifier != number_literal)) )) (compound_statement "{\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }\n              goto LAB_00059ad4;\n            }" { (if_statement "if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }\n              else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\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                if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }\n              }" { (if_statement "if ((uVar5 & 4) == 0) {\n                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }\n                else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\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                  if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }\n                }" { (if_statement "if (pSVar4->value == (char *)0x0) {\n                    pSVar6->value = (char *)0x0;\n                  }\n                  else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }" if (parenthesized_expression "(pSVar4->value == (char *)0x0)" ( (binary_expression "pSVar4->value == (char *)0x0" (field_expression "pSVar4->value" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pSVar6->value = (char *)0x0;\n                  }" { (expression_statement "pSVar6->value = (char *)0x0;" (assignment_expression "pSVar6->value = (char *)0x0" (field_expression "pSVar6->value" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }" else (compound_statement "{\n                    iVar10 = (*(code *)PTR_strlen_00146390)();\n                    uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n                    pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);\n                    iVar10 = *(int *)puVar3;\n                    uVar5 = pSVar4->attributes;\n                    pSVar6->value = pcVar12;\n                  }" { (expression_statement "iVar10 = (*(code *)PTR_strlen_00146390)();" (assignment_expression "iVar10 = (*(code *)PTR_strlen_00146390)()" identifier = (call_expression "(*(code *)PTR_strlen_00146390)()" (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 "()" ( )))) ;) (expression_statement "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);" (assignment_expression "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar10 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value)" identifier = (cast_expression "(char *)(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strcpy_00146418)(uVar7,pSVar4->value)" (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 "(uVar7,pSVar4->value)" ( identifier , (field_expression "pSVar4->value" identifier -> field_identifier) ))))) ;) (expression_statement "iVar10 = *(int *)puVar3;" (assignment_expression "iVar10 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) (expression_statement "pSVar6->value = pcVar12;" (assignment_expression "pSVar6->value = pcVar12" (field_expression "pSVar6->value" identifier -> field_identifier) = identifier) ;) }))) }) (else_clause "else {\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }" else (compound_statement "{\n                  pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);\n                  uVar5 = pSVar4->attributes;\n                  iVar10 = *(int *)puVar3;\n                  pSVar6->value = pcVar12;\n                }" { (expression_statement "pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value)" identifier = (cast_expression "(char *)(*(code *)PTR_array_copy_0014502c)(pSVar4->value)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_array_copy_0014502c)(pSVar4->value)" (parenthesized_expression "(*(code *)PTR_array_copy_0014502c)" ( (pointer_expression "*(code *)PTR_array_copy_0014502c" * (cast_expression "(code *)PTR_array_copy_0014502c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pSVar4->value)" ( (field_expression "pSVar4->value" identifier -> field_identifier) ))))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) (expression_statement "iVar10 = *(int *)puVar3;" (assignment_expression "iVar10 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pSVar6->value = pcVar12;" (assignment_expression "pSVar6->value = pcVar12" (field_expression "pSVar6->value" identifier -> field_identifier) = identifier) ;) }))) }) (else_clause "else {\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }" else (compound_statement "{\n                pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);\n                uVar5 = pSVar4->attributes;\n                iVar10 = *(int *)puVar3;\n                pSVar6->value = pcVar12;\n              }" { (expression_statement "pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0)" identifier = (cast_expression "(char *)(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_hash_copy_00145024)(pSVar4->value,0)" (parenthesized_expression "(*(code *)PTR_hash_copy_00145024)" ( (pointer_expression "*(code *)PTR_hash_copy_00145024" * (cast_expression "(code *)PTR_hash_copy_00145024" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pSVar4->value,0)" ( (field_expression "pSVar4->value" identifier -> field_identifier) , number_literal ))))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) (expression_statement "iVar10 = *(int *)puVar3;" (assignment_expression "iVar10 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pSVar6->value = pcVar12;" (assignment_expression "pSVar6->value = pcVar12" (field_expression "pSVar6->value" identifier -> field_identifier) = identifier) ;) }))) (goto_statement "goto LAB_00059ad4;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }" else (compound_statement "{\n            iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);\n            pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);\n            uVar5 = pSVar4->attributes;\n            pSVar6->value = pcVar12;\n            iVar10 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }\n          }" { (expression_statement "iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12);" (assignment_expression "iVar10 = (*(code *)PTR_strlen_00146390)(pcVar12)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(pcVar12)" (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 "(pcVar12)" ( identifier )))) ;) (expression_statement "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1);" (assignment_expression "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar10 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar10 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12)" identifier = (cast_expression "(char *)(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strcpy_00146418)(uVar7,pcVar12)" (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 "(uVar7,pcVar12)" ( identifier , identifier ))))) ;) (expression_statement "uVar5 = pSVar4->attributes;" (assignment_expression "uVar5 = pSVar4->attributes" identifier = (field_expression "pSVar4->attributes" identifier -> field_identifier)) ;) (expression_statement "pSVar6->value = pcVar12;" (assignment_expression "pSVar6->value = pcVar12" (field_expression "pSVar6->value" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar10 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar10 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00059ad4:\n            if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }" statement_identifier : (if_statement "if ((iVar10 != 0) || ((flags & 1U) != 0)) {\n              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }" if (parenthesized_expression "((iVar10 != 0) || ((flags & 1U) != 0))" ( (binary_expression "(iVar10 != 0) || ((flags & 1U) != 0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) || (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              psVar9 = pSVar4->assign_func;\n              uVar8 = *(uint *)(iVar11 + 8);\n              pSVar6->dynamic_value = pSVar4->dynamic_value;\n              pSVar6->attributes = uVar5 & 0xfffff7ff;\n              pSVar6->assign_func = psVar9;\n              *(uint *)(iVar11 + 8) = uVar8 | 1;\n              pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;\n              pSVar6->context = *(int *)puVar2;\n              cVar1 = *name;\n              goto joined_r0x00059b1c;\n            }" { (expression_statement "psVar9 = pSVar4->assign_func;" (assignment_expression "psVar9 = pSVar4->assign_func" identifier = (field_expression "pSVar4->assign_func" identifier -> field_identifier)) ;) (expression_statement "uVar8 = *(uint *)(iVar11 + 8);" (assignment_expression "uVar8 = *(uint *)(iVar11 + 8)" identifier = (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "pSVar6->dynamic_value = pSVar4->dynamic_value;" (assignment_expression "pSVar6->dynamic_value = pSVar4->dynamic_value" (field_expression "pSVar6->dynamic_value" identifier -> field_identifier) = (field_expression "pSVar4->dynamic_value" identifier -> field_identifier)) ;) (expression_statement "pSVar6->attributes = uVar5 & 0xfffff7ff;" (assignment_expression "pSVar6->attributes = uVar5 & 0xfffff7ff" (field_expression "pSVar6->attributes" identifier -> field_identifier) = (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal)) ;) (expression_statement "pSVar6->assign_func = psVar9;" (assignment_expression "pSVar6->assign_func = psVar9" (field_expression "pSVar6->assign_func" identifier -> field_identifier) = identifier) ;) (expression_statement "*(uint *)(iVar11 + 8) = uVar8 | 1;" (assignment_expression "*(uint *)(iVar11 + 8) = uVar8 | 1" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) = (binary_expression "uVar8 | 1" identifier | number_literal)) ;) (expression_statement "pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20;" (assignment_expression "pSVar6->attributes = uVar5 & 0xfffff7ff | 0x20" (field_expression "pSVar6->attributes" identifier -> field_identifier) = (binary_expression "uVar5 & 0xfffff7ff | 0x20" (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal) | number_literal)) ;) (expression_statement "pSVar6->context = *(int *)puVar2;" (assignment_expression "pSVar6->context = *(int *)puVar2" (field_expression "pSVar6->context" identifier -> field_identifier) = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar1 = *name;" (assignment_expression "cVar1 = *name" identifier = (pointer_expression "*name" * identifier)) ;) (goto_statement "goto joined_r0x00059b1c;" goto statement_identifier ;) }))) }))) (expression_statement "uVar5 = uVar5 & 1;" (assignment_expression "uVar5 = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) ;) (expression_statement "pSVar6->attributes = uVar5;" (assignment_expression "pSVar6->attributes = uVar5" (field_expression "pSVar6->attributes" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "iVar10 = *(int *)puVar2;" (assignment_expression "iVar10 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1;" (assignment_expression "*(uint *)(iVar11 + 8) = *(uint *)(iVar11 + 8) | 1" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar11 + 8) | 1" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "pSVar6->context = iVar10;" (assignment_expression "pSVar6->context = iVar10" (field_expression "pSVar6->context" identifier -> field_identifier) = identifier) ;) (expression_statement "pSVar6->attributes = uVar5 | 0x20;" (assignment_expression "pSVar6->attributes = uVar5 | 0x20" (field_expression "pSVar6->attributes" identifier -> field_identifier) = (binary_expression "uVar5 | 0x20" identifier | number_literal)) ;) (expression_statement "cVar1 = *name;" (assignment_expression "cVar1 = *name" identifier = (pointer_expression "*name" * identifier)) ;) (labeled_statement "joined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }" statement_identifier : (if_statement "if ((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')) {\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }" if (parenthesized_expression "((((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0'))" ( (binary_expression "(((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')) && (name[3] == '\0')" (parenthesized_expression "(((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S'))" ( (binary_expression "((cVar1 == 'I') && (name[1] == 'F')) && (name[2] == 'S')" (parenthesized_expression "((cVar1 == 'I') && (name[1] == 'F'))" ( (binary_expression "(cVar1 == 'I') && (name[1] == 'F')" (parenthesized_expression "(cVar1 == 'I')" ( (binary_expression "cVar1 == 'I'" identifier == (char_literal "'I'" ' character ')) )) && (parenthesized_expression "(name[1] == 'F')" ( (binary_expression "name[1] == 'F'" (subscript_expression "name[1]" identifier [ number_literal ]) == (char_literal "'F'" ' character ')) ))) )) && (parenthesized_expression "(name[2] == 'S')" ( (binary_expression "name[2] == 'S'" (subscript_expression "name[2]" identifier [ number_literal ]) == (char_literal "'S'" ' character ')) ))) )) && (parenthesized_expression "(name[3] == '\0')" ( (binary_expression "name[3] == '\0'" (subscript_expression "name[3]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (*(code *)PTR_setifs_00144de8)(pSVar6);\n        }" { (expression_statement "(*(code *)PTR_setifs_00144de8)(pSVar6);" (call_expression "(*(code *)PTR_setifs_00144de8)(pSVar6)" (parenthesized_expression "(*(code *)PTR_setifs_00144de8)" ( (pointer_expression "*(code *)PTR_setifs_00144de8" * (cast_expression "(code *)PTR_setifs_00144de8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pSVar6)" ( identifier ))) ;) }))) (if_statement "if (uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return pSVar6;\n        }" if (parenthesized_expression "(uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0)" ( (binary_expression "uVar13 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0" (binary_expression "uVar13 != 0" identifier != number_literal) || (binary_expression "*(int *)PTR_no_invisible_vars_00145020 != 0" (pointer_expression "*(int *)PTR_no_invisible_vars_00145020" * (cast_expression "(int *)PTR_no_invisible_vars_00145020" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal)) )) (compound_statement "{\n          return pSVar6;\n        }" { (return_statement "return pSVar6;" return identifier ;) })) (if_statement "if (pSVar6->value != (char *)0x0) {\n          return pSVar6;\n        }" if (parenthesized_expression "(pSVar6->value != (char *)0x0)" ( (binary_expression "pSVar6->value != (char *)0x0" (field_expression "pSVar6->value" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return pSVar6;\n        }" { (return_statement "return pSVar6;" return identifier ;) })) (expression_statement "pSVar6->attributes = pSVar6->attributes | 0x1000;" (assignment_expression "pSVar6->attributes = pSVar6->attributes | 0x1000" (field_expression "pSVar6->attributes" identifier -> field_identifier) = (binary_expression "pSVar6->attributes | 0x1000" (field_expression "pSVar6->attributes" identifier -> field_identifier) | number_literal)) ;) (return_statement "return pSVar6;" return identifier ;) })) (expression_statement "iVar11 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) })) (expression_statement "pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);" (assignment_expression "pcVar12 = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6eb4,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6eb4" identifier + number_literal) , number_literal ))))) ;) (expression_statement "internal_error(pcVar12);" (call_expression "internal_error(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) (return_statement "return (SHELL_VAR *)0x0;" return (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "int make_local_variable(char *param_1,uint param_2)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}\n\n" (function_definition "int make_local_variable(char *param_1,uint param_2)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" primitive_type (function_declarator "make_local_variable(char *param_1,uint param_2)" identifier (parameter_list "(char *param_1,uint param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "iVar4 = find_variable_noref();" (assignment_expression "iVar4 = find_variable_noref()" identifier = (call_expression "find_variable_noref()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" if (parenthesized_expression "((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0))" ( (binary_expression "(iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x800)" ( (binary_expression "*(uint *)(iVar4 + 0x14) & 0x800" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" { (expression_statement "iVar4 = find_variable(param_1);" (assignment_expression "iVar4 = find_variable(param_1)" identifier = (call_expression "find_variable(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" else (compound_statement "{\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" { (expression_statement "find_variable(param_1);" (call_expression "find_variable(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) }))) (if_statement "if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" if (parenthesized_expression "((uVar5 & 0x20) == 0)" ( (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }" { (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) (if_statement "if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858))" ( (binary_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) && (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x7cf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x7cf0)" ( (binary_expression "PTR_data_start_00144568 + 0x7cf0" identifier + number_literal) )))) != (pointer_expression "*(int *)PTR_temporary_env_00144858" * (cast_expression "(int *)PTR_temporary_env_00144858" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" { (expression_statement "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xffffefff" identifier & number_literal)) ;) (return_statement "return iVar4;" return identifier ;) })) }) (else_clause "else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" else (compound_statement "{\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" { (if_statement "if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return iVar4;\n    }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" identifier = (binary_expression "uVar5 & 0x100000" identifier & number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005990c;" goto statement_identifier ;)) }))) (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;" statement_identifier : (expression_statement "puVar2 = PTR_variable_context_0014485c;" (assignment_expression "puVar2 = PTR_variable_context_0014485c" identifier = identifier) ;)) (expression_statement "iVar10 = *(int *)PTR_shell_variables_001446f8;" (assignment_expression "iVar10 = *(int *)PTR_shell_variables_001446f8" identifier = (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" { (do_statement "do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);" do (compound_statement "{\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    }" { (if_statement "if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" if (parenthesized_expression "(((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c))" ( (binary_expression "((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" (parenthesized_expression "((*(uint *)(iVar10 + 8) & 4) != 0)" ( (binary_expression "(*(uint *)(iVar10 + 8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar10 + 8) & 4)" ( (binary_expression "*(uint *)(iVar10 + 8) & 4" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" ( (binary_expression "*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) == (pointer_expression "*(int *)PTR_variable_context_0014485c" * (cast_expression "(int *)PTR_variable_context_0014485c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" { (if_statement "if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" if (parenthesized_expression "(*(int *)(iVar10 + 0x14) == 0)" ( (binary_expression "*(int *)(iVar10 + 0x14) == 0" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" { (expression_statement "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);" (assignment_expression "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4)" identifier = (call_expression "(*(code *)PTR_hash_create_00144e9c)(4)" (parenthesized_expression "(*(code *)PTR_hash_create_00144e9c)" ( (pointer_expression "*(code *)PTR_hash_create_00144e9c" * (cast_expression "(code *)PTR_hash_create_00144e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(4)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = uVar7;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = uVar7" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }" { (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier = (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" else (compound_statement "{\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" { (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14) & 2;" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14) & 2" identifier = (binary_expression "*(uint *)(iVar4 + 0x14) & 2" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" if (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x4000) != 0)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x4000)" ( (binary_expression "*(uint *)(iVar4 + 0x14) & 0x4000" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" { (if_statement "if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" { (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6e8c,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6e8c" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1);" (call_expression "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1)" (parenthesized_expression "(*(code *)PTR_builtin_error_00145030)" ( (pointer_expression "*(code *)PTR_builtin_error_00145030" * (cast_expression "(code *)PTR_builtin_error_00145030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);" statement_identifier : (expression_statement "(*(code *)PTR_sh_readonly_00145028)(param_1);" (call_expression "(*(code *)PTR_sh_readonly_00145028)(param_1)" (parenthesized_expression "(*(code *)PTR_sh_readonly_00145028)" ( (pointer_expression "*(code *)PTR_sh_readonly_00145028" * (cast_expression "(code *)PTR_sh_readonly_00145028" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;" if (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0))" ( (binary_expression "(uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_00059c90;" goto statement_identifier ;)) (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier = (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" identifier (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" ( identifier , (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar3 = PTR_localvar_inherit_0014501c;" (assignment_expression "puVar3 = PTR_localvar_inherit_0014501c" identifier = identifier) ;) (if_statement "if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }" { (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" if (parenthesized_expression "((param_2 & 1) != 0 || iVar9 != 0)" ( (binary_expression "(param_2 & 1) != 0 || iVar9 != 0" (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) || (binary_expression "iVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" { (if_statement "if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\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                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }" { (if_statement "if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\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                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }" { (if_statement "if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" if (parenthesized_expression "(*(int *)(iVar4 + 4) == 0)" ( (binary_expression "*(int *)(iVar4 + 4) == 0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" else (compound_statement "{\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" { (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)();" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)()" identifier = (call_expression "(*(code *)PTR_strlen_00146390)()" (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 "()" ( )))) ;) (expression_statement "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9 + 1)" ( (binary_expression "iVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" (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 "(uVar11,*(undefined4 *)(iVar4 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" else (compound_statement "{\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" { (expression_statement "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" identifier = (call_expression "(*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)PTR_array_copy_0014502c)" ( (pointer_expression "*(code *)PTR_array_copy_0014502c" * (cast_expression "(code *)PTR_array_copy_0014502c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar4 + 4))" ( (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) }) (else_clause "else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" else (compound_statement "{\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" { (expression_statement "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);" (assignment_expression "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" identifier = (call_expression "(*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" (parenthesized_expression "(*(code *)PTR_hash_copy_00145024)" ( (pointer_expression "*(code *)PTR_hash_copy_00145024" * (cast_expression "(code *)PTR_hash_copy_00145024" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(iVar4 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_00059ad4;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" else (compound_statement "{\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" { (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(uVar11)" (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 "(uVar11)" ( identifier )))) ;) (expression_statement "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" ( (pointer_expression "*(code *)PTR_xmalloc_001445b0" * (cast_expression "(code *)PTR_xmalloc_001445b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9 + 1)" ( (binary_expression "iVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" (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 "(uVar7,uVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" identifier = (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" * (cast_expression "(int *)PTR_localvar_inherit_0014501c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" statement_identifier : (if_statement "if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" if (parenthesized_expression "((iVar9 != 0) || ((param_2 & 1) != 0))" ( (binary_expression "(iVar9 != 0) || ((param_2 & 1) != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) || (parenthesized_expression "((param_2 & 1) != 0)" ( (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" { (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(iVar10 + 8);" (assignment_expression "uVar8 = *(uint *)(iVar10 + 8)" identifier = (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc)" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" * (cast_expression "(undefined4 *)(iVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar10 + 8) = uVar8 | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = uVar8 | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (binary_expression "uVar8 | 1" identifier | number_literal)) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 & 0xfffff7ff | 0x20" (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (goto_statement "goto joined_r0x00059b1c;" goto statement_identifier ;) }))) }))) (expression_statement "uVar5 = uVar5 & 1;" (assignment_expression "uVar5 = uVar5 & 1" identifier = (binary_expression "uVar5 & 1" identifier & number_literal)) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar11 = *(undefined4 *)puVar2;" (assignment_expression "uVar11 = *(undefined4 *)puVar2" identifier = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" * (cast_expression "(uint *)(iVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar5 | 0x20" identifier | number_literal)) ;) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "joined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" statement_identifier : (if_statement "if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" if (parenthesized_expression "((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           )" ( (binary_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')" (parenthesized_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S'))" ( (binary_expression "((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')" (parenthesized_expression "((cVar1 == 'I') && (param_1[1] == 'F'))" ( (binary_expression "(cVar1 == 'I') && (param_1[1] == 'F')" (parenthesized_expression "(cVar1 == 'I')" ( (binary_expression "cVar1 == 'I'" identifier == (char_literal "'I'" ' character ')) )) && (parenthesized_expression "(param_1[1] == 'F')" ( (binary_expression "param_1[1] == 'F'" (subscript_expression "param_1[1]" identifier [ number_literal ]) == (char_literal "'F'" ' character ')) ))) )) && (parenthesized_expression "(param_1[2] == 'S')" ( (binary_expression "param_1[2] == 'S'" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (char_literal "'S'" ' character ')) ))) )) && (parenthesized_expression "(param_1[3] == '\0')" ( (binary_expression "param_1[3] == '\0'" (subscript_expression "param_1[3]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" { (expression_statement "(*(code *)PTR_setifs_00144de8)(iVar6);" (call_expression "(*(code *)PTR_setifs_00144de8)(iVar6)" (parenthesized_expression "(*(code *)PTR_setifs_00144de8)" ( (pointer_expression "*(code *)PTR_setifs_00144de8" * (cast_expression "(code *)PTR_setifs_00144de8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier ))) ;) }))) (if_statement "if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }" if (parenthesized_expression "(uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0)" ( (binary_expression "uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "*(int *)PTR_no_invisible_vars_00145020 != 0" (pointer_expression "*(int *)PTR_no_invisible_vars_00145020" * (cast_expression "(int *)PTR_no_invisible_vars_00145020" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal)) )) (compound_statement "{\n          return iVar6;\n        }" { (return_statement "return iVar6;" return identifier ;) })) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          return iVar6;\n        }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;" (assignment_expression "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" * (cast_expression "(uint *)(iVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return iVar6;" return identifier ;) })) (expression_statement "iVar10 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0x10)" identifier = (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6eb4,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6eb4" identifier + number_literal) , number_literal )))) ;) (expression_statement "internal_error(uVar11);" (call_expression "internal_error(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "int make_local_variable(char *param_1,uint param_2)\n\n{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" (primitive_type "int") (function_declarator "make_local_variable(char *param_1,uint param_2)" (identifier "make_local_variable") (parameter_list "(char *param_1,uint param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  \n  iVar4 = find_variable_noref();\n  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }\n  uVar11 = *(undefined4 *)(iVar4 + 4);\n  uVar12 = 1;\nLAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;\n  iVar10 = *(int *)PTR_shell_variables_001446f8;\n  if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }\n  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);\n  internal_error(uVar11);\n  return 0;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (expression_statement "iVar4 = find_variable_noref();" (assignment_expression "iVar4 = find_variable_noref()" (identifier "iVar4") (= "=") (call_expression "find_variable_noref()" (identifier "find_variable_noref") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }\n  else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" (if "if") (parenthesized_expression "((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0))" (( "(") (binary_expression "(iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x800) == 0)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x800) == 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x800)" (( "(") (binary_expression "*(uint *)(iVar4 + 0x14) & 0x800" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar4 = find_variable(param_1);\n    if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" ({ "{") (expression_statement "iVar4 = find_variable(param_1);" (assignment_expression "iVar4 = find_variable(param_1)" (identifier "iVar4") (= "=") (call_expression "find_variable(param_1)" (identifier "find_variable") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = 0;\n      uVar12 = 0;\n      goto LAB_0005990c;\n    }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0005990c;" (goto "goto") (statement_identifier "LAB_0005990c") (; ";")) (} "}"))) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" (else "else") (compound_statement "{\n    find_variable(param_1);\n    uVar5 = *(uint *)(iVar4 + 0x14);\n  }" ({ "{") (expression_statement "find_variable(param_1);" (call_expression "find_variable(param_1)" (identifier "find_variable") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((uVar5 & 0x20) == 0) {\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }\n  else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" (if "if") (parenthesized_expression "((uVar5 & 0x20) == 0)" (( "(") (binary_expression "(uVar5 & 0x20) == 0" (parenthesized_expression "(uVar5 & 0x20)" (( "(") (binary_expression "uVar5 & 0x20" (identifier "uVar5") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }\n  }" ({ "{") (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" (identifier "uVar12") (= "=") (binary_expression "uVar5 & 0x100000" (identifier "uVar5") (& "&") (number_literal "0x100000"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005990c;" (goto "goto") (statement_identifier "LAB_0005990c") (; ";"))) (if_statement "if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&\n       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (pointer_expression "*(int *)PTR_variable_context_0014485c" (* "*") (cast_expression "(int *)PTR_variable_context_0014485c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_variable_context_0014485c")))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)" (( "(") (binary_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x7cf0)" (* "*") (cast_expression "(int *)(PTR_data_start_00144568 + 0x7cf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x7cf0)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x7cf0" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x7cf0")) () ")")))) (!= "!=") (pointer_expression "*(int *)PTR_temporary_env_00144858" (* "*") (cast_expression "(int *)PTR_temporary_env_00144858" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_temporary_env_00144858")))) () ")"))) () ")")) (compound_statement "{\n      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;\n      return iVar4;\n    }" ({ "{") (expression_statement "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;" (assignment_expression "*(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar5 & 0xffffefff" (identifier "uVar5") (& "&") (number_literal "0xffffefff"))) (; ";")) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" (else "else") (compound_statement "{\n    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }\n    uVar12 = uVar5 & 0x100000;\n    uVar11 = 0;\n    if (uVar12 == 0) goto LAB_0005990c;\n  }" ({ "{") (if_statement "if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {\n      return iVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (pointer_expression "*(int *)PTR_variable_context_0014485c" (* "*") (cast_expression "(int *)PTR_variable_context_0014485c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_variable_context_0014485c")))) () ")")) (compound_statement "{\n      return iVar4;\n    }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar5 & 0x100000;" (assignment_expression "uVar12 = uVar5 & 0x100000" (identifier "uVar12") (= "=") (binary_expression "uVar5 & 0x100000" (identifier "uVar5") (& "&") (number_literal "0x100000"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar12 == 0) goto LAB_0005990c;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005990c;" (goto "goto") (statement_identifier "LAB_0005990c") (; ";"))) (} "}")))) (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0005990c:\n  puVar2 = PTR_variable_context_0014485c;" (statement_identifier "LAB_0005990c") (: ":") (expression_statement "puVar2 = PTR_variable_context_0014485c;" (assignment_expression "puVar2 = PTR_variable_context_0014485c" (identifier "puVar2") (= "=") (identifier "PTR_variable_context_0014485c")) (; ";"))) (expression_statement "iVar10 = *(int *)PTR_shell_variables_001446f8;" (assignment_expression "iVar10 = *(int *)PTR_shell_variables_001446f8" (identifier "iVar10") (= "=") (pointer_expression "*(int *)PTR_shell_variables_001446f8" (* "*") (cast_expression "(int *)PTR_shell_variables_001446f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shell_variables_001446f8")))) (; ";")) (if_statement "if (iVar10 != 0) {\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);\n  }" ({ "{") (do_statement "do {\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    } while (iVar10 != 0);" (do "do") (compound_statement "{\n      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }\n      iVar10 = *(int *)(iVar10 + 0x10);\n    }" ({ "{") (if_statement "if (((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" (if "if") (parenthesized_expression "(((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c))" (( "(") (binary_expression "((*(uint *)(iVar10 + 8) & 4) != 0) &&\n         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" (parenthesized_expression "((*(uint *)(iVar10 + 8) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(iVar10 + 8) & 4) != 0" (parenthesized_expression "(*(uint *)(iVar10 + 8) & 4)" (( "(") (binary_expression "*(uint *)(iVar10 + 8) & 4" (pointer_expression "*(uint *)(iVar10 + 8)" (* "*") (cast_expression "(uint *)(iVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)" (( "(") (binary_expression "*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c" (pointer_expression "*(int *)(iVar10 + 4)" (* "*") (cast_expression "(int *)(iVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")")))) (== "==") (pointer_expression "*(int *)PTR_variable_context_0014485c" (* "*") (cast_expression "(int *)PTR_variable_context_0014485c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_variable_context_0014485c")))) () ")"))) () ")")) (compound_statement "{\n        if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }\n        if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }\n        uVar11 = *(undefined4 *)puVar2;\n        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;\n        *(undefined4 *)(iVar6 + 0x18) = uVar11;\n        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;\n        cVar1 = *param_1;\njoined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }\n        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }\n        if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }\n        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;\n        return iVar6;\n      }" ({ "{") (if_statement "if (*(int *)(iVar10 + 0x14) == 0) {\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x14) == 0" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);\n          *(undefined4 *)(iVar10 + 0x14) = uVar7;\n        }" ({ "{") (expression_statement "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);" (assignment_expression "uVar7 = (*(code *)PTR_hash_create_00144e9c)(4)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_hash_create_00144e9c)(4)" (parenthesized_expression "(*(code *)PTR_hash_create_00144e9c)" (( "(") (pointer_expression "*(code *)PTR_hash_create_00144e9c" (* "*") (cast_expression "(code *)PTR_hash_create_00144e9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hash_create_00144e9c"))) () ")")) (argument_list "(4)" (( "(") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar10 + 0x14) = uVar7;" (assignment_expression "*(undefined4 *)(iVar10 + 0x14) = uVar7" (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (if_statement "if (iVar4 == 0) {\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }\n        else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          uVar5 = *(uint *)(iVar6 + 0x14);\n        }" ({ "{") (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" (identifier "iVar6") (= "=") (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" (identifier "FUN_00058b1c") (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" (else "else") (compound_statement "{\n          uVar5 = *(uint *)(iVar4 + 0x14) & 2;\n          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }\n          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;\n          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));\n          puVar3 = PTR_localvar_inherit_0014501c;\n          if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }\n          uVar5 = uVar5 & 1;\n          *(uint *)(iVar6 + 0x14) = uVar5;\n        }" ({ "{") (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14) & 2;" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14) & 2" (identifier "uVar5") (= "=") (binary_expression "*(uint *)(iVar4 + 0x14) & 2" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "2"))) (; ";")) (if_statement "if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" (if "if") (parenthesized_expression "((*(uint *)(iVar4 + 0x14) & 0x4000) != 0)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0x14) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) & 0x4000)" (( "(") (binary_expression "*(uint *)(iVar4 + 0x14) & 0x4000" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }\nLAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);\n            return 0;\n          }" ({ "{") (if_statement "if (uVar5 == 0) {\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);\n              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);\n              return 0;\n            }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00146498" (* "*") (cast_expression "(code *)PTR_dcgettext_00146498" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00146498"))) () ")")) (argument_list "(0,PTR_LAB_00144578 + 0x6e8c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_00144578 + 0x6e8c" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6e8c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1);" (call_expression "(*(code *)PTR_builtin_error_00145030)(uVar11,param_1)" (parenthesized_expression "(*(code *)PTR_builtin_error_00145030)" (( "(") (pointer_expression "*(code *)PTR_builtin_error_00145030" (* "*") (cast_expression "(code *)PTR_builtin_error_00145030" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_builtin_error_00145030"))) () ")")) (argument_list "(uVar11,param_1)" (( "(") (identifier "uVar11") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00059c90:\n            (*(code *)PTR_sh_readonly_00145028)(param_1);" (statement_identifier "LAB_00059c90") (: ":") (expression_statement "(*(code *)PTR_sh_readonly_00145028)(param_1);" (call_expression "(*(code *)PTR_sh_readonly_00145028)(param_1)" (parenthesized_expression "(*(code *)PTR_sh_readonly_00145028)" (( "(") (pointer_expression "*(code *)PTR_sh_readonly_00145028" (* "*") (cast_expression "(code *)PTR_sh_readonly_00145028" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sh_readonly_00145028"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;" (if "if") (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0))" (( "(") (binary_expression "(uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)" (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x18) == 0" (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00059c90;" (goto "goto") (statement_identifier "LAB_00059c90") (; ";"))) (expression_statement "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));" (assignment_expression "iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" (identifier "iVar6") (= "=") (call_expression "FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14))" (identifier "FUN_00058b1c") (argument_list "(param_1,*(undefined4 *)(iVar10 + 0x14))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar3 = PTR_localvar_inherit_0014501c;" (assignment_expression "puVar3 = PTR_localvar_inherit_0014501c" (identifier "puVar3") (= "=") (identifier "PTR_localvar_inherit_0014501c")) (; ";")) (if_statement "if (uVar12 == 0) {\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }\n          else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }\n          }" ({ "{") (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" (identifier "iVar9") (= "=") (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" (* "*") (cast_expression "(int *)PTR_localvar_inherit_0014501c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_localvar_inherit_0014501c")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((param_2 & 1) != 0 || iVar9 != 0) {\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" (if "if") (parenthesized_expression "((param_2 & 1) != 0 || iVar9 != 0)" (( "(") (binary_expression "(param_2 & 1) != 0 || iVar9 != 0" (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n              if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }\n              goto LAB_00059ad4;\n            }" ({ "{") (if_statement "if ((uVar5 & 0x40) == 0) {\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }\n              else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" (if "if") (parenthesized_expression "((uVar5 & 0x40) == 0)" (( "(") (binary_expression "(uVar5 & 0x40) == 0" (parenthesized_expression "(uVar5 & 0x40)" (( "(") (binary_expression "uVar5 & 0x40" (identifier "uVar5") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }\n              }" ({ "{") (if_statement "if ((uVar5 & 4) == 0) {\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }\n                else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" (if "if") (parenthesized_expression "((uVar5 & 4) == 0)" (( "(") (binary_expression "(uVar5 & 4) == 0" (parenthesized_expression "(uVar5 & 4)" (( "(") (binary_expression "uVar5 & 4" (identifier "uVar5") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }\n                }" ({ "{") (if_statement "if (*(int *)(iVar4 + 4) == 0) {\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }\n                  else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 4) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 4) == 0" (pointer_expression "*(int *)(iVar4 + 4)" (* "*") (cast_expression "(int *)(iVar4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined4 *)(iVar6 + 4) = 0;\n                  }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" (else "else") (compound_statement "{\n                    iVar9 = (*(code *)PTR_strlen_00146390)();\n                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));\n                    iVar9 = *(int *)puVar3;\n                    uVar5 = *(uint *)(iVar4 + 0x14);\n                    *(undefined4 *)(iVar6 + 4) = uVar11;\n                  }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)();" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)()" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_strlen_00146390)()" (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" (( "(") (pointer_expression "*(code *)PTR_xmalloc_001445b0" (* "*") (cast_expression "(code *)PTR_xmalloc_001445b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmalloc_001445b0"))) () ")")) (argument_list "(iVar9 + 1)" (( "(") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4))" (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 "(uVar11,*(undefined4 *)(iVar4 + 4))" (( "(") (identifier "uVar11") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" (identifier "iVar9") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" (else "else") (compound_statement "{\n                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));\n                  uVar5 = *(uint *)(iVar4 + 0x14);\n                  iVar9 = *(int *)puVar3;\n                  *(undefined4 *)(iVar6 + 4) = uVar11;\n                }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));" (assignment_expression "uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4))" (parenthesized_expression "(*(code *)PTR_array_copy_0014502c)" (( "(") (pointer_expression "*(code *)PTR_array_copy_0014502c" (* "*") (cast_expression "(code *)PTR_array_copy_0014502c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_array_copy_0014502c"))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 4))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" (identifier "iVar9") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" (else "else") (compound_statement "{\n                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);\n                uVar5 = *(uint *)(iVar4 + 0x14);\n                iVar9 = *(int *)puVar3;\n                *(undefined4 *)(iVar6 + 4) = uVar11;\n              }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);" (assignment_expression "uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0)" (parenthesized_expression "(*(code *)PTR_hash_copy_00145024)" (( "(") (pointer_expression "*(code *)PTR_hash_copy_00145024" (* "*") (cast_expression "(code *)PTR_hash_copy_00145024" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hash_copy_00145024"))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 4),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)puVar3;" (assignment_expression "iVar9 = *(int *)puVar3" (identifier "iVar9") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}")))) (goto_statement "goto LAB_00059ad4;" (goto "goto") (statement_identifier "LAB_00059ad4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" (else "else") (compound_statement "{\n            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);\n            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);\n            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);\n            uVar5 = *(uint *)(iVar4 + 0x14);\n            *(undefined4 *)(iVar6 + 4) = uVar11;\n            iVar9 = *(int *)PTR_localvar_inherit_0014501c;\nLAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }\n          }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_strlen_00146390)(uVar11)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_strlen_00146390)(uVar11)" (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 "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);" (assignment_expression "uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar9 + 1)" (parenthesized_expression "(*(code *)PTR_xmalloc_001445b0)" (( "(") (pointer_expression "*(code *)PTR_xmalloc_001445b0" (* "*") (cast_expression "(code *)PTR_xmalloc_001445b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmalloc_001445b0"))) () ")")) (argument_list "(iVar9 + 1)" (( "(") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);" (assignment_expression "uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strcpy_00146418)(uVar7,uVar11)" (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 "(uVar7,uVar11)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar4 + 0x14);" (assignment_expression "uVar5 = *(uint *)(iVar4 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar9 = *(int *)PTR_localvar_inherit_0014501c;" (assignment_expression "iVar9 = *(int *)PTR_localvar_inherit_0014501c" (identifier "iVar9") (= "=") (pointer_expression "*(int *)PTR_localvar_inherit_0014501c" (* "*") (cast_expression "(int *)PTR_localvar_inherit_0014501c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_localvar_inherit_0014501c")))) (; ";")) (labeled_statement "LAB_00059ad4:\n            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" (statement_identifier "LAB_00059ad4") (: ":") (if_statement "if ((iVar9 != 0) || ((param_2 & 1) != 0)) {\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" (if "if") (parenthesized_expression "((iVar9 != 0) || ((param_2 & 1) != 0))" (( "(") (binary_expression "(iVar9 != 0) || ((param_2 & 1) != 0)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((param_2 & 1) != 0)" (( "(") (binary_expression "(param_2 & 1) != 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              uVar11 = *(undefined4 *)(iVar4 + 0x10);\n              uVar8 = *(uint *)(iVar10 + 8);\n              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;\n              *(undefined4 *)(iVar6 + 0x10) = uVar11;\n              *(uint *)(iVar10 + 8) = uVar8 | 1;\n              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;\n              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;\n              cVar1 = *param_1;\n              goto joined_r0x00059b1c;\n            }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(iVar4 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(iVar4 + 0x10)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar10 + 8);" (assignment_expression "uVar8 = *(uint *)(iVar10 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar10 + 8)" (* "*") (cast_expression "(uint *)(iVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc)" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar5 & 0xfffff7ff" (identifier "uVar5") (& "&") (number_literal "0xfffff7ff"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(uint *)(iVar10 + 8) = uVar8 | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = uVar8 | 1" (pointer_expression "*(uint *)(iVar10 + 8)" (* "*") (cast_expression "(uint *)(iVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "uVar8 | 1" (identifier "uVar8") (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar5 & 0xfffff7ff | 0x20" (binary_expression "uVar5 & 0xfffff7ff" (identifier "uVar5") (& "&") (number_literal "0xfffff7ff")) (| "|") (number_literal "0x20"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (goto_statement "goto joined_r0x00059b1c;" (goto "goto") (statement_identifier "joined_r0x00059b1c") (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar5 = uVar5 & 1;" (assignment_expression "uVar5 = uVar5 & 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 & 1" (identifier "uVar5") (& "&") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}")))) (expression_statement "uVar11 = *(undefined4 *)puVar2;" (assignment_expression "uVar11 = *(undefined4 *)puVar2" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)puVar2" (* "*") (cast_expression "(undefined4 *)puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (expression_statement "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;" (assignment_expression "*(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" (* "*") (cast_expression "(uint *)(iVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar10 + 8) | 1" (pointer_expression "*(uint *)(iVar10 + 8)" (* "*") (cast_expression "(uint *)(iVar10 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar11;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar11" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20;" (assignment_expression "*(uint *)(iVar6 + 0x14) = uVar5 | 0x20" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar5 | 0x20" (identifier "uVar5") (| "|") (number_literal "0x20"))) (; ";")) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (labeled_statement "joined_r0x00059b1c:\n        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" (statement_identifier "joined_r0x00059b1c") (: ":") (if_statement "if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           ) {\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" (if "if") (parenthesized_expression "((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')\n           )" (( "(") (binary_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')" (parenthesized_expression "(((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S'))" (( "(") (binary_expression "((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')" (parenthesized_expression "((cVar1 == 'I') && (param_1[1] == 'F'))" (( "(") (binary_expression "(cVar1 == 'I') && (param_1[1] == 'F')" (parenthesized_expression "(cVar1 == 'I')" (( "(") (binary_expression "cVar1 == 'I'" (identifier "cVar1") (== "==") (char_literal "'I'" (' "'") (character "I") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[1] == 'F')" (( "(") (binary_expression "param_1[1] == 'F'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'F'" (' "'") (character "F") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[2] == 'S')" (( "(") (binary_expression "param_1[2] == 'S'" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[3] == '\0')" (( "(") (binary_expression "param_1[3] == '\0'" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          (*(code *)PTR_setifs_00144de8)(iVar6);\n        }" ({ "{") (expression_statement "(*(code *)PTR_setifs_00144de8)(iVar6);" (call_expression "(*(code *)PTR_setifs_00144de8)(iVar6)" (parenthesized_expression "(*(code *)PTR_setifs_00144de8)" (( "(") (pointer_expression "*(code *)PTR_setifs_00144de8" (* "*") (cast_expression "(code *)PTR_setifs_00144de8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setifs_00144de8"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}")))) (if_statement "if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {\n          return iVar6;\n        }" (if "if") (parenthesized_expression "(uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0)" (( "(") (binary_expression "uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0" (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)PTR_no_invisible_vars_00145020 != 0" (pointer_expression "*(int *)PTR_no_invisible_vars_00145020" (* "*") (cast_expression "(int *)PTR_no_invisible_vars_00145020" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_no_invisible_vars_00145020"))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          return iVar6;\n        }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n          return iVar6;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return iVar6;\n        }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;" (assignment_expression "*(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar6 + 0x14) | 0x1000" (pointer_expression "*(uint *)(iVar6 + 0x14)" (* "*") (cast_expression "(uint *)(iVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "0x1000"))) (; ";")) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar10 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar10 + 0x10)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);" (assignment_expression "uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00146498" (* "*") (cast_expression "(code *)PTR_dcgettext_00146498" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00146498"))) () ")")) (argument_list "(0,PTR_LAB_00144578 + 0x6eb4,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_00144578 + 0x6eb4" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6eb4")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar11);" (call_expression "internal_error(uVar11)" (identifier "internal_error") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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 (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))))

int MASKED(char *param_1,uint param_2)

{
  char cVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  undefined4 uVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  undefined4 uVar11;
  uint uVar12;
  
  iVar4 = find_variable_noref();
  if ((iVar4 == 0) || ((*(uint *)(iVar4 + 0x14) & 0x800) == 0)) {
    iVar4 = find_variable(param_1);
    if (iVar4 == 0) {
      uVar11 = 0;
      uVar12 = 0;
      goto LAB_0005990c;
    }
    uVar5 = *(uint *)(iVar4 + 0x14);
  }
  else {
    find_variable(param_1);
    uVar5 = *(uint *)(iVar4 + 0x14);
  }
  if ((uVar5 & 0x20) == 0) {
    uVar12 = uVar5 & 0x100000;
    uVar11 = 0;
    if (uVar12 == 0) goto LAB_0005990c;
    if ((*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) &&
       (*(int *)(PTR_data_start_00144568 + 0x7cf0) != *(int *)PTR_temporary_env_00144858)) {
      *(uint *)(iVar4 + 0x14) = uVar5 & 0xffffefff;
      return iVar4;
    }
  }
  else {
    if (*(int *)(iVar4 + 0x18) == *(int *)PTR_variable_context_0014485c) {
      return iVar4;
    }
    uVar12 = uVar5 & 0x100000;
    uVar11 = 0;
    if (uVar12 == 0) goto LAB_0005990c;
  }
  uVar11 = *(undefined4 *)(iVar4 + 4);
  uVar12 = 1;
LAB_0005990c:
  puVar2 = PTR_variable_context_0014485c;
  iVar10 = *(int *)PTR_shell_variables_001446f8;
  if (iVar10 != 0) {
    do {
      if (((*(uint *)(iVar10 + 8) & 4) != 0) &&
         (*(int *)(iVar10 + 4) == *(int *)PTR_variable_context_0014485c)) {
        if (*(int *)(iVar10 + 0x14) == 0) {
          uVar7 = (*(code *)PTR_hash_create_00144e9c)(4);
          *(undefined4 *)(iVar10 + 0x14) = uVar7;
        }
        if (iVar4 == 0) {
          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));
          uVar5 = *(uint *)(iVar6 + 0x14);
        }
        else {
          uVar5 = *(uint *)(iVar4 + 0x14) & 2;
          if ((*(uint *)(iVar4 + 0x14) & 0x4000) != 0) {
            if (uVar5 == 0) {
              uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6e8c,5);
              (*(code *)PTR_builtin_error_00145030)(uVar11,param_1);
              return 0;
            }
LAB_00059c90:
            (*(code *)PTR_sh_readonly_00145028)(param_1);
            return 0;
          }
          if ((uVar5 != 0) && (*(int *)(iVar4 + 0x18) == 0)) goto LAB_00059c90;
          iVar6 = FUN_00058b1c(param_1,*(undefined4 *)(iVar10 + 0x14));
          puVar3 = PTR_localvar_inherit_0014501c;
          if (uVar12 == 0) {
            iVar9 = *(int *)PTR_localvar_inherit_0014501c;
            uVar5 = *(uint *)(iVar4 + 0x14);
            if ((param_2 & 1) != 0 || iVar9 != 0) {
              if ((uVar5 & 0x40) == 0) {
                if ((uVar5 & 4) == 0) {
                  if (*(int *)(iVar4 + 4) == 0) {
                    *(undefined4 *)(iVar6 + 4) = 0;
                  }
                  else {
                    iVar9 = (*(code *)PTR_strlen_00146390)();
                    uVar11 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);
                    uVar11 = (*(code *)PTR_strcpy_00146418)(uVar11,*(undefined4 *)(iVar4 + 4));
                    iVar9 = *(int *)puVar3;
                    uVar5 = *(uint *)(iVar4 + 0x14);
                    *(undefined4 *)(iVar6 + 4) = uVar11;
                  }
                }
                else {
                  uVar11 = (*(code *)PTR_array_copy_0014502c)(*(undefined4 *)(iVar4 + 4));
                  uVar5 = *(uint *)(iVar4 + 0x14);
                  iVar9 = *(int *)puVar3;
                  *(undefined4 *)(iVar6 + 4) = uVar11;
                }
              }
              else {
                uVar11 = (*(code *)PTR_hash_copy_00145024)(*(undefined4 *)(iVar4 + 4),0);
                uVar5 = *(uint *)(iVar4 + 0x14);
                iVar9 = *(int *)puVar3;
                *(undefined4 *)(iVar6 + 4) = uVar11;
              }
              goto LAB_00059ad4;
            }
          }
          else {
            iVar9 = (*(code *)PTR_strlen_00146390)(uVar11);
            uVar7 = (*(code *)PTR_xmalloc_001445b0)(iVar9 + 1);
            uVar11 = (*(code *)PTR_strcpy_00146418)(uVar7,uVar11);
            uVar5 = *(uint *)(iVar4 + 0x14);
            *(undefined4 *)(iVar6 + 4) = uVar11;
            iVar9 = *(int *)PTR_localvar_inherit_0014501c;
LAB_00059ad4:
            if ((iVar9 != 0) || ((param_2 & 1) != 0)) {
              uVar11 = *(undefined4 *)(iVar4 + 0x10);
              uVar8 = *(uint *)(iVar10 + 8);
              *(undefined4 *)(iVar6 + 0xc) = *(undefined4 *)(iVar4 + 0xc);
              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff;
              *(undefined4 *)(iVar6 + 0x10) = uVar11;
              *(uint *)(iVar10 + 8) = uVar8 | 1;
              *(uint *)(iVar6 + 0x14) = uVar5 & 0xfffff7ff | 0x20;
              *(undefined4 *)(iVar6 + 0x18) = *(undefined4 *)puVar2;
              cVar1 = *param_1;
              goto joined_r0x00059b1c;
            }
          }
          uVar5 = uVar5 & 1;
          *(uint *)(iVar6 + 0x14) = uVar5;
        }
        uVar11 = *(undefined4 *)puVar2;
        *(uint *)(iVar10 + 8) = *(uint *)(iVar10 + 8) | 1;
        *(undefined4 *)(iVar6 + 0x18) = uVar11;
        *(uint *)(iVar6 + 0x14) = uVar5 | 0x20;
        cVar1 = *param_1;
joined_r0x00059b1c:
        if ((((cVar1 == 'I') && (param_1[1] == 'F')) && (param_1[2] == 'S')) && (param_1[3] == '\0')
           ) {
          (*(code *)PTR_setifs_00144de8)(iVar6);
        }
        if (uVar12 != 0 || *(int *)PTR_no_invisible_vars_00145020 != 0) {
          return iVar6;
        }
        if (*(int *)(iVar6 + 4) != 0) {
          return iVar6;
        }
        *(uint *)(iVar6 + 0x14) = *(uint *)(iVar6 + 0x14) | 0x1000;
        return iVar6;
      }
      iVar10 = *(int *)(iVar10 + 0x10);
    } while (iVar10 != 0);
  }
  uVar11 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6eb4,5);
  internal_error(uVar11);
  return 0;
}

