
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void pop_string(void)

{
  alias_t **ppaVar1;
  char *pcVar2;
  string_saver **ppsVar3;
  STRING_SAVER *__ptr;
  
  if (shell_input_line != (char *)0x0) {
    free(shell_input_line);
  }
  __ptr = pushed_string_list;
  shell_input_line = pushed_string_list->saved_line;
  shell_input_line_index = pushed_string_list->saved_line_index;
  shell_input_line_size = pushed_string_list->saved_line_size;
  shell_input_line_terminator = pushed_string_list->saved_line_terminator;
  if (pushed_string_list->expand_alias == 0) {
    parser_state = parser_state & 0xfffffffd;
  }
  else {
    parser_state = parser_state | 2;
  }
  ppsVar3 = &pushed_string_list->next;
  ppaVar1 = &pushed_string_list->expander;
  pushed_string_list = *ppsVar3;
  if (*ppaVar1 != (alias_t *)0x0) {
    pcVar2 = &(*ppaVar1)->flags;
    *pcVar2 = *pcVar2 & 0xfd;
  }
  free(__ptr);
  set_line_mbstate();
  return;
}



void FUN_00131722(void)

{
  long *plVar1;
  byte *pbVar2;
  undefined8 uVar3;
  undefined8 *__ptr;
  
  if (DAT_00213168 != (void *)0x0) {
    free(DAT_00213168);
  }
  __ptr = pushed_string_list;
  DAT_00213168 = (void *)pushed_string_list[2];
  DAT_00213160 = pushed_string_list[5];
  DAT_00213158 = pushed_string_list[4];
  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);
  if (*(int *)(pushed_string_list + 1) == 0) {
    parser_state = parser_state & 0xfffffffd;
  }
  else {
    parser_state = parser_state | 2;
  }
  uVar3 = *pushed_string_list;
  plVar1 = pushed_string_list + 3;
  pushed_string_list = (undefined8 *)uVar3;
  if (*plVar1 != 0) {
    pbVar2 = (byte *)(*plVar1 + 0x10);
    *pbVar2 = *pbVar2 & 0xfd;
  }
  free(__ptr);
  FUN_00131462();
  return;
}


