
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void output_init(void)

{
  (*output_driver[driver_index].handler)
            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void FUN_000176d0(void)

{
  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))
            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));
  return;
}


CALL 0x00012935
ADD EDX,0x1e79b
SUB ESP,0x18
MOV EAX,dword ptr [EDX + 0xb30]
LEA ECX,[EDX + 0xcd0]
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[ECX + EAX*0x4]
PUSH dword ptr [EAX + 0x8]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
CALL dword ptr [EAX + 0x4]
ADD ESP,0x2c
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nvoid FUN_000176d0(void)\n\n{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}\n\n" comment (function_definition "void FUN_000176d0(void)\n\n{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" primitive_type (function_declarator "FUN_000176d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" { (expression_statement "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));" (call_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" (parenthesized_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))" ( (pointer_expression "**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" * (pointer_expression "*(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" * (cast_expression "(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00036b44 + DAT_000369a0 * 0xc)" ( (binary_expression "&DAT_00036b44 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b44" & identifier) + (binary_expression "DAT_000369a0 * 0xc" identifier * number_literal)) ))))) )) (argument_list "(0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" * (cast_expression "(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00036b48 + DAT_000369a0 * 0xc)" ( (binary_expression "&DAT_00036b48 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b48" & identifier) + (binary_expression "DAT_000369a0 * 0xc" identifier * number_literal)) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid output_init(void)\n\n{\n  (*output_driver[driver_index].handler)\n            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);\n  return;\n}\n\n" comment comment (function_definition "void output_init(void)\n\n{\n  (*output_driver[driver_index].handler)\n            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);\n  return;\n}" primitive_type (function_declarator "output_init(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  (*output_driver[driver_index].handler)\n            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);\n  return;\n}" { (expression_statement "(*output_driver[driver_index].handler)\n            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);" (call_expression "(*output_driver[driver_index].handler)\n            (cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data)" (parenthesized_expression "(*output_driver[driver_index].handler)" ( (pointer_expression "*output_driver[driver_index].handler" * (field_expression "output_driver[driver_index].handler" (subscript_expression "output_driver[driver_index]" identifier [ identifier ]) . field_identifier)) )) (argument_list "(cflow_output_init,(FILE *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data)" ( identifier , (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (field_expression "output_driver[driver_index].handler_data" (subscript_expression "output_driver[driver_index]" identifier [ identifier ]) . field_identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000176d0(void)\n\n{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}\n\n" (function_definition "void FUN_000176d0(void)\n\n{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" primitive_type (function_declarator "FUN_000176d0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" { (expression_statement "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));" (call_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" (parenthesized_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))" ( (pointer_expression "**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" * (pointer_expression "*(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" * (cast_expression "(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00036b44 + DAT_000369a0 * 0xc)" ( (binary_expression "&DAT_00036b44 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b44" & identifier) + (binary_expression "DAT_000369a0 * 0xc" identifier * number_literal)) ))))) )) (argument_list "(0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" ( number_literal , number_literal , number_literal , number_literal , (pointer_expression "*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" * (cast_expression "(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00036b48 + DAT_000369a0 * 0xc)" ( (binary_expression "&DAT_00036b48 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b48" & identifier) + (binary_expression "DAT_000369a0 * 0xc" identifier * number_literal)) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) )) (argument_list ( LIT , LIT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000176d0(void)\n\n{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000176d0(void)" (identifier "FUN_000176d0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));\n  return;\n}" ({ "{") (expression_statement "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));" (call_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))\n            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" (parenthesized_expression "(**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))" (( "(") (pointer_expression "**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" (* "*") (pointer_expression "*(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" (* "*") (cast_expression "(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_00036b44 + DAT_000369a0 * 0xc)" (( "(") (binary_expression "&DAT_00036b44 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b44" (& "&") (identifier "DAT_00036b44")) (+ "+") (binary_expression "DAT_000369a0 * 0xc" (identifier "DAT_000369a0") (* "*") (number_literal "0xc"))) () ")"))))) () ")")) (argument_list "(0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc))" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" (* "*") (cast_expression "(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00036b48 + DAT_000369a0 * 0xc)" (( "(") (binary_expression "&DAT_00036b48 + DAT_000369a0 * 0xc" (pointer_expression "&DAT_00036b48" (& "&") (identifier "DAT_00036b48")) (+ "+") (binary_expression "DAT_000369a0 * 0xc" (identifier "DAT_000369a0") (* "*") (number_literal "0xc"))) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  (*output_driver[driver_index].handler)
            (cflow_output_init,(type_1 *)0x0,0,(void *)0x0,output_driver[driver_index].handler_data);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

void MASKED(void)

{
  (**(code **)(&DAT_00036b44 + DAT_000369a0 * 0xc))
            (0,0,0,0,*(undefined4 *)(&DAT_00036b48 + DAT_000369a0 * 0xc));
  return;
}

