
/* WARNING: Unknown calling convention */

void mime_subparts_unbind(void *ptr)

{
  int iVar1;
  
  if ((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)) {
    *(undefined4 *)(iVar1 + 0x1c) = 0;
    *(undefined4 *)(iVar1 + 0x14) = 0;
    *(undefined4 *)(iVar1 + 0x18) = 0;
    *(int *)(iVar1 + 0x20) = iVar1;
    *(undefined4 *)(iVar1 + 0x10) = 0;
    *(undefined4 *)(iVar1 + 0x24) = 0;
    *(undefined4 *)(iVar1 + 0x3c) = 0;
    *(undefined4 *)(iVar1 + 0x40) = 0;
    *(undefined4 *)(iVar1 + 0x58) = 0;
    *(undefined4 *)(iVar1 + 0x5c) = 0;
    *(undefined4 *)(iVar1 + 0x60) = 0;
    *(undefined4 *)(iVar1 + 0xc) = 0;
    *(undefined4 *)((int)ptr + 4) = 0;
  }
  return;
}



void FUN_00066ac0(int param_1)

{
  int iVar1;
  
  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {
    *(undefined4 *)(iVar1 + 0x1c) = 0;
    *(undefined4 *)(iVar1 + 0x14) = 0;
    *(undefined4 *)(iVar1 + 0x18) = 0;
    *(int *)(iVar1 + 0x20) = iVar1;
    *(undefined4 *)(iVar1 + 0x10) = 0;
    *(undefined4 *)(iVar1 + 0x24) = 0;
    *(undefined4 *)(iVar1 + 0x3c) = 0;
    *(undefined4 *)(iVar1 + 0x40) = 0;
    *(undefined4 *)(iVar1 + 0x58) = 0;
    *(undefined4 *)(iVar1 + 0x5c) = 0;
    *(undefined4 *)(iVar1 + 0x60) = 0;
    *(undefined4 *)(iVar1 + 0xc) = 0;
    *(undefined4 *)(param_1 + 4) = 0;
  }
  return;
}


