
SHELL_VAR * make_new_variable(char *name,HASH_TABLE *table)

{
  SHELL_VAR *pSVar1;
  int iVar2;
  undefined4 uVar3;
  
  pSVar1 = new_shell_variable(name);
  if (*(int *)PTR_shell_variables_001446f8 == 0) {
    create_variable_tables();
  }
  iVar2 = (*(code *)PTR_strlen_00146390)(name);
  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);
  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name);
  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1);
  *(SHELL_VAR **)(iVar2 + 8) = pSVar1;
  return pSVar1;
}



undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 uVar3;
  
  uVar1 = FUN_000531c8();
  if (*(int *)PTR_shell_variables_001446f8 == 0) {
    FUN_00058a2c();
  }
  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);
  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);
  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);
  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);
  *(undefined4 *)(iVar2 + 8) = uVar1;
  return uVar1;
}


lui gp,0xf
addiu gp,gp,0x3a24
addu gp,gp,t9
lw t9,-0x7970(gp)
addiu sp,sp,-0x28
addiu t9,t9,0x31c8
sw gp,0x10(sp)
sw s2,0x20(sp)
or s2,a1,zero
sw s1,0x1c(sp)
sw s0,0x18(sp)
sw ra,0x24(sp)
bal 0x000531c8
_or s1,a0,zero
lw gp,0x10(sp)
or s0,v0,zero
lw v0,-0x7e48(gp)
lw v0,0x0(v0)
beq v0,zero,0x00058bd4
_lw t9,-0x7550(gp)
lw t9,-0x61b0(gp)
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7f90(gp)
jalr t9
_addiu a0,v0,0x1
or a1,s1,zero
lw gp,0x10(sp)
lw t9,-0x6128(gp)
jalr t9
_or a0,v0,zero
li a2,0x1
lw gp,0x10(sp)
or a1,s2,zero
lw t9,-0x7574(gp)
jalr t9
_or a0,v0,zero
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
sw s0,0x8(v0)
or v0,s0,zero
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
addiu t9,t9,-0x75d4
bal 0x00058a2c
_nop
b 0x00058b6c
_lw gp,0x10(sp)
(translation_unit "undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}\n\n" (function_definition "undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" type_identifier (function_declarator "FUN_00058b1c(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "uVar1 = FUN_000531c8();" (assignment_expression "uVar1 = FUN_000531c8()" identifier = (call_expression "FUN_000531c8()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }" if (parenthesized_expression "(*(int *)PTR_shell_variables_001446f8 == 0)" ( (binary_expression "*(int *)PTR_shell_variables_001446f8 == 0" (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    FUN_00058a2c();\n  }" { (expression_statement "FUN_00058a2c();" (call_expression "FUN_00058a2c()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR_strlen_00146390)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00146390)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(param_1)" (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 "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);" (assignment_expression "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar2 + 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 "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);" (assignment_expression "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1)" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar3,param_1)" (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 "(uVar3,param_1)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);" (assignment_expression "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" identifier = (call_expression "(*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" (parenthesized_expression "(*(code *)PTR_hash_insert_00144fcc)" ( (pointer_expression "*(code *)PTR_hash_insert_00144fcc" * (cast_expression "(code *)PTR_hash_insert_00144fcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,param_2,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 8) = uVar1;" (assignment_expression "*(undefined4 *)(iVar2 + 8) = uVar1" (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "SHELL_VAR * make_new_variable(char *name,HASH_TABLE *table)\n\n{\n  SHELL_VAR *pSVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  pSVar1 = new_shell_variable(name);\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    create_variable_tables();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(name);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1);\n  *(SHELL_VAR **)(iVar2 + 8) = pSVar1;\n  return pSVar1;\n}\n\n" (function_definition "SHELL_VAR * make_new_variable(char *name,HASH_TABLE *table)\n\n{\n  SHELL_VAR *pSVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  pSVar1 = new_shell_variable(name);\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    create_variable_tables();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(name);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1);\n  *(SHELL_VAR **)(iVar2 + 8) = pSVar1;\n  return pSVar1;\n}" type_identifier (pointer_declarator "* make_new_variable(char *name,HASH_TABLE *table)" * (function_declarator "make_new_variable(char *name,HASH_TABLE *table)" identifier (parameter_list "(char *name,HASH_TABLE *table)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "HASH_TABLE *table" type_identifier (pointer_declarator "*table" * identifier)) )))) (compound_statement "{\n  SHELL_VAR *pSVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  pSVar1 = new_shell_variable(name);\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    create_variable_tables();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(name);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1);\n  *(SHELL_VAR **)(iVar2 + 8) = pSVar1;\n  return pSVar1;\n}" { (declaration "SHELL_VAR *pSVar1;" type_identifier (pointer_declarator "*pSVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "pSVar1 = new_shell_variable(name);" (assignment_expression "pSVar1 = new_shell_variable(name)" identifier = (call_expression "new_shell_variable(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    create_variable_tables();\n  }" if (parenthesized_expression "(*(int *)PTR_shell_variables_001446f8 == 0)" ( (binary_expression "*(int *)PTR_shell_variables_001446f8 == 0" (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    create_variable_tables();\n  }" { (expression_statement "create_variable_tables();" (call_expression "create_variable_tables()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR_strlen_00146390)(name);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00146390)(name)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(name)" (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 "(name)" ( identifier )))) ;) (expression_statement "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);" (assignment_expression "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar2 + 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 "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name);" (assignment_expression "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,name)" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar3,name)" (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 "(uVar3,name)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1);" (assignment_expression "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1)" identifier = (call_expression "(*(code *)PTR_hash_insert_00144fcc)(uVar3,table,1)" (parenthesized_expression "(*(code *)PTR_hash_insert_00144fcc)" ( (pointer_expression "*(code *)PTR_hash_insert_00144fcc" * (cast_expression "(code *)PTR_hash_insert_00144fcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,table,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(SHELL_VAR **)(iVar2 + 8) = pSVar1;" (assignment_expression "*(SHELL_VAR **)(iVar2 + 8) = pSVar1" (pointer_expression "*(SHELL_VAR **)(iVar2 + 8)" * (cast_expression "(SHELL_VAR **)(iVar2 + 8)" ( (type_descriptor "SHELL_VAR **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return pSVar1;" return identifier ;) })))
(translation_unit "undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}\n\n" (function_definition "undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" type_identifier (function_declarator "FUN_00058b1c(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "uVar1 = FUN_000531c8();" (assignment_expression "uVar1 = FUN_000531c8()" identifier = (call_expression "FUN_000531c8()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }" if (parenthesized_expression "(*(int *)PTR_shell_variables_001446f8 == 0)" ( (binary_expression "*(int *)PTR_shell_variables_001446f8 == 0" (pointer_expression "*(int *)PTR_shell_variables_001446f8" * (cast_expression "(int *)PTR_shell_variables_001446f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    FUN_00058a2c();\n  }" { (expression_statement "FUN_00058a2c();" (call_expression "FUN_00058a2c()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR_strlen_00146390)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00146390)(param_1)" identifier = (call_expression "(*(code *)PTR_strlen_00146390)(param_1)" (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 "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);" (assignment_expression "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1)" identifier = (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar2 + 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 "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);" (assignment_expression "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1)" identifier = (call_expression "(*(code *)PTR_strcpy_00146418)(uVar3,param_1)" (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 "(uVar3,param_1)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);" (assignment_expression "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" identifier = (call_expression "(*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" (parenthesized_expression "(*(code *)PTR_hash_insert_00144fcc)" ( (pointer_expression "*(code *)PTR_hash_insert_00144fcc" * (cast_expression "(code *)PTR_hash_insert_00144fcc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,param_2,1)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 8) = uVar1;" (assignment_expression "*(undefined4 *)(iVar2 + 8) = uVar1" (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00058b1c(undefined4 param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00058b1c(undefined4 param_1,undefined4 param_2)" (identifier "FUN_00058b1c") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  uVar1 = FUN_000531c8();\n  if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }\n  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);\n  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);\n  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);\n  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);\n  *(undefined4 *)(iVar2 + 8) = uVar1;\n  return uVar1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (expression_statement "uVar1 = FUN_000531c8();" (assignment_expression "uVar1 = FUN_000531c8()" (identifier "uVar1") (= "=") (call_expression "FUN_000531c8()" (identifier "FUN_000531c8") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)PTR_shell_variables_001446f8 == 0) {\n    FUN_00058a2c();\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_shell_variables_001446f8 == 0)" (( "(") (binary_expression "*(int *)PTR_shell_variables_001446f8 == 0" (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"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00058a2c();\n  }" ({ "{") (expression_statement "FUN_00058a2c();" (call_expression "FUN_00058a2c()" (identifier "FUN_00058a2c") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = (*(code *)PTR_strlen_00146390)(param_1);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00146390)(param_1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_00146390)(param_1)" (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 "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);" (assignment_expression "uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_xmalloc_001445b0)(iVar2 + 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 "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);" (assignment_expression "uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_strcpy_00146418)(uVar3,param_1)" (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 "(uVar3,param_1)" (( "(") (identifier "uVar3") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);" (assignment_expression "iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1)" (parenthesized_expression "(*(code *)PTR_hash_insert_00144fcc)" (( "(") (pointer_expression "*(code *)PTR_hash_insert_00144fcc" (* "*") (cast_expression "(code *)PTR_hash_insert_00144fcc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hash_insert_00144fcc"))) () ")")) (argument_list "(uVar3,param_2,1)" (( "(") (identifier "uVar3") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 8) = uVar1;" (assignment_expression "*(undefined4 *)(iVar2 + 8) = uVar1" (pointer_expression "*(undefined4 *)(iVar2 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

type_1 * function_1(char *name,type_2 *table)

{
  type_1 *pSVar1;
  int var_3;
  type_3 uVar3;
  
  pSVar1 = var_1(name);
  if (*(int *)PTR_shell_variables_001446f8 == 0) {
    var_2();
  }
  var_3 = (*(type_4 *)PTR_strlen_00146390)(name);
  uVar3 = (*(type_4 *)PTR_xmalloc_001445b0)(var_3 + 1);
  uVar3 = (*(type_4 *)PTR_strcpy_00146418)(uVar3,name);
  var_3 = (*(type_4 *)PTR_hash_insert_00144fcc)(uVar3,table,1);
  *(type_1 **)(var_3 + 8) = pSVar1;
  return pSVar1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (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: (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) (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))) (return_statement (identifier)))))

undefined4 MASKED(undefined4 param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined4 uVar3;
  
  uVar1 = FUN_000531c8();
  if (*(int *)PTR_shell_variables_001446f8 == 0) {
    FUN_00058a2c();
  }
  iVar2 = (*(code *)PTR_strlen_00146390)(param_1);
  uVar3 = (*(code *)PTR_xmalloc_001445b0)(iVar2 + 1);
  uVar3 = (*(code *)PTR_strcpy_00146418)(uVar3,param_1);
  iVar2 = (*(code *)PTR_hash_insert_00144fcc)(uVar3,param_2,1);
  *(undefined4 *)(iVar2 + 8) = uVar1;
  return uVar1;
}

