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

reg_errcode_t mark_opt_subexp(void)

{
  Idx idx;
  int in_stack_00000008;
  
  if ((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))
     ) {
    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;
    return _REG_NOERROR;
  }
  return _REG_NOERROR;
}



undefined4 FUN_0005f450(int param_1,int param_2)

{
  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {
    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;
    return 0;
  }
  return 0;
}


MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX + 0x18],0x11
JZ 0x0005f460
XOR EAX,EAX
RET
MOV EDX,dword ptr [EAX + 0x14]
CMP dword ptr [ESP + 0x4],EDX
JNZ 0x0005f45a
OR byte ptr [EAX + 0x1a],0x8
XOR EAX,EAX
RET
(translation_unit "undefined4 FUN_0005f450(int param_1,int param_2)\n\n{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_0005f450(int param_1,int param_2)\n\n{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0005f450(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" { (if_statement "if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" if (parenthesized_expression "((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14)))" ( (binary_expression "(*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))" (parenthesized_expression "(*(char *)(param_2 + 0x18) == '\x11')" ( (binary_expression "*(char *)(param_2 + 0x18) == '\x11'" (pointer_expression "*(char *)(param_2 + 0x18)" * (cast_expression "(char *)(param_2 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1 == *(int *)(param_2 + 0x14))" ( (binary_expression "param_1 == *(int *)(param_2 + 0x14)" identifier == (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" { (expression_statement "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" * (cast_expression "(byte *)(param_2 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a)" ( (binary_expression "param_2 + 0x1a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" * (cast_expression "(byte *)(param_2 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a)" ( (binary_expression "param_2 + 0x1a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nreg_errcode_t mark_opt_subexp(void)\n\n{\n  Idx idx;\n  int in_stack_00000008;\n  \n  if ((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))\n     ) {\n    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;\n    return _REG_NOERROR;\n  }\n  return _REG_NOERROR;\n}\n\n" comment (function_definition "reg_errcode_t mark_opt_subexp(void)\n\n{\n  Idx idx;\n  int in_stack_00000008;\n  \n  if ((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))\n     ) {\n    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;\n    return _REG_NOERROR;\n  }\n  return _REG_NOERROR;\n}" type_identifier (function_declarator "mark_opt_subexp(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  Idx idx;\n  int in_stack_00000008;\n  \n  if ((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))\n     ) {\n    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;\n    return _REG_NOERROR;\n  }\n  return _REG_NOERROR;\n}" { (declaration "Idx idx;" type_identifier identifier ;) (declaration "int in_stack_00000008;" primitive_type identifier ;) (if_statement "if ((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))\n     ) {\n    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;\n    return _REG_NOERROR;\n  }" if (parenthesized_expression "((*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))\n     )" ( (binary_expression "(*(char *)(in_stack_00000008 + 0x18) == '\x11') && (idx == *(int *)(in_stack_00000008 + 0x14))" (parenthesized_expression "(*(char *)(in_stack_00000008 + 0x18) == '\x11')" ( (binary_expression "*(char *)(in_stack_00000008 + 0x18) == '\x11'" (pointer_expression "*(char *)(in_stack_00000008 + 0x18)" * (cast_expression "(char *)(in_stack_00000008 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_00000008 + 0x18)" ( (binary_expression "in_stack_00000008 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) && (parenthesized_expression "(idx == *(int *)(in_stack_00000008 + 0x14))" ( (binary_expression "idx == *(int *)(in_stack_00000008 + 0x14)" identifier == (pointer_expression "*(int *)(in_stack_00000008 + 0x14)" * (cast_expression "(int *)(in_stack_00000008 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_00000008 + 0x14)" ( (binary_expression "in_stack_00000008 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;\n    return _REG_NOERROR;\n  }" { (expression_statement "*(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8;" (assignment_expression "*(byte *)(in_stack_00000008 + 0x1a) = *(byte *)(in_stack_00000008 + 0x1a) | 8" (pointer_expression "*(byte *)(in_stack_00000008 + 0x1a)" * (cast_expression "(byte *)(in_stack_00000008 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_00000008 + 0x1a)" ( (binary_expression "in_stack_00000008 + 0x1a" identifier + number_literal) )))) = (binary_expression "*(byte *)(in_stack_00000008 + 0x1a) | 8" (pointer_expression "*(byte *)(in_stack_00000008 + 0x1a)" * (cast_expression "(byte *)(in_stack_00000008 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_stack_00000008 + 0x1a)" ( (binary_expression "in_stack_00000008 + 0x1a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return _REG_NOERROR;" return identifier ;) })) (return_statement "return _REG_NOERROR;" return identifier ;) })))
(translation_unit "undefined4 FUN_0005f450(int param_1,int param_2)\n\n{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_0005f450(int param_1,int param_2)\n\n{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0005f450(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" { (if_statement "if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" if (parenthesized_expression "((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14)))" ( (binary_expression "(*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))" (parenthesized_expression "(*(char *)(param_2 + 0x18) == '\x11')" ( (binary_expression "*(char *)(param_2 + 0x18) == '\x11'" (pointer_expression "*(char *)(param_2 + 0x18)" * (cast_expression "(char *)(param_2 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1 == *(int *)(param_2 + 0x14))" ( (binary_expression "param_1 == *(int *)(param_2 + 0x14)" identifier == (pointer_expression "*(int *)(param_2 + 0x14)" * (cast_expression "(int *)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" { (expression_statement "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" * (cast_expression "(byte *)(param_2 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a)" ( (binary_expression "param_2 + 0x1a" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" * (cast_expression "(byte *)(param_2 + 0x1a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a)" ( (binary_expression "param_2 + 0x1a" identifier + number_literal) )))) | number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 LIT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0005f450(int param_1,int param_2)\n\n{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_0005f450(int param_1,int param_2)" (identifier "FUN_0005f450") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }\n  return 0;\n}" ({ "{") (if_statement "if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" (if "if") (parenthesized_expression "((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14)))" (( "(") (binary_expression "(*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))" (parenthesized_expression "(*(char *)(param_2 + 0x18) == '\x11')" (( "(") (binary_expression "*(char *)(param_2 + 0x18) == '\x11'" (pointer_expression "*(char *)(param_2 + 0x18)" (* "*") (cast_expression "(char *)(param_2 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1 == *(int *)(param_2 + 0x14))" (( "(") (binary_expression "param_1 == *(int *)(param_2 + 0x14)" (identifier "param_1") (== "==") (pointer_expression "*(int *)(param_2 + 0x14)" (* "*") (cast_expression "(int *)(param_2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;\n    return 0;\n  }" ({ "{") (expression_statement "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;" (assignment_expression "*(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" (* "*") (cast_expression "(byte *)(param_2 + 0x1a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1a)" (( "(") (binary_expression "param_2 + 0x1a" (identifier "param_2") (+ "+") (number_literal "0x1a")) () ")")))) (= "=") (binary_expression "*(byte *)(param_2 + 0x1a) | 8" (pointer_expression "*(byte *)(param_2 + 0x1a)" (* "*") (cast_expression "(byte *)(param_2 + 0x1a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1a)" (( "(") (binary_expression "param_2 + 0x1a" (identifier "param_2") (+ "+") (number_literal "0x1a")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_1 function_1(void)

{
  type_2 var_2;
  int var_1;
  
  if ((*(char *)(var_1 + 0x18) == '\x11') && (var_2 == *(int *)(var_1 + 0x14))
     ) {
    *(type_3 *)(var_1 + 0x1a) = *(type_3 *)(var_1 + 0x1a) | 8;
    return _REG_NOERROR;
  }
  return _REG_NOERROR;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) 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 (number_literal)))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1,int param_2)

{
  if ((*(char *)(param_2 + 0x18) == '\x11') && (param_1 == *(int *)(param_2 + 0x14))) {
    *(byte *)(param_2 + 0x1a) = *(byte *)(param_2 + 0x1a) | 8;
    return 0;
  }
  return 0;
}