MOV EDX,dword ptr [ESP + 0x4]
TEST EDX,EDX
JZ 0x00066b26
MOV EAX,dword ptr [EDX + 0x4]
TEST EAX,EAX
JZ 0x00066b26
MOV dword ptr [EAX + 0x1c],0x0
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EAX + 0x18],0x0
MOV dword ptr [EAX + 0x20],EAX
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x24],0x0
MOV dword ptr [EAX + 0x3c],0x0
MOV dword ptr [EAX + 0x40],0x0
MOV dword ptr [EAX + 0x58],0x0
MOV dword ptr [EAX + 0x5c],0x0
MOV dword ptr [EAX + 0x60],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EDX + 0x4],0x0
RET
(translation_unit "void FUN_00066ac0(int param_1)\n\n{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00066ac0(int param_1)\n\n{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00066ac0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" if (parenthesized_expression "((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0))" ( (binary_expression "(param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_1 + 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" { (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" * (cast_expression "(undefined4 *)(iVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar1 + 0x20) = iVar1;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar1" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" * (cast_expression "(undefined4 *)(iVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" * (cast_expression "(undefined4 *)(iVar1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3c)" ( (binary_expression "iVar1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" * (cast_expression "(undefined4 *)(iVar1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" * (cast_expression "(undefined4 *)(iVar1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" * (cast_expression "(undefined4 *)(iVar1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5c)" ( (binary_expression "iVar1 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" * (cast_expression "(undefined4 *)(iVar1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x60)" ( (binary_expression "iVar1 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid mime_subparts_unbind(void *ptr)\n\n{\n  int iVar1;\n  \n  if ((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)((int)ptr + 4) = 0;\n  }\n  return;\n}\n\n" comment (function_definition "void mime_subparts_unbind(void *ptr)\n\n{\n  int iVar1;\n  \n  if ((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)((int)ptr + 4) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "mime_subparts_unbind(void *ptr)" identifier (parameter_list "(void *ptr)" ( (parameter_declaration "void *ptr" primitive_type (pointer_declarator "*ptr" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  if ((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)((int)ptr + 4) = 0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if ((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)((int)ptr + 4) = 0;\n  }" if (parenthesized_expression "((ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0))" ( (binary_expression "(ptr != (void *)0x0) && (iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)" (parenthesized_expression "(ptr != (void *)0x0)" ( (binary_expression "ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar1 = *(int *)((int)ptr + 4), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)((int)ptr + 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)((int)ptr + 4)" identifier = (pointer_expression "*(int *)((int)ptr + 4)" * (cast_expression "(int *)((int)ptr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptr + 4)" ( (binary_expression "(int)ptr + 4" (cast_expression "(int)ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)((int)ptr + 4) = 0;\n  }" { (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" * (cast_expression "(undefined4 *)(iVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar1 + 0x20) = iVar1;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar1" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" * (cast_expression "(undefined4 *)(iVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" * (cast_expression "(undefined4 *)(iVar1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3c)" ( (binary_expression "iVar1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" * (cast_expression "(undefined4 *)(iVar1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" * (cast_expression "(undefined4 *)(iVar1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" * (cast_expression "(undefined4 *)(iVar1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5c)" ( (binary_expression "iVar1 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" * (cast_expression "(undefined4 *)(iVar1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x60)" ( (binary_expression "iVar1 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)ptr + 4) = 0;" (assignment_expression "*(undefined4 *)((int)ptr + 4) = 0" (pointer_expression "*(undefined4 *)((int)ptr + 4)" * (cast_expression "(undefined4 *)((int)ptr + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptr + 4)" ( (binary_expression "(int)ptr + 4" (cast_expression "(int)ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00066ac0(int param_1)\n\n{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00066ac0(int param_1)\n\n{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00066ac0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" if (parenthesized_expression "((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0))" ( (binary_expression "(param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_1 + 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" { (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" * (cast_expression "(undefined4 *)(iVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" * (cast_expression "(undefined4 *)(iVar1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar1 + 0x20) = iVar1;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar1" (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" * (cast_expression "(undefined4 *)(iVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" * (cast_expression "(undefined4 *)(iVar1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3c)" ( (binary_expression "iVar1 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" * (cast_expression "(undefined4 *)(iVar1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" * (cast_expression "(undefined4 *)(iVar1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" * (cast_expression "(undefined4 *)(iVar1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5c)" ( (binary_expression "iVar1 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" * (cast_expression "(undefined4 *)(iVar1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x60)" ( (binary_expression "iVar1 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" * (cast_expression "(undefined4 *)(iVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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_00066ac0(int param_1)\n\n{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00066ac0(int param_1)" (identifier "FUN_00066ac0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" (if "if") (parenthesized_expression "((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0))" (( "(") (binary_expression "(param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = *(int *)(param_1 + 4), iVar1 != 0)" (( "(") (comma_expression "iVar1 = *(int *)(param_1 + 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    *(undefined4 *)(iVar1 + 0x1c) = 0;\n    *(undefined4 *)(iVar1 + 0x14) = 0;\n    *(undefined4 *)(iVar1 + 0x18) = 0;\n    *(int *)(iVar1 + 0x20) = iVar1;\n    *(undefined4 *)(iVar1 + 0x10) = 0;\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n    *(undefined4 *)(iVar1 + 0x3c) = 0;\n    *(undefined4 *)(iVar1 + 0x40) = 0;\n    *(undefined4 *)(iVar1 + 0x58) = 0;\n    *(undefined4 *)(iVar1 + 0x5c) = 0;\n    *(undefined4 *)(iVar1 + 0x60) = 0;\n    *(undefined4 *)(iVar1 + 0xc) = 0;\n    *(undefined4 *)(param_1 + 4) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1c)" (( "(") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x20) = iVar1;" (assignment_expression "*(int *)(iVar1 + 0x20) = iVar1" (pointer_expression "*(int *)(iVar1 + 0x20)" (* "*") (cast_expression "(int *)(iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x24)" (( "(") (binary_expression "iVar1 + 0x24" (identifier "iVar1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x3c)" (( "(") (binary_expression "iVar1 + 0x3c" (identifier "iVar1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x58)" (( "(") (binary_expression "iVar1 + 0x58" (identifier "iVar1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5c)" (( "(") (binary_expression "iVar1 + 0x5c" (identifier "iVar1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x60)" (( "(") (binary_expression "iVar1 + 0x60" (identifier "iVar1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1(void *var_1)

{
  int var_2;
  
  if ((var_1 != (void *)0x0) && (var_2 = *(int *)((int)var_1 + 4), var_2 != 0)) {
    *(type_1 *)(var_2 + 0x1c) = 0;
    *(type_1 *)(var_2 + 0x14) = 0;
    *(type_1 *)(var_2 + 0x18) = 0;
    *(int *)(var_2 + 0x20) = var_2;
    *(type_1 *)(var_2 + 0x10) = 0;
    *(type_1 *)(var_2 + 0x24) = 0;
    *(type_1 *)(var_2 + 0x3c) = 0;
    *(type_1 *)(var_2 + 0x40) = 0;
    *(type_1 *)(var_2 + 0x58) = 0;
    *(type_1 *)(var_2 + 0x5c) = 0;
    *(type_1 *)(var_2 + 0x60) = 0;
    *(type_1 *)(var_2 + 0xc) = 0;
    *(type_1 *)((int)var_1 + 4) = 0;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_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)))))) right: (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: (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))) (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))) (expression_statement (assignment_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: (identifier))) (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))) (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))) (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))) (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))) (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))) (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))) (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))) (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))) (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)

{
  int iVar1;
  
  if ((param_1 != 0) && (iVar1 = *(int *)(param_1 + 4), iVar1 != 0)) {
    *(undefined4 *)(iVar1 + 0x1c) = 0;
    *(undefined4 *)(iVar1 + 0x14) = 0;
    *(undefined4 *)(iVar1 + 0x18) = 0;
    *(int *)(iVar1 + 0x20) = iVar1;
    *(undefined4 *)(iVar1 + 0x10) = 0;
    *(undefined4 *)(iVar1 + 0x24) = 0;
    *(undefined4 *)(iVar1 + 0x3c) = 0;
    *(undefined4 *)(iVar1 + 0x40) = 0;
    *(undefined4 *)(iVar1 + 0x58) = 0;
    *(undefined4 *)(iVar1 + 0x5c) = 0;
    *(undefined4 *)(iVar1 + 0x60) = 0;
    *(undefined4 *)(iVar1 + 0xc) = 0;
    *(undefined4 *)(param_1 + 4) = 0;
  }
  return;
}

