
/* WARNING: Unknown calling convention */

void script_set_symbol(void *closurev,char *name,size_t length,Expression *value,int providei,
                      int hiddeni)

{
  gold::Script_options::add_symbol_assignment
            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),
             value,providei != 0,hiddeni != 0);
  *(undefined1 *)((int)closurev + 0x17) = 0;
  return;
}



void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,
                 int param_6)

{
  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),
               param_4,param_5 != 0,param_6 != 0);
  *(undefined1 *)(param_1 + 0x17) = 0;
  return;
}


PUSH EBX
XOR EAX,EAX
SUB ESP,0xc
MOV EDX,dword ptr [ESP + 0x28]
MOV EBX,dword ptr [ESP + 0x14]
TEST EDX,EDX
SETNZ AL
PUSH EAX
MOV ECX,dword ptr [ESP + 0x28]
XOR EAX,EAX
TEST ECX,ECX
SETNZ AL
PUSH EAX
MOVZX EAX,byte ptr [EBX + 0x14]
PUSH dword ptr [ESP + 0x28]
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [EBX + 0x20]
CALL 0x0016e490
MOV byte ptr [EBX + 0x17],0x0
ADD ESP,0x28
POP EBX
RET
(translation_unit "void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)\n\n{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}\n\n" (function_definition "void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)\n\n{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" primitive_type (function_declarator "FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" { (expression_statement "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);" (call_expression "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , identifier , identifier , (pointer_expression "*(undefined1 *)(param_1 + 0x14)" * (cast_expression "(undefined1 *)(param_1 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) , identifier , (binary_expression "param_5 != 0" identifier != number_literal) , (binary_expression "param_6 != 0" identifier != number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x17)" * (cast_expression "(undefined1 *)(param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x17)" ( (binary_expression "param_1 + 0x17" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid script_set_symbol(void *closurev,char *name,size_t length,Expression *value,int providei,\n                      int hiddeni)\n\n{\n  gold::Script_options::add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);\n  *(undefined1 *)((int)closurev + 0x17) = 0;\n  return;\n}\n\n" comment (function_definition "void script_set_symbol(void *closurev,char *name,size_t length,Expression *value,int providei,\n                      int hiddeni)\n\n{\n  gold::Script_options::add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);\n  *(undefined1 *)((int)closurev + 0x17) = 0;\n  return;\n}" primitive_type (function_declarator "script_set_symbol(void *closurev,char *name,size_t length,Expression *value,int providei,\n                      int hiddeni)" identifier (parameter_list "(void *closurev,char *name,size_t length,Expression *value,int providei,\n                      int hiddeni)" ( (parameter_declaration "void *closurev" primitive_type (pointer_declarator "*closurev" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "size_t length" primitive_type identifier) , (parameter_declaration "Expression *value" type_identifier (pointer_declarator "*value" * identifier)) , (parameter_declaration "int providei" primitive_type identifier) , (parameter_declaration "int hiddeni" primitive_type identifier) ))) (compound_statement "{\n  gold::Script_options::add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);\n  *(undefined1 *)((int)closurev + 0x17) = 0;\n  return;\n}" { (labeled_statement "gold::Script_options::add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_options::add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);" statement_identifier : (ERROR ":" :) (expression_statement "add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0);" (call_expression "add_symbol_assignment\n            (*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0)" identifier (argument_list "(*(Script_options **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),\n             value,providei != 0,hiddeni != 0)" ( (pointer_expression "*(Script_options **)((int)closurev + 0x20)" * (cast_expression "(Script_options **)((int)closurev + 0x20)" ( (type_descriptor "Script_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)closurev + 0x20)" ( (binary_expression "(int)closurev + 0x20" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier , identifier , (pointer_expression "*(bool *)((int)closurev + 0x14)" * (cast_expression "(bool *)((int)closurev + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x14)" ( (binary_expression "(int)closurev + 0x14" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier , (binary_expression "providei != 0" identifier != number_literal) , (binary_expression "hiddeni != 0" identifier != number_literal) ))) ;))) (expression_statement "*(undefined1 *)((int)closurev + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)closurev + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)closurev + 0x17)" * (cast_expression "(undefined1 *)((int)closurev + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)closurev + 0x17)" ( (binary_expression "(int)closurev + 0x17" (cast_expression "(int)closurev" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)\n\n{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}\n\n" (function_definition "void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)\n\n{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" primitive_type (function_declarator "FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" { (expression_statement "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);" (call_expression "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , identifier , identifier , (pointer_expression "*(undefined1 *)(param_1 + 0x14)" * (cast_expression "(undefined1 *)(param_1 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) , identifier , (binary_expression "param_5 != 0" identifier != number_literal) , (binary_expression "param_6 != 0" identifier != number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x17)" * (cast_expression "(undefined1 *)(param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x17)" ( (binary_expression "param_1 + 0x17" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT != LIT) , (binary_expression IDENT != LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)\n\n{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0016e770(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" (identifier "FUN_0016e770") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,\n                 int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);\n  *(undefined1 *)(param_1 + 0x17) = 0;\n  return;\n}" ({ "{") (expression_statement "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0);" (call_expression "FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" (identifier "FUN_0016e490") (argument_list "(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),\n               param_4,param_5 != 0,param_6 != 0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (pointer_expression "*(undefined1 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "param_4") (, ",") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) (, ",") (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x17)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x17)" (( "(") (binary_expression "param_1 + 0x17" (identifier "param_1") (+ "+") (number_literal "0x17")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1(void *closurev,char *name,size_t length,type_1 *value,int var_2,
                      int var_3)

{
  gold::Script_options::var_1
            (*(type_2 **)((int)closurev + 0x20),name,length,*(bool *)((int)closurev + 0x14),
             value,var_2 != 0,var_3 != 0);
  *(type_3 *)((int)closurev + 0x17) = 0;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement))))

void MASKED(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5,
                 int param_6)

{
  FUN_0016e490(*(undefined4 *)(param_1 + 0x20),param_2,param_3,*(undefined1 *)(param_1 + 0x14),
               param_4,param_5 != 0,param_6 != 0);
  *(undefined1 *)(param_1 + 0x17) = 0;
  return;
}

