
void bind_lastarg(char *arg)

{
  SHELL_VAR *pSVar1;
  
  if (arg == (char *)0x0) {
    arg = "";
  }
  pSVar1 = bind_variable("_",arg,0);
  if (pSVar1 != (SHELL_VAR *)0x0) {
    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;
  }
  return;
}



void FUN_00141b1b(undefined1 *param_1)

{
  long lVar1;
  
  if (param_1 == (undefined1 *)0x0) {
    param_1 = &DAT_001eabcd;
  }
  lVar1 = bind_variable("_",param_1,0);
  if (lVar1 != 0) {
    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;
  }
  return;
}


SUB RSP,0x8
MOV RSI,RDI
TEST RDI,RDI
LEA RAX,[0x1eabcd]
CMOVZ RSI,RAX
MOV EDX,0x0
LEA RDI,[0x1d5312]
CALL 0x0014d3ff
TEST RAX,RAX
JZ 0x00141b4a
AND dword ptr [RAX + 0x28],0xfffffffe
ADD RSP,0x8
RET
(translation_unit "void FUN_00141b1b(undefined1 *param_1)\n\n{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00141b1b(undefined1 *param_1)\n\n{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00141b1b(undefined1 *param_1)" identifier (parameter_list "(undefined1 *param_1)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }" if (parenthesized_expression "(param_1 == (undefined1 *)0x0)" ( (binary_expression "param_1 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = &DAT_001eabcd;\n  }" { (expression_statement "param_1 = &DAT_001eabcd;" (assignment_expression "param_1 = &DAT_001eabcd" identifier = (pointer_expression "&DAT_001eabcd" & identifier)) ;) })) (expression_statement "lVar1 = bind_variable("_",param_1,0);" (assignment_expression "lVar1 = bind_variable("_",param_1,0)" identifier = (call_expression "bind_variable("_",param_1,0)" identifier (argument_list "("_",param_1,0)" ( (string_literal ""_"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" { (expression_statement "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;" (assignment_expression "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" * (cast_expression "(uint *)(lVar1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" * (cast_expression "(uint *)(lVar1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void bind_lastarg(char *arg)\n\n{\n  SHELL_VAR *pSVar1;\n  \n  if (arg == (char *)0x0) {\n    arg = "";\n  }\n  pSVar1 = bind_variable("_",arg,0);\n  if (pSVar1 != (SHELL_VAR *)0x0) {\n    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;\n  }\n  return;\n}\n\n" (function_definition "void bind_lastarg(char *arg)\n\n{\n  SHELL_VAR *pSVar1;\n  \n  if (arg == (char *)0x0) {\n    arg = "";\n  }\n  pSVar1 = bind_variable("_",arg,0);\n  if (pSVar1 != (SHELL_VAR *)0x0) {\n    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;\n  }\n  return;\n}" primitive_type (function_declarator "bind_lastarg(char *arg)" identifier (parameter_list "(char *arg)" ( (parameter_declaration "char *arg" primitive_type (pointer_declarator "*arg" * identifier)) ))) (compound_statement "{\n  SHELL_VAR *pSVar1;\n  \n  if (arg == (char *)0x0) {\n    arg = "";\n  }\n  pSVar1 = bind_variable("_",arg,0);\n  if (pSVar1 != (SHELL_VAR *)0x0) {\n    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;\n  }\n  return;\n}" { (declaration "SHELL_VAR *pSVar1;" type_identifier (pointer_declarator "*pSVar1" * identifier) ;) (if_statement "if (arg == (char *)0x0) {\n    arg = "";\n  }" if (parenthesized_expression "(arg == (char *)0x0)" ( (binary_expression "arg == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    arg = "";\n  }" { (expression_statement "arg = "";" (assignment_expression "arg = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pSVar1 = bind_variable("_",arg,0);" (assignment_expression "pSVar1 = bind_variable("_",arg,0)" identifier = (call_expression "bind_variable("_",arg,0)" identifier (argument_list "("_",arg,0)" ( (string_literal ""_"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (pSVar1 != (SHELL_VAR *)0x0) {\n    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;\n  }" if (parenthesized_expression "(pSVar1 != (SHELL_VAR *)0x0)" ( (binary_expression "pSVar1 != (SHELL_VAR *)0x0" identifier != (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pSVar1->attributes = pSVar1->attributes & 0xfffffffe;\n  }" { (expression_statement "pSVar1->attributes = pSVar1->attributes & 0xfffffffe;" (assignment_expression "pSVar1->attributes = pSVar1->attributes & 0xfffffffe" (field_expression "pSVar1->attributes" identifier -> field_identifier) = (binary_expression "pSVar1->attributes & 0xfffffffe" (field_expression "pSVar1->attributes" identifier -> field_identifier) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00141b1b(undefined1 *param_1)\n\n{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00141b1b(undefined1 *param_1)\n\n{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00141b1b(undefined1 *param_1)" identifier (parameter_list "(undefined1 *param_1)" ( (parameter_declaration "undefined1 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }" if (parenthesized_expression "(param_1 == (undefined1 *)0x0)" ( (binary_expression "param_1 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = &DAT_001eabcd;\n  }" { (expression_statement "param_1 = &DAT_001eabcd;" (assignment_expression "param_1 = &DAT_001eabcd" identifier = (pointer_expression "&DAT_001eabcd" & identifier)) ;) })) (expression_statement "lVar1 = bind_variable("_",param_1,0);" (assignment_expression "lVar1 = bind_variable("_",param_1,0)" identifier = (call_expression "bind_variable("_",param_1,0)" identifier (argument_list "("_",param_1,0)" ( (string_literal ""_"" " string_content ") , identifier , number_literal )))) ;) (if_statement "if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" { (expression_statement "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;" (assignment_expression "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" * (cast_expression "(uint *)(lVar1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" * (cast_expression "(uint *)(lVar1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ;) })))
(function_definition "void FUN_00141b1b(undefined1 *param_1)\n\n{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00141b1b(undefined1 *param_1)" (identifier "FUN_00141b1b") (parameter_list "(undefined1 *param_1)" (( "(") (parameter_declaration "undefined1 *param_1" (type_identifier "undefined1") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  long lVar1;\n  \n  if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }\n  lVar1 = bind_variable("_",param_1,0);\n  if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (if_statement "if (param_1 == (undefined1 *)0x0) {\n    param_1 = &DAT_001eabcd;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined1 *)0x0)" (( "(") (binary_expression "param_1 == (undefined1 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1 = &DAT_001eabcd;\n  }" ({ "{") (expression_statement "param_1 = &DAT_001eabcd;" (assignment_expression "param_1 = &DAT_001eabcd" (identifier "param_1") (= "=") (pointer_expression "&DAT_001eabcd" (& "&") (identifier "DAT_001eabcd"))) (; ";")) (} "}"))) (expression_statement "lVar1 = bind_variable("_",param_1,0);" (assignment_expression "lVar1 = bind_variable("_",param_1,0)" (identifier "lVar1") (= "=") (call_expression "bind_variable("_",param_1,0)" (identifier "bind_variable") (argument_list "("_",param_1,0)" (( "(") (string_literal ""_"" (" """) (string_content "_") (" """)) (, ",") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar1 != 0) {\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;\n  }" ({ "{") (expression_statement "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;" (assignment_expression "*(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" (* "*") (cast_expression "(uint *)(lVar1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x28)" (( "(") (binary_expression "lVar1 + 0x28" (identifier "lVar1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar1 + 0x28) & 0xfffffffe" (pointer_expression "*(uint *)(lVar1 + 0x28)" (* "*") (cast_expression "(uint *)(lVar1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x28)" (( "(") (binary_expression "lVar1 + 0x28" (identifier "lVar1") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *var_1)

{
  type_1 *var_3;
  
  if (var_1 == (char *)0x0) {
    var_1 = "";
  }
  var_3 = var_2("_",var_1,0);
  if (var_3 != (type_1 *)0x0) {
    var_3->attributes = var_3->attributes & 0xfffffffe;
  }
  return;
}


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

void MASKED(undefined1 *param_1)

{
  long lVar1;
  
  if (param_1 == (undefined1 *)0x0) {
    param_1 = &DAT_001eabcd;
  }
  lVar1 = bind_variable("_",param_1,0);
  if (lVar1 != 0) {
    *(uint *)(lVar1 + 0x28) = *(uint *)(lVar1 + 0x28) & 0xfffffffe;
  }
  return;
}