SUB RSP,0x8
MOV RDI,qword ptr [0x00213168]
TEST RDI,RDI
JZ 0x00131737
CALL 0x0012d080
MOV RDI,qword ptr [0x00212e60]
MOV RAX,qword ptr [RDI + 0x10]
MOV qword ptr [0x00213168],RAX
MOV RAX,qword ptr [RDI + 0x28]
MOV qword ptr [0x00213160],RAX
MOV RAX,qword ptr [RDI + 0x20]
MOV qword ptr [0x00213158],RAX
MOV EAX,dword ptr [RDI + 0x30]
MOV dword ptr [0x0021314c],EAX
CMP dword ptr [RDI + 0x8],0x0
JZ 0x001317a3
MOV EAX,dword ptr [0x002178e4]
OR EAX,0x2
MOV dword ptr [0x002178e4],EAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [0x00212e60],RAX
MOV RAX,qword ptr [RDI + 0x18]
TEST RAX,RAX
JZ 0x00131794
AND byte ptr [RAX + 0x10],0xfd
CALL 0x0012d080
CALL 0x00131462
ADD RSP,0x8
RET
MOV EAX,dword ptr [0x002178e4]
AND EAX,0xfffffffd
JMP 0x00131777
(translation_unit "void FUN_00131722(void)\n\n{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}\n\n" (function_definition "void FUN_00131722(void)\n\n{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" primitive_type (function_declarator "FUN_00131722(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (if_statement "if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }" if (parenthesized_expression "(DAT_00213168 != (void *)0x0)" ( (binary_expression "DAT_00213168 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(DAT_00213168);\n  }" { (expression_statement "free(DAT_00213168);" (call_expression "free(DAT_00213168)" identifier (argument_list "(DAT_00213168)" ( identifier ))) ;) })) (expression_statement "__ptr = pushed_string_list;" (assignment_expression "__ptr = pushed_string_list" identifier = identifier) ;) (expression_statement "DAT_00213168 = (void *)pushed_string_list[2];" (assignment_expression "DAT_00213168 = (void *)pushed_string_list[2]" identifier = (cast_expression "(void *)pushed_string_list[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pushed_string_list[2]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00213160 = pushed_string_list[5];" (assignment_expression "DAT_00213160 = pushed_string_list[5]" identifier = (subscript_expression "pushed_string_list[5]" identifier [ number_literal ])) ;) (expression_statement "DAT_00213158 = pushed_string_list[4];" (assignment_expression "DAT_00213158 = pushed_string_list[4]" identifier = (subscript_expression "pushed_string_list[4]" identifier [ number_literal ])) ;) (expression_statement "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);" (assignment_expression "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6)" identifier = (pointer_expression "*(undefined4 *)(pushed_string_list + 6)" * (cast_expression "(undefined4 *)(pushed_string_list + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pushed_string_list + 6)" ( (binary_expression "pushed_string_list + 6" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }" if (parenthesized_expression "(*(int *)(pushed_string_list + 1) == 0)" ( (binary_expression "*(int *)(pushed_string_list + 1) == 0" (pointer_expression "*(int *)(pushed_string_list + 1)" * (cast_expression "(int *)(pushed_string_list + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pushed_string_list + 1)" ( (binary_expression "pushed_string_list + 1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    parser_state = parser_state & 0xfffffffd;\n  }" { (expression_statement "parser_state = parser_state & 0xfffffffd;" (assignment_expression "parser_state = parser_state & 0xfffffffd" identifier = (binary_expression "parser_state & 0xfffffffd" identifier & number_literal)) ;) }) (else_clause "else {\n    parser_state = parser_state | 2;\n  }" else (compound_statement "{\n    parser_state = parser_state | 2;\n  }" { (expression_statement "parser_state = parser_state | 2;" (assignment_expression "parser_state = parser_state | 2" identifier = (binary_expression "parser_state | 2" identifier | number_literal)) ;) }))) (expression_statement "uVar3 = *pushed_string_list;" (assignment_expression "uVar3 = *pushed_string_list" identifier = (pointer_expression "*pushed_string_list" * identifier)) ;) (expression_statement "plVar1 = pushed_string_list + 3;" (assignment_expression "plVar1 = pushed_string_list + 3" identifier = (binary_expression "pushed_string_list + 3" identifier + number_literal)) ;) (expression_statement "pushed_string_list = (undefined8 *)uVar3;" (assignment_expression "pushed_string_list = (undefined8 *)uVar3" identifier = (cast_expression "(undefined8 *)uVar3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" if (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) (compound_statement "{\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" { (expression_statement "pbVar2 = (byte *)(*plVar1 + 0x10);" (assignment_expression "pbVar2 = (byte *)(*plVar1 + 0x10)" identifier = (cast_expression "(byte *)(*plVar1 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar1 + 0x10)" ( (binary_expression "*plVar1 + 0x10" (pointer_expression "*plVar1" * identifier) + number_literal) )))) ;) (expression_statement "*pbVar2 = *pbVar2 & 0xfd;" (assignment_expression "*pbVar2 = *pbVar2 & 0xfd" (pointer_expression "*pbVar2" * identifier) = (binary_expression "*pbVar2 & 0xfd" (pointer_expression "*pbVar2" * identifier) & number_literal)) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_00131462();" (call_expression "FUN_00131462()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid pop_string(void)\n\n{\n  alias_t **ppaVar1;\n  char *pcVar2;\n  string_saver **ppsVar3;\n  STRING_SAVER *__ptr;\n  \n  if (shell_input_line != (char *)0x0) {\n    free(shell_input_line);\n  }\n  __ptr = pushed_string_list;\n  shell_input_line = pushed_string_list->saved_line;\n  shell_input_line_index = pushed_string_list->saved_line_index;\n  shell_input_line_size = pushed_string_list->saved_line_size;\n  shell_input_line_terminator = pushed_string_list->saved_line_terminator;\n  if (pushed_string_list->expand_alias == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  ppsVar3 = &pushed_string_list->next;\n  ppaVar1 = &pushed_string_list->expander;\n  pushed_string_list = *ppsVar3;\n  if (*ppaVar1 != (alias_t *)0x0) {\n    pcVar2 = &(*ppaVar1)->flags;\n    *pcVar2 = *pcVar2 & 0xfd;\n  }\n  free(__ptr);\n  set_line_mbstate();\n  return;\n}\n\n" comment (function_definition "void pop_string(void)\n\n{\n  alias_t **ppaVar1;\n  char *pcVar2;\n  string_saver **ppsVar3;\n  STRING_SAVER *__ptr;\n  \n  if (shell_input_line != (char *)0x0) {\n    free(shell_input_line);\n  }\n  __ptr = pushed_string_list;\n  shell_input_line = pushed_string_list->saved_line;\n  shell_input_line_index = pushed_string_list->saved_line_index;\n  shell_input_line_size = pushed_string_list->saved_line_size;\n  shell_input_line_terminator = pushed_string_list->saved_line_terminator;\n  if (pushed_string_list->expand_alias == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  ppsVar3 = &pushed_string_list->next;\n  ppaVar1 = &pushed_string_list->expander;\n  pushed_string_list = *ppsVar3;\n  if (*ppaVar1 != (alias_t *)0x0) {\n    pcVar2 = &(*ppaVar1)->flags;\n    *pcVar2 = *pcVar2 & 0xfd;\n  }\n  free(__ptr);\n  set_line_mbstate();\n  return;\n}" primitive_type (function_declarator "pop_string(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  alias_t **ppaVar1;\n  char *pcVar2;\n  string_saver **ppsVar3;\n  STRING_SAVER *__ptr;\n  \n  if (shell_input_line != (char *)0x0) {\n    free(shell_input_line);\n  }\n  __ptr = pushed_string_list;\n  shell_input_line = pushed_string_list->saved_line;\n  shell_input_line_index = pushed_string_list->saved_line_index;\n  shell_input_line_size = pushed_string_list->saved_line_size;\n  shell_input_line_terminator = pushed_string_list->saved_line_terminator;\n  if (pushed_string_list->expand_alias == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  ppsVar3 = &pushed_string_list->next;\n  ppaVar1 = &pushed_string_list->expander;\n  pushed_string_list = *ppsVar3;\n  if (*ppaVar1 != (alias_t *)0x0) {\n    pcVar2 = &(*ppaVar1)->flags;\n    *pcVar2 = *pcVar2 & 0xfd;\n  }\n  free(__ptr);\n  set_line_mbstate();\n  return;\n}" { (declaration "alias_t **ppaVar1;" type_identifier (pointer_declarator "**ppaVar1" * (pointer_declarator "*ppaVar1" * identifier)) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "string_saver **ppsVar3;" type_identifier (pointer_declarator "**ppsVar3" * (pointer_declarator "*ppsVar3" * identifier)) ;) (declaration "STRING_SAVER *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (if_statement "if (shell_input_line != (char *)0x0) {\n    free(shell_input_line);\n  }" if (parenthesized_expression "(shell_input_line != (char *)0x0)" ( (binary_expression "shell_input_line != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(shell_input_line);\n  }" { (expression_statement "free(shell_input_line);" (call_expression "free(shell_input_line)" identifier (argument_list "(shell_input_line)" ( identifier ))) ;) })) (expression_statement "__ptr = pushed_string_list;" (assignment_expression "__ptr = pushed_string_list" identifier = identifier) ;) (expression_statement "shell_input_line = pushed_string_list->saved_line;" (assignment_expression "shell_input_line = pushed_string_list->saved_line" identifier = (field_expression "pushed_string_list->saved_line" identifier -> field_identifier)) ;) (expression_statement "shell_input_line_index = pushed_string_list->saved_line_index;" (assignment_expression "shell_input_line_index = pushed_string_list->saved_line_index" identifier = (field_expression "pushed_string_list->saved_line_index" identifier -> field_identifier)) ;) (expression_statement "shell_input_line_size = pushed_string_list->saved_line_size;" (assignment_expression "shell_input_line_size = pushed_string_list->saved_line_size" identifier = (field_expression "pushed_string_list->saved_line_size" identifier -> field_identifier)) ;) (expression_statement "shell_input_line_terminator = pushed_string_list->saved_line_terminator;" (assignment_expression "shell_input_line_terminator = pushed_string_list->saved_line_terminator" identifier = (field_expression "pushed_string_list->saved_line_terminator" identifier -> field_identifier)) ;) (if_statement "if (pushed_string_list->expand_alias == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }" if (parenthesized_expression "(pushed_string_list->expand_alias == 0)" ( (binary_expression "pushed_string_list->expand_alias == 0" (field_expression "pushed_string_list->expand_alias" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    parser_state = parser_state & 0xfffffffd;\n  }" { (expression_statement "parser_state = parser_state & 0xfffffffd;" (assignment_expression "parser_state = parser_state & 0xfffffffd" identifier = (binary_expression "parser_state & 0xfffffffd" identifier & number_literal)) ;) }) (else_clause "else {\n    parser_state = parser_state | 2;\n  }" else (compound_statement "{\n    parser_state = parser_state | 2;\n  }" { (expression_statement "parser_state = parser_state | 2;" (assignment_expression "parser_state = parser_state | 2" identifier = (binary_expression "parser_state | 2" identifier | number_literal)) ;) }))) (expression_statement "ppsVar3 = &pushed_string_list->next;" (assignment_expression "ppsVar3 = &pushed_string_list->next" identifier = (pointer_expression "&pushed_string_list->next" & (field_expression "pushed_string_list->next" identifier -> field_identifier))) ;) (expression_statement "ppaVar1 = &pushed_string_list->expander;" (assignment_expression "ppaVar1 = &pushed_string_list->expander" identifier = (pointer_expression "&pushed_string_list->expander" & (field_expression "pushed_string_list->expander" identifier -> field_identifier))) ;) (expression_statement "pushed_string_list = *ppsVar3;" (assignment_expression "pushed_string_list = *ppsVar3" identifier = (pointer_expression "*ppsVar3" * identifier)) ;) (if_statement "if (*ppaVar1 != (alias_t *)0x0) {\n    pcVar2 = &(*ppaVar1)->flags;\n    *pcVar2 = *pcVar2 & 0xfd;\n  }" if (parenthesized_expression "(*ppaVar1 != (alias_t *)0x0)" ( (binary_expression "*ppaVar1 != (alias_t *)0x0" (pointer_expression "*ppaVar1" * identifier) != (cast_expression "(alias_t *)0x0" ( (type_descriptor "alias_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = &(*ppaVar1)->flags;\n    *pcVar2 = *pcVar2 & 0xfd;\n  }" { (expression_statement "pcVar2 = &(*ppaVar1)->flags;" (assignment_expression "pcVar2 = &(*ppaVar1)->flags" identifier = (pointer_expression "&(*ppaVar1)->flags" & (field_expression "(*ppaVar1)->flags" (parenthesized_expression "(*ppaVar1)" ( (pointer_expression "*ppaVar1" * identifier) )) -> field_identifier))) ;) (expression_statement "*pcVar2 = *pcVar2 & 0xfd;" (assignment_expression "*pcVar2 = *pcVar2 & 0xfd" (pointer_expression "*pcVar2" * identifier) = (binary_expression "*pcVar2 & 0xfd" (pointer_expression "*pcVar2" * identifier) & number_literal)) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "set_line_mbstate();" (call_expression "set_line_mbstate()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00131722(void)\n\n{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}\n\n" (function_definition "void FUN_00131722(void)\n\n{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" primitive_type (function_declarator "FUN_00131722(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (if_statement "if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }" if (parenthesized_expression "(DAT_00213168 != (void *)0x0)" ( (binary_expression "DAT_00213168 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(DAT_00213168);\n  }" { (expression_statement "free(DAT_00213168);" (call_expression "free(DAT_00213168)" identifier (argument_list "(DAT_00213168)" ( identifier ))) ;) })) (expression_statement "__ptr = pushed_string_list;" (assignment_expression "__ptr = pushed_string_list" identifier = identifier) ;) (expression_statement "DAT_00213168 = (void *)pushed_string_list[2];" (assignment_expression "DAT_00213168 = (void *)pushed_string_list[2]" identifier = (cast_expression "(void *)pushed_string_list[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pushed_string_list[2]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00213160 = pushed_string_list[5];" (assignment_expression "DAT_00213160 = pushed_string_list[5]" identifier = (subscript_expression "pushed_string_list[5]" identifier [ number_literal ])) ;) (expression_statement "DAT_00213158 = pushed_string_list[4];" (assignment_expression "DAT_00213158 = pushed_string_list[4]" identifier = (subscript_expression "pushed_string_list[4]" identifier [ number_literal ])) ;) (expression_statement "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);" (assignment_expression "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6)" identifier = (pointer_expression "*(undefined4 *)(pushed_string_list + 6)" * (cast_expression "(undefined4 *)(pushed_string_list + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pushed_string_list + 6)" ( (binary_expression "pushed_string_list + 6" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }" if (parenthesized_expression "(*(int *)(pushed_string_list + 1) == 0)" ( (binary_expression "*(int *)(pushed_string_list + 1) == 0" (pointer_expression "*(int *)(pushed_string_list + 1)" * (cast_expression "(int *)(pushed_string_list + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pushed_string_list + 1)" ( (binary_expression "pushed_string_list + 1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    parser_state = parser_state & 0xfffffffd;\n  }" { (expression_statement "parser_state = parser_state & 0xfffffffd;" (assignment_expression "parser_state = parser_state & 0xfffffffd" identifier = (binary_expression "parser_state & 0xfffffffd" identifier & number_literal)) ;) }) (else_clause "else {\n    parser_state = parser_state | 2;\n  }" else (compound_statement "{\n    parser_state = parser_state | 2;\n  }" { (expression_statement "parser_state = parser_state | 2;" (assignment_expression "parser_state = parser_state | 2" identifier = (binary_expression "parser_state | 2" identifier | number_literal)) ;) }))) (expression_statement "uVar3 = *pushed_string_list;" (assignment_expression "uVar3 = *pushed_string_list" identifier = (pointer_expression "*pushed_string_list" * identifier)) ;) (expression_statement "plVar1 = pushed_string_list + 3;" (assignment_expression "plVar1 = pushed_string_list + 3" identifier = (binary_expression "pushed_string_list + 3" identifier + number_literal)) ;) (expression_statement "pushed_string_list = (undefined8 *)uVar3;" (assignment_expression "pushed_string_list = (undefined8 *)uVar3" identifier = (cast_expression "(undefined8 *)uVar3" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" if (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) (compound_statement "{\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" { (expression_statement "pbVar2 = (byte *)(*plVar1 + 0x10);" (assignment_expression "pbVar2 = (byte *)(*plVar1 + 0x10)" identifier = (cast_expression "(byte *)(*plVar1 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar1 + 0x10)" ( (binary_expression "*plVar1 + 0x10" (pointer_expression "*plVar1" * identifier) + number_literal) )))) ;) (expression_statement "*pbVar2 = *pbVar2 & 0xfd;" (assignment_expression "*pbVar2 = *pbVar2 & 0xfd" (pointer_expression "*pbVar2" * identifier) = (binary_expression "*pbVar2 & 0xfd" (pointer_expression "*pbVar2" * identifier) & number_literal)) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "FUN_00131462();" (call_expression "FUN_00131462()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) & LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00131722(void)\n\n{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00131722(void)" (identifier "FUN_00131722") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long *plVar1;\n  byte *pbVar2;\n  undefined8 uVar3;\n  undefined8 *__ptr;\n  \n  if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }\n  __ptr = pushed_string_list;\n  DAT_00213168 = (void *)pushed_string_list[2];\n  DAT_00213160 = pushed_string_list[5];\n  DAT_00213158 = pushed_string_list[4];\n  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);\n  if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }\n  uVar3 = *pushed_string_list;\n  plVar1 = pushed_string_list + 3;\n  pushed_string_list = (undefined8 *)uVar3;\n  if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }\n  free(__ptr);\n  FUN_00131462();\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 *__ptr;" (type_identifier "undefined8") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (if_statement "if (DAT_00213168 != (void *)0x0) {\n    free(DAT_00213168);\n  }" (if "if") (parenthesized_expression "(DAT_00213168 != (void *)0x0)" (( "(") (binary_expression "DAT_00213168 != (void *)0x0" (identifier "DAT_00213168") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(DAT_00213168);\n  }" ({ "{") (expression_statement "free(DAT_00213168);" (call_expression "free(DAT_00213168)" (identifier "free") (argument_list "(DAT_00213168)" (( "(") (identifier "DAT_00213168") () ")"))) (; ";")) (} "}"))) (expression_statement "__ptr = pushed_string_list;" (assignment_expression "__ptr = pushed_string_list" (identifier "__ptr") (= "=") (identifier "pushed_string_list")) (; ";")) (expression_statement "DAT_00213168 = (void *)pushed_string_list[2];" (assignment_expression "DAT_00213168 = (void *)pushed_string_list[2]" (identifier "DAT_00213168") (= "=") (cast_expression "(void *)pushed_string_list[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pushed_string_list[2]" (identifier "pushed_string_list") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "DAT_00213160 = pushed_string_list[5];" (assignment_expression "DAT_00213160 = pushed_string_list[5]" (identifier "DAT_00213160") (= "=") (subscript_expression "pushed_string_list[5]" (identifier "pushed_string_list") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "DAT_00213158 = pushed_string_list[4];" (assignment_expression "DAT_00213158 = pushed_string_list[4]" (identifier "DAT_00213158") (= "=") (subscript_expression "pushed_string_list[4]" (identifier "pushed_string_list") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);" (assignment_expression "DAT_0021314c = *(undefined4 *)(pushed_string_list + 6)" (identifier "DAT_0021314c") (= "=") (pointer_expression "*(undefined4 *)(pushed_string_list + 6)" (* "*") (cast_expression "(undefined4 *)(pushed_string_list + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pushed_string_list + 6)" (( "(") (binary_expression "pushed_string_list + 6" (identifier "pushed_string_list") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (*(int *)(pushed_string_list + 1) == 0) {\n    parser_state = parser_state & 0xfffffffd;\n  }\n  else {\n    parser_state = parser_state | 2;\n  }" (if "if") (parenthesized_expression "(*(int *)(pushed_string_list + 1) == 0)" (( "(") (binary_expression "*(int *)(pushed_string_list + 1) == 0" (pointer_expression "*(int *)(pushed_string_list + 1)" (* "*") (cast_expression "(int *)(pushed_string_list + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pushed_string_list + 1)" (( "(") (binary_expression "pushed_string_list + 1" (identifier "pushed_string_list") (+ "+") (number_literal "1")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    parser_state = parser_state & 0xfffffffd;\n  }" ({ "{") (expression_statement "parser_state = parser_state & 0xfffffffd;" (assignment_expression "parser_state = parser_state & 0xfffffffd" (identifier "parser_state") (= "=") (binary_expression "parser_state & 0xfffffffd" (identifier "parser_state") (& "&") (number_literal "0xfffffffd"))) (; ";")) (} "}")) (else_clause "else {\n    parser_state = parser_state | 2;\n  }" (else "else") (compound_statement "{\n    parser_state = parser_state | 2;\n  }" ({ "{") (expression_statement "parser_state = parser_state | 2;" (assignment_expression "parser_state = parser_state | 2" (identifier "parser_state") (= "=") (binary_expression "parser_state | 2" (identifier "parser_state") (| "|") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "uVar3 = *pushed_string_list;" (assignment_expression "uVar3 = *pushed_string_list" (identifier "uVar3") (= "=") (pointer_expression "*pushed_string_list" (* "*") (identifier "pushed_string_list"))) (; ";")) (expression_statement "plVar1 = pushed_string_list + 3;" (assignment_expression "plVar1 = pushed_string_list + 3" (identifier "plVar1") (= "=") (binary_expression "pushed_string_list + 3" (identifier "pushed_string_list") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pushed_string_list = (undefined8 *)uVar3;" (assignment_expression "pushed_string_list = (undefined8 *)uVar3" (identifier "pushed_string_list") (= "=") (cast_expression "(undefined8 *)uVar3" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (*plVar1 != 0) {\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" (if "if") (parenthesized_expression "(*plVar1 != 0)" (( "(") (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar2 = (byte *)(*plVar1 + 0x10);\n    *pbVar2 = *pbVar2 & 0xfd;\n  }" ({ "{") (expression_statement "pbVar2 = (byte *)(*plVar1 + 0x10);" (assignment_expression "pbVar2 = (byte *)(*plVar1 + 0x10)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*plVar1 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar1 + 0x10)" (( "(") (binary_expression "*plVar1 + 0x10" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*pbVar2 = *pbVar2 & 0xfd;" (assignment_expression "*pbVar2 = *pbVar2 & 0xfd" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (= "=") (binary_expression "*pbVar2 & 0xfd" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (& "&") (number_literal "0xfd"))) (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "FUN_00131462();" (call_expression "FUN_00131462()" (identifier "FUN_00131462") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 **ppaVar1;
  char *pcVar2;
  type_2 **ppsVar3;
  type_3 *__ptr;
  
  if (var_1 != (char *)0x0) {
    var_2(var_1);
  }
  __ptr = pushed_string_list;
  var_1 = pushed_string_list->saved_line;
  shell_input_line_index = pushed_string_list->saved_line_index;
  shell_input_line_size = pushed_string_list->saved_line_size;
  shell_input_line_terminator = pushed_string_list->saved_line_terminator;
  if (pushed_string_list->expand_alias == 0) {
    var_3 = var_3 & 0xfffffffd;
  }
  else {
    var_3 = var_3 | 2;
  }
  ppsVar3 = &pushed_string_list->next;
  ppaVar1 = &pushed_string_list->expander;
  pushed_string_list = *ppsVar3;
  if (*ppaVar1 != (type_1 *)0x0) {
    pcVar2 = &(*ppaVar1)->flags;
    *pcVar2 = *pcVar2 & 0xfd;
  }
  var_2(__ptr);
  var_4();
  return;
}


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

void MASKED(void)

{
  long *plVar1;
  byte *pbVar2;
  undefined8 uVar3;
  undefined8 *__ptr;
  
  if (DAT_00213168 != (void *)0x0) {
    free(DAT_00213168);
  }
  __ptr = pushed_string_list;
  DAT_00213168 = (void *)pushed_string_list[2];
  DAT_00213160 = pushed_string_list[5];
  DAT_00213158 = pushed_string_list[4];
  DAT_0021314c = *(undefined4 *)(pushed_string_list + 6);
  if (*(int *)(pushed_string_list + 1) == 0) {
    parser_state = parser_state & 0xfffffffd;
  }
  else {
    parser_state = parser_state | 2;
  }
  uVar3 = *pushed_string_list;
  plVar1 = pushed_string_list + 3;
  pushed_string_list = (undefined8 *)uVar3;
  if (*plVar1 != 0) {
    pbVar2 = (byte *)(*plVar1 + 0x10);
    *pbVar2 = *pbVar2 & 0xfd;
  }
  free(__ptr);
  FUN_00131462();
  return;
}

