
/* WARNING: Unknown calling convention */

void cplus_demangle_init_info(char *mangled,int options,size_t len,d_info *di)

{
  di->s = mangled;
  di->send = mangled + len;
  di->n = mangled;
  di->options = options;
  di->num_comps = len * 2;
  di->next_comp = 0;
  di->num_subs = len;
  di->next_sub = 0;
  di->last_name = (demangle_component *)0x0;
  di->expansion = 0;
  di->is_expression = 0;
  di->is_conversion = 0;
  return;
}



void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)

{
  *param_4 = param_1;
  param_4[1] = param_1 + param_3;
  param_4[3] = param_1;
  param_4[2] = param_2;
  param_4[6] = param_3 * 2;
  param_4[5] = 0;
  param_4[9] = param_3;
  param_4[8] = 0;
  param_4[10] = 0;
  param_4[0xb] = 0;
  param_4[0xc] = 0;
  param_4[0xd] = 0;
  return;
}


PUSH EBX
MOV ECX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x14]
LEA EBX,[ECX + EDX*0x1]
MOV dword ptr [EAX],ECX
MOV dword ptr [EAX + 0x4],EBX
MOV EBX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + 0xc],ECX
LEA ECX,[EDX + EDX*0x1]
MOV dword ptr [EAX + 0x8],EBX
MOV dword ptr [EAX + 0x18],ECX
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EAX + 0x24],EDX
MOV dword ptr [EAX + 0x20],0x0
MOV dword ptr [EAX + 0x28],0x0
MOV dword ptr [EAX + 0x2c],0x0
MOV dword ptr [EAX + 0x30],0x0
MOV dword ptr [EAX + 0x34],0x0
POP EBX
RET
(translation_unit "void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)\n\n{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}\n\n" (function_definition "void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)\n\n{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00178500(int param_1,int param_2,int param_3,int *param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" { (expression_statement "*param_4 = param_1;" (assignment_expression "*param_4 = param_1" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "param_4[1] = param_1 + param_3;" (assignment_expression "param_4[1] = param_1 + param_3" (subscript_expression "param_4[1]" identifier [ number_literal ]) = (binary_expression "param_1 + param_3" identifier + identifier)) ;) (expression_statement "param_4[3] = param_1;" (assignment_expression "param_4[3] = param_1" (subscript_expression "param_4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[2] = param_2;" (assignment_expression "param_4[2] = param_2" (subscript_expression "param_4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[6] = param_3 * 2;" (assignment_expression "param_4[6] = param_3 * 2" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "param_3 * 2" identifier * number_literal)) ;) (expression_statement "param_4[5] = 0;" (assignment_expression "param_4[5] = 0" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[9] = param_3;" (assignment_expression "param_4[9] = param_3" (subscript_expression "param_4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[8] = 0;" (assignment_expression "param_4[8] = 0" (subscript_expression "param_4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[10] = 0;" (assignment_expression "param_4[10] = 0" (subscript_expression "param_4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xb] = 0;" (assignment_expression "param_4[0xb] = 0" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xc] = 0;" (assignment_expression "param_4[0xc] = 0" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xd] = 0;" (assignment_expression "param_4[0xd] = 0" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid cplus_demangle_init_info(char *mangled,int options,size_t len,d_info *di)\n\n{\n  di->s = mangled;\n  di->send = mangled + len;\n  di->n = mangled;\n  di->options = options;\n  di->num_comps = len * 2;\n  di->next_comp = 0;\n  di->num_subs = len;\n  di->next_sub = 0;\n  di->last_name = (demangle_component *)0x0;\n  di->expansion = 0;\n  di->is_expression = 0;\n  di->is_conversion = 0;\n  return;\n}\n\n" comment (function_definition "void cplus_demangle_init_info(char *mangled,int options,size_t len,d_info *di)\n\n{\n  di->s = mangled;\n  di->send = mangled + len;\n  di->n = mangled;\n  di->options = options;\n  di->num_comps = len * 2;\n  di->next_comp = 0;\n  di->num_subs = len;\n  di->next_sub = 0;\n  di->last_name = (demangle_component *)0x0;\n  di->expansion = 0;\n  di->is_expression = 0;\n  di->is_conversion = 0;\n  return;\n}" primitive_type (function_declarator "cplus_demangle_init_info(char *mangled,int options,size_t len,d_info *di)" identifier (parameter_list "(char *mangled,int options,size_t len,d_info *di)" ( (parameter_declaration "char *mangled" primitive_type (pointer_declarator "*mangled" * identifier)) , (parameter_declaration "int options" primitive_type identifier) , (parameter_declaration "size_t len" primitive_type identifier) , (parameter_declaration "d_info *di" type_identifier (pointer_declarator "*di" * identifier)) ))) (compound_statement "{\n  di->s = mangled;\n  di->send = mangled + len;\n  di->n = mangled;\n  di->options = options;\n  di->num_comps = len * 2;\n  di->next_comp = 0;\n  di->num_subs = len;\n  di->next_sub = 0;\n  di->last_name = (demangle_component *)0x0;\n  di->expansion = 0;\n  di->is_expression = 0;\n  di->is_conversion = 0;\n  return;\n}" { (expression_statement "di->s = mangled;" (assignment_expression "di->s = mangled" (field_expression "di->s" identifier -> field_identifier) = identifier) ;) (expression_statement "di->send = mangled + len;" (assignment_expression "di->send = mangled + len" (field_expression "di->send" identifier -> field_identifier) = (binary_expression "mangled + len" identifier + identifier)) ;) (expression_statement "di->n = mangled;" (assignment_expression "di->n = mangled" (field_expression "di->n" identifier -> field_identifier) = identifier) ;) (expression_statement "di->options = options;" (assignment_expression "di->options = options" (field_expression "di->options" identifier -> field_identifier) = identifier) ;) (expression_statement "di->num_comps = len * 2;" (assignment_expression "di->num_comps = len * 2" (field_expression "di->num_comps" identifier -> field_identifier) = (binary_expression "len * 2" identifier * number_literal)) ;) (expression_statement "di->next_comp = 0;" (assignment_expression "di->next_comp = 0" (field_expression "di->next_comp" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->num_subs = len;" (assignment_expression "di->num_subs = len" (field_expression "di->num_subs" identifier -> field_identifier) = identifier) ;) (expression_statement "di->next_sub = 0;" (assignment_expression "di->next_sub = 0" (field_expression "di->next_sub" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->last_name = (demangle_component *)0x0;" (assignment_expression "di->last_name = (demangle_component *)0x0" (field_expression "di->last_name" identifier -> field_identifier) = (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "di->expansion = 0;" (assignment_expression "di->expansion = 0" (field_expression "di->expansion" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->is_expression = 0;" (assignment_expression "di->is_expression = 0" (field_expression "di->is_expression" identifier -> field_identifier) = number_literal) ;) (expression_statement "di->is_conversion = 0;" (assignment_expression "di->is_conversion = 0" (field_expression "di->is_conversion" identifier -> field_identifier) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)\n\n{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}\n\n" (function_definition "void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)\n\n{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00178500(int param_1,int param_2,int param_3,int *param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" { (expression_statement "*param_4 = param_1;" (assignment_expression "*param_4 = param_1" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "param_4[1] = param_1 + param_3;" (assignment_expression "param_4[1] = param_1 + param_3" (subscript_expression "param_4[1]" identifier [ number_literal ]) = (binary_expression "param_1 + param_3" identifier + identifier)) ;) (expression_statement "param_4[3] = param_1;" (assignment_expression "param_4[3] = param_1" (subscript_expression "param_4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[2] = param_2;" (assignment_expression "param_4[2] = param_2" (subscript_expression "param_4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[6] = param_3 * 2;" (assignment_expression "param_4[6] = param_3 * 2" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "param_3 * 2" identifier * number_literal)) ;) (expression_statement "param_4[5] = 0;" (assignment_expression "param_4[5] = 0" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[9] = param_3;" (assignment_expression "param_4[9] = param_3" (subscript_expression "param_4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[8] = 0;" (assignment_expression "param_4[8] = 0" (subscript_expression "param_4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[10] = 0;" (assignment_expression "param_4[10] = 0" (subscript_expression "param_4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xb] = 0;" (assignment_expression "param_4[0xb] = 0" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xc] = 0;" (assignment_expression "param_4[0xc] = 0" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xd] = 0;" (assignment_expression "param_4[0xd] = 0" (subscript_expression "param_4[0xd]" 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 (pointer_declarator * IDENT)) ))) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_00178500(int param_1,int param_2,int param_3,int *param_4)\n\n{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00178500(int param_1,int param_2,int param_3,int *param_4)" (identifier "FUN_00178500") (parameter_list "(int param_1,int param_2,int param_3,int *param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  *param_4 = param_1;\n  param_4[1] = param_1 + param_3;\n  param_4[3] = param_1;\n  param_4[2] = param_2;\n  param_4[6] = param_3 * 2;\n  param_4[5] = 0;\n  param_4[9] = param_3;\n  param_4[8] = 0;\n  param_4[10] = 0;\n  param_4[0xb] = 0;\n  param_4[0xc] = 0;\n  param_4[0xd] = 0;\n  return;\n}" ({ "{") (expression_statement "*param_4 = param_1;" (assignment_expression "*param_4 = param_1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_4[1] = param_1 + param_3;" (assignment_expression "param_4[1] = param_1 + param_3" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_1 + param_3" (identifier "param_1") (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "param_4[3] = param_1;" (assignment_expression "param_4[3] = param_1" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_4[2] = param_2;" (assignment_expression "param_4[2] = param_2" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_4[6] = param_3 * 2;" (assignment_expression "param_4[6] = param_3 * 2" (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "param_3 * 2" (identifier "param_3") (* "*") (number_literal "2"))) (; ";")) (expression_statement "param_4[5] = 0;" (assignment_expression "param_4[5] = 0" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4[9] = param_3;" (assignment_expression "param_4[9] = param_3" (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_4[8] = 0;" (assignment_expression "param_4[8] = 0" (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4[10] = 0;" (assignment_expression "param_4[10] = 0" (subscript_expression "param_4[10]" (identifier "param_4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4[0xb] = 0;" (assignment_expression "param_4[0xb] = 0" (subscript_expression "param_4[0xb]" (identifier "param_4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4[0xc] = 0;" (assignment_expression "param_4[0xc] = 0" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4[0xd] = 0;" (assignment_expression "param_4[0xd] = 0" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1(char *var_1,int options,size_t var_2,type_1 *di)

{
  di->s = var_1;
  di->send = var_1 + var_2;
  di->n = var_1;
  di->options = options;
  di->num_comps = var_2 * 2;
  di->next_comp = 0;
  di->num_subs = var_2;
  di->next_sub = 0;
  di->last_name = (type_2 *)0x0;
  di->expansion = 0;
  di->is_expression = 0;
  di->is_conversion = 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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (return_statement))))

void MASKED(int param_1,int param_2,int param_3,int *param_4)

{
  *param_4 = param_1;
  param_4[1] = param_1 + param_3;
  param_4[3] = param_1;
  param_4[2] = param_2;
  param_4[6] = param_3 * 2;
  param_4[5] = 0;
  param_4[9] = param_3;
  param_4[8] = 0;
  param_4[10] = 0;
  param_4[0xb] = 0;
  param_4[0xc] = 0;
  param_4[0xd] = 0;
  return;
}

