
bfd_hash_entry * string_hash_newfunc(bfd_hash_entry *entry,bfd_hash_table *table,char *string)

{
  string_hash_entry *ret;
  
  if (((entry != (bfd_hash_entry *)0x0) ||
      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&
     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0
     )) {
    entry[1].next = (bfd_hash_entry *)0x0;
    entry[1].string = (char *)0xffffffffffffffff;
    *(undefined4 *)&entry[1].hash = 0;
  }
  return entry;
}



void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)

{
  long lVar1;
  
  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&
     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {
    *(undefined8 *)(lVar1 + 0x18) = 0;
    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;
    *(undefined4 *)(lVar1 + 0x28) = 0;
  }
  return;
}


PUSH RBX
MOV RBX,RSI
SUB RSP,0x10
TEST RDI,RDI
JZ 0x00118900
MOV RSI,RBX
CALL 0x001041e0
TEST RAX,RAX
JZ 0x001188f1
MOV qword ptr [RAX + 0x18],0x0
MOV qword ptr [RAX + 0x20],-0x1
MOV dword ptr [RAX + 0x28],0x0
ADD RSP,0x10
POP RBX
RET
MOV ESI,0x30
MOV RDI,RBX
MOV qword ptr [RSP + 0x8],RDX
CALL 0x00104440
MOV RDX,qword ptr [RSP + 0x8]
TEST RAX,RAX
JZ 0x001188f1
MOV RDI,RAX
JMP 0x001188cd
(translation_unit "void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" if (parenthesized_expression "(((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0))" ( (binary_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" (parenthesized_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0))" ( (binary_expression "(param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) || (parenthesized_expression "(param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" ( (comma_expression "param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0" (assignment_expression "param_1 = bfd_hash_allocate(param_2,0x30)" identifier = (call_expression "bfd_hash_allocate(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal )))) , (binary_expression "param_1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" ( (comma_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0" (assignment_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3)" identifier = (call_expression "bfd_hash_newfunc(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) , (binary_expression "lVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" { (expression_statement "*(undefined8 *)(lVar1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar1 + 0x18)" * (cast_expression "(undefined8 *)(lVar1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;" (assignment_expression "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff" (pointer_expression "*(undefined8 *)(lVar1 + 0x20)" * (cast_expression "(undefined8 *)(lVar1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x20)" ( (binary_expression "lVar1 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(lVar1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(lVar1 + 0x28)" * (cast_expression "(undefined4 *)(lVar1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "bfd_hash_entry * string_hash_newfunc(bfd_hash_entry *entry,bfd_hash_table *table,char *string)\n\n{\n  string_hash_entry *ret;\n  \n  if (((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )) {\n    entry[1].next = (bfd_hash_entry *)0x0;\n    entry[1].string = (char *)0xffffffffffffffff;\n    *(undefined4 *)&entry[1].hash = 0;\n  }\n  return entry;\n}\n\n" (function_definition "bfd_hash_entry * string_hash_newfunc(bfd_hash_entry *entry,bfd_hash_table *table,char *string)\n\n{\n  string_hash_entry *ret;\n  \n  if (((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )) {\n    entry[1].next = (bfd_hash_entry *)0x0;\n    entry[1].string = (char *)0xffffffffffffffff;\n    *(undefined4 *)&entry[1].hash = 0;\n  }\n  return entry;\n}" type_identifier (pointer_declarator "* string_hash_newfunc(bfd_hash_entry *entry,bfd_hash_table *table,char *string)" * (function_declarator "string_hash_newfunc(bfd_hash_entry *entry,bfd_hash_table *table,char *string)" identifier (parameter_list "(bfd_hash_entry *entry,bfd_hash_table *table,char *string)" ( (parameter_declaration "bfd_hash_entry *entry" type_identifier (pointer_declarator "*entry" * identifier)) , (parameter_declaration "bfd_hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) )))) (compound_statement "{\n  string_hash_entry *ret;\n  \n  if (((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )) {\n    entry[1].next = (bfd_hash_entry *)0x0;\n    entry[1].string = (char *)0xffffffffffffffff;\n    *(undefined4 *)&entry[1].hash = 0;\n  }\n  return entry;\n}" { (declaration "string_hash_entry *ret;" type_identifier (pointer_declarator "*ret" * identifier) ;) (if_statement "if (((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )) {\n    entry[1].next = (bfd_hash_entry *)0x0;\n    entry[1].string = (char *)0xffffffffffffffff;\n    *(undefined4 *)&entry[1].hash = 0;\n  }" if (parenthesized_expression "(((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     ))" ( (binary_expression "((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)) &&\n     (entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )" (parenthesized_expression "((entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0))" ( (binary_expression "(entry != (bfd_hash_entry *)0x0) ||\n      (entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)" (parenthesized_expression "(entry != (bfd_hash_entry *)0x0)" ( (binary_expression "entry != (bfd_hash_entry *)0x0" identifier != (cast_expression "(bfd_hash_entry *)0x0" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0)" ( (comma_expression "entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30), entry != (bfd_hash_entry *)0x0" (assignment_expression "entry = (bfd_hash_entry *)bfd_hash_allocate(table,0x30)" identifier = (cast_expression "(bfd_hash_entry *)bfd_hash_allocate(table,0x30)" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_hash_allocate(table,0x30)" identifier (argument_list "(table,0x30)" ( identifier , number_literal ))))) , (binary_expression "entry != (bfd_hash_entry *)0x0" identifier != (cast_expression "(bfd_hash_entry *)0x0" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0\n     )" ( (comma_expression "entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string), entry != (bfd_hash_entry *)0x0" (assignment_expression "entry = (bfd_hash_entry *)bfd_hash_newfunc(entry,table,string)" identifier = (cast_expression "(bfd_hash_entry *)bfd_hash_newfunc(entry,table,string)" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_hash_newfunc(entry,table,string)" identifier (argument_list "(entry,table,string)" ( identifier , identifier , identifier ))))) , (binary_expression "entry != (bfd_hash_entry *)0x0" identifier != (cast_expression "(bfd_hash_entry *)0x0" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    entry[1].next = (bfd_hash_entry *)0x0;\n    entry[1].string = (char *)0xffffffffffffffff;\n    *(undefined4 *)&entry[1].hash = 0;\n  }" { (expression_statement "entry[1].next = (bfd_hash_entry *)0x0;" (assignment_expression "entry[1].next = (bfd_hash_entry *)0x0" (field_expression "entry[1].next" (subscript_expression "entry[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(bfd_hash_entry *)0x0" ( (type_descriptor "bfd_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "entry[1].string = (char *)0xffffffffffffffff;" (assignment_expression "entry[1].string = (char *)0xffffffffffffffff" (field_expression "entry[1].string" (subscript_expression "entry[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&entry[1].hash = 0;" (assignment_expression "*(undefined4 *)&entry[1].hash = 0" (pointer_expression "*(undefined4 *)&entry[1].hash" * (cast_expression "(undefined4 *)&entry[1].hash" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry[1].hash" & (field_expression "entry[1].hash" (subscript_expression "entry[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) })) (return_statement "return entry;" return identifier ;) })))
(translation_unit "void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" if (parenthesized_expression "(((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0))" ( (binary_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" (parenthesized_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0))" ( (binary_expression "(param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) || (parenthesized_expression "(param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" ( (comma_expression "param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0" (assignment_expression "param_1 = bfd_hash_allocate(param_2,0x30)" identifier = (call_expression "bfd_hash_allocate(param_2,0x30)" identifier (argument_list "(param_2,0x30)" ( identifier , number_literal )))) , (binary_expression "param_1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" ( (comma_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0" (assignment_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3)" identifier = (call_expression "bfd_hash_newfunc(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) , (binary_expression "lVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" { (expression_statement "*(undefined8 *)(lVar1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar1 + 0x18)" * (cast_expression "(undefined8 *)(lVar1 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;" (assignment_expression "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff" (pointer_expression "*(undefined8 *)(lVar1 + 0x20)" * (cast_expression "(undefined8 *)(lVar1 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x20)" ( (binary_expression "lVar1 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(lVar1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(lVar1 + 0x28)" * (cast_expression "(undefined4 *)(lVar1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x28)" ( (binary_expression "lVar1 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (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) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001188c0(long param_1,undefined8 param_2,undefined8 param_3)" (identifier "FUN_001188c0") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  long lVar1;\n  \n  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (if_statement "if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" (if "if") (parenthesized_expression "(((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0))" (( "(") (binary_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&\n     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" (parenthesized_expression "((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0))" (( "(") (binary_expression "(param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)" (( "(") (comma_expression "param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0" (assignment_expression "param_1 = bfd_hash_allocate(param_2,0x30)" (identifier "param_1") (= "=") (call_expression "bfd_hash_allocate(param_2,0x30)" (identifier "bfd_hash_allocate") (argument_list "(param_2,0x30)" (( "(") (identifier "param_2") (, ",") (number_literal "0x30") () ")")))) (, ",") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)" (( "(") (comma_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0" (assignment_expression "lVar1 = bfd_hash_newfunc(param_1,param_2,param_3)" (identifier "lVar1") (= "=") (call_expression "bfd_hash_newfunc(param_1,param_2,param_3)" (identifier "bfd_hash_newfunc") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (, ",") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    *(undefined8 *)(lVar1 + 0x18) = 0;\n    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;\n    *(undefined4 *)(lVar1 + 0x28) = 0;\n  }" ({ "{") (expression_statement "*(undefined8 *)(lVar1 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar1 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar1 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar1 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x18)" (( "(") (binary_expression "lVar1 + 0x18" (identifier "lVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;" (assignment_expression "*(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff" (pointer_expression "*(undefined8 *)(lVar1 + 0x20)" (* "*") (cast_expression "(undefined8 *)(lVar1 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x20)" (( "(") (binary_expression "lVar1 + 0x20" (identifier "lVar1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "*(undefined4 *)(lVar1 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(lVar1 + 0x28) = 0" (pointer_expression "*(undefined4 *)(lVar1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(lVar1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x28)" (( "(") (binary_expression "lVar1 + 0x28" (identifier "lVar1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

type_1 * function_1(type_1 *var_1,type_2 *table,char *string)

{
  type_3 *ret;
  
  if (((var_1 != (type_1 *)0x0) ||
      (var_1 = (type_1 *)var_2(table,0x30), var_1 != (type_1 *)0x0)) &&
     (var_1 = (type_1 *)var_3(var_1,table,string), var_1 != (type_1 *)0x0
     )) {
    var_1[1].next = (type_1 *)0x0;
    var_1[1].string = (char *)0xffffffffffffffff;
    *(type_4 *)&var_1[1].hash = 0;
  }
  return var_1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) 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))))) (return_statement))))

void MASKED(long param_1,undefined8 param_2,undefined8 param_3)

{
  long lVar1;
  
  if (((param_1 != 0) || (param_1 = bfd_hash_allocate(param_2,0x30), param_1 != 0)) &&
     (lVar1 = bfd_hash_newfunc(param_1,param_2,param_3), lVar1 != 0)) {
    *(undefined8 *)(lVar1 + 0x18) = 0;
    *(undefined8 *)(lVar1 + 0x20) = 0xffffffffffffffff;
    *(undefined4 *)(lVar1 + 0x28) = 0;
  }
  return;
}

