
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void hash_print_statistics(Hash_table *table,FILE *stream)

{
  size_t sVar1;
  size_t sVar2;
  size_t sVar3;
  size_t sVar4;
  
  sVar1 = hash_get_n_entries(table);
  sVar2 = hash_get_n_buckets(table);
  sVar3 = hash_get_n_buckets_used(table);
  sVar4 = hash_get_max_bucket_length(table);
  __fprintf_chk(stream,1,"# entries:         %lu\n",sVar1);
  __fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2);
  __fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,
                "# buckets used:    %lu (%.2f%%)\n",sVar3);
  __fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4);
  return;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00104408(undefined8 param_1,undefined8 param_2)

{
  undefined8 uVar1;
  ulong uVar2;
  ulong uVar3;
  undefined8 uVar4;
  
  uVar1 = FUN_00104349();
  uVar2 = FUN_0010433f(param_1);
  uVar3 = FUN_00104344(param_1);
  uVar4 = FUN_0010434e(param_1);
  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);
  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);
  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,
                "# buckets used:    %lu (%.2f%%)\n",uVar3);
  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);
  return;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV R12,RDI
MOV RBP,RSI
CALL 0x00104349
MOV R14,RAX
MOV RDI,R12
CALL 0x0010433f
MOV RBX,RAX
MOV RDI,R12
CALL 0x00104344
MOV R13,RAX
MOV RDI,R12
CALL 0x0010434e
MOV R12,RAX
MOV RCX,R14
LEA RDX,[0x10b545]
MOV ESI,0x1
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001024b0
MOV RCX,RBX
LEA RDX,[0x10b55d]
MOV ESI,0x1
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001024b0
TEST R13,R13
JS 0x001044e0
PXOR XMM0,XMM0
CVTSI2SD XMM0,R13
MULSD XMM0,qword ptr [0x0010b5f0]
TEST RBX,RBX
JS 0x001044fe
PXOR XMM1,XMM1
CVTSI2SD XMM1,RBX
DIVSD XMM0,XMM1
MOV RCX,R13
LEA RDX,[0x10b590]
MOV ESI,0x1
MOV RDI,RBP
MOV EAX,0x1
CALL 0x001024b0
MOV RCX,R12
LEA RDX,[0x10b575]
MOV ESI,0x1
MOV RDI,RBP
MOV EAX,0x0
CALL 0x001024b0
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RAX,R13
SHR RAX,0x1
MOV RDX,R13
AND EDX,0x1
OR RAX,RDX
PXOR XMM0,XMM0
CVTSI2SD XMM0,RAX
ADDSD XMM0,XMM0
JMP 0x00104485
MOV RAX,RBX
SHR RAX,0x1
AND EBX,0x1
OR RAX,RBX
PXOR XMM1,XMM1
CVTSI2SD XMM1,RAX
ADDSD XMM1,XMM1
JMP 0x0010449b
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00104408(undefined8 param_1,undefined8 param_2)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}\n\n" comment (function_definition "void FUN_00104408(undefined8 param_1,undefined8 param_2)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" primitive_type (function_declarator "FUN_00104408(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "uVar1 = FUN_00104349();" (assignment_expression "uVar1 = FUN_00104349()" identifier = (call_expression "FUN_00104349()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = FUN_0010433f(param_1);" (assignment_expression "uVar2 = FUN_0010433f(param_1)" identifier = (call_expression "FUN_0010433f(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = FUN_00104344(param_1);" (assignment_expression "uVar3 = FUN_00104344(param_1)" identifier = (call_expression "FUN_00104344(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar4 = FUN_0010434e(param_1);" (assignment_expression "uVar4 = FUN_0010434e(param_1)" identifier = (call_expression "FUN_0010434e(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);" (call_expression "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1)" identifier (argument_list "(param_2,1,"# entries:         %lu\n",uVar1)" ( identifier , number_literal , (string_literal ""# entries:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);" (call_expression "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2)" identifier (argument_list "(param_2,1,"# buckets:         %lu\n",uVar2)" ( identifier , number_literal , (string_literal ""# buckets:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);" (call_expression "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" identifier (argument_list "(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" ( (binary_expression "((double)uVar3 * _DAT_0010b5f0) / (double)uVar2" (parenthesized_expression "((double)uVar3 * _DAT_0010b5f0)" ( (binary_expression "(double)uVar3 * _DAT_0010b5f0" (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)uVar2" ( (type_descriptor "double" primitive_type) ) identifier)) , identifier , number_literal , (string_literal ""# buckets used:    %lu (%.2f%%)\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);" (call_expression "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4)" identifier (argument_list "(param_2,1,"max bucket length: %lu\n",uVar4)" ( identifier , number_literal , (string_literal ""max bucket length: %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid hash_print_statistics(Hash_table *table,FILE *stream)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  size_t sVar3;\n  size_t sVar4;\n  \n  sVar1 = hash_get_n_entries(table);\n  sVar2 = hash_get_n_buckets(table);\n  sVar3 = hash_get_n_buckets_used(table);\n  sVar4 = hash_get_max_bucket_length(table);\n  __fprintf_chk(stream,1,"# entries:         %lu\n",sVar1);\n  __fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2);\n  __fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3);\n  __fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4);\n  return;\n}\n\n" comment (function_definition "void hash_print_statistics(Hash_table *table,FILE *stream)\n\n{\n  size_t sVar1;\n  size_t sVar2;\n  size_t sVar3;\n  size_t sVar4;\n  \n  sVar1 = hash_get_n_entries(table);\n  sVar2 = hash_get_n_buckets(table);\n  sVar3 = hash_get_n_buckets_used(table);\n  sVar4 = hash_get_max_bucket_length(table);\n  __fprintf_chk(stream,1,"# entries:         %lu\n",sVar1);\n  __fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2);\n  __fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3);\n  __fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4);\n  return;\n}" primitive_type (function_declarator "hash_print_statistics(Hash_table *table,FILE *stream)" identifier (parameter_list "(Hash_table *table,FILE *stream)" ( (parameter_declaration "Hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) , (parameter_declaration "FILE *stream" type_identifier (pointer_declarator "*stream" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  size_t sVar2;\n  size_t sVar3;\n  size_t sVar4;\n  \n  sVar1 = hash_get_n_entries(table);\n  sVar2 = hash_get_n_buckets(table);\n  sVar3 = hash_get_n_buckets_used(table);\n  sVar4 = hash_get_max_bucket_length(table);\n  __fprintf_chk(stream,1,"# entries:         %lu\n",sVar1);\n  __fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2);\n  __fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3);\n  __fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (expression_statement "sVar1 = hash_get_n_entries(table);" (assignment_expression "sVar1 = hash_get_n_entries(table)" identifier = (call_expression "hash_get_n_entries(table)" identifier (argument_list "(table)" ( identifier )))) ;) (expression_statement "sVar2 = hash_get_n_buckets(table);" (assignment_expression "sVar2 = hash_get_n_buckets(table)" identifier = (call_expression "hash_get_n_buckets(table)" identifier (argument_list "(table)" ( identifier )))) ;) (expression_statement "sVar3 = hash_get_n_buckets_used(table);" (assignment_expression "sVar3 = hash_get_n_buckets_used(table)" identifier = (call_expression "hash_get_n_buckets_used(table)" identifier (argument_list "(table)" ( identifier )))) ;) (expression_statement "sVar4 = hash_get_max_bucket_length(table);" (assignment_expression "sVar4 = hash_get_max_bucket_length(table)" identifier = (call_expression "hash_get_max_bucket_length(table)" identifier (argument_list "(table)" ( identifier )))) ;) (expression_statement "__fprintf_chk(stream,1,"# entries:         %lu\n",sVar1);" (call_expression "__fprintf_chk(stream,1,"# entries:         %lu\n",sVar1)" identifier (argument_list "(stream,1,"# entries:         %lu\n",sVar1)" ( identifier , number_literal , (string_literal ""# entries:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2);" (call_expression "__fprintf_chk(stream,1,"# buckets:         %lu\n",sVar2)" identifier (argument_list "(stream,1,"# buckets:         %lu\n",sVar2)" ( identifier , number_literal , (string_literal ""# buckets:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3);" (call_expression "__fprintf_chk(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3)" identifier (argument_list "(((double)sVar3 * _DAT_0010b5f0) / (double)sVar2,stream,1,\n                "# buckets used:    %lu (%.2f%%)\n",sVar3)" ( (binary_expression "((double)sVar3 * _DAT_0010b5f0) / (double)sVar2" (parenthesized_expression "((double)sVar3 * _DAT_0010b5f0)" ( (binary_expression "(double)sVar3 * _DAT_0010b5f0" (cast_expression "(double)sVar3" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)sVar2" ( (type_descriptor "double" primitive_type) ) identifier)) , identifier , number_literal , (string_literal ""# buckets used:    %lu (%.2f%%)\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4);" (call_expression "__fprintf_chk(stream,1,"max bucket length: %lu\n",sVar4)" identifier (argument_list "(stream,1,"max bucket length: %lu\n",sVar4)" ( identifier , number_literal , (string_literal ""max bucket length: %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00104408(undefined8 param_1,undefined8 param_2)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}\n\n" (function_definition "void FUN_00104408(undefined8 param_1,undefined8 param_2)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" primitive_type (function_declarator "FUN_00104408(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (expression_statement "uVar1 = FUN_00104349();" (assignment_expression "uVar1 = FUN_00104349()" identifier = (call_expression "FUN_00104349()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = FUN_0010433f(param_1);" (assignment_expression "uVar2 = FUN_0010433f(param_1)" identifier = (call_expression "FUN_0010433f(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar3 = FUN_00104344(param_1);" (assignment_expression "uVar3 = FUN_00104344(param_1)" identifier = (call_expression "FUN_00104344(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar4 = FUN_0010434e(param_1);" (assignment_expression "uVar4 = FUN_0010434e(param_1)" identifier = (call_expression "FUN_0010434e(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);" (call_expression "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1)" identifier (argument_list "(param_2,1,"# entries:         %lu\n",uVar1)" ( identifier , number_literal , (string_literal ""# entries:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);" (call_expression "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2)" identifier (argument_list "(param_2,1,"# buckets:         %lu\n",uVar2)" ( identifier , number_literal , (string_literal ""# buckets:         %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);" (call_expression "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" identifier (argument_list "(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" ( (binary_expression "((double)uVar3 * _DAT_0010b5f0) / (double)uVar2" (parenthesized_expression "((double)uVar3 * _DAT_0010b5f0)" ( (binary_expression "(double)uVar3 * _DAT_0010b5f0" (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)uVar2" ( (type_descriptor "double" primitive_type) ) identifier)) , identifier , number_literal , (string_literal ""# buckets used:    %lu (%.2f%%)\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);" (call_expression "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4)" identifier (argument_list "(param_2,1,"max bucket length: %lu\n",uVar4)" ( identifier , number_literal , (string_literal ""max bucket length: %lu\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00104408(undefined8 param_1,undefined8 param_2)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00104408(undefined8 param_1,undefined8 param_2)" (identifier "FUN_00104408") (parameter_list "(undefined8 param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  \n  uVar1 = FUN_00104349();\n  uVar2 = FUN_0010433f(param_1);\n  uVar3 = FUN_00104344(param_1);\n  uVar4 = FUN_0010434e(param_1);\n  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);\n  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);\n  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);\n  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (expression_statement "uVar1 = FUN_00104349();" (assignment_expression "uVar1 = FUN_00104349()" (identifier "uVar1") (= "=") (call_expression "FUN_00104349()" (identifier "FUN_00104349") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar2 = FUN_0010433f(param_1);" (assignment_expression "uVar2 = FUN_0010433f(param_1)" (identifier "uVar2") (= "=") (call_expression "FUN_0010433f(param_1)" (identifier "FUN_0010433f") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar3 = FUN_00104344(param_1);" (assignment_expression "uVar3 = FUN_00104344(param_1)" (identifier "uVar3") (= "=") (call_expression "FUN_00104344(param_1)" (identifier "FUN_00104344") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_0010434e(param_1);" (assignment_expression "uVar4 = FUN_0010434e(param_1)" (identifier "uVar4") (= "=") (call_expression "FUN_0010434e(param_1)" (identifier "FUN_0010434e") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);" (call_expression "__fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1)" (identifier "__fprintf_chk") (argument_list "(param_2,1,"# entries:         %lu\n",uVar1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (string_literal ""# entries:         %lu\n"" (" """) (string_content "# entries:         %lu") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);" (call_expression "__fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2)" (identifier "__fprintf_chk") (argument_list "(param_2,1,"# buckets:         %lu\n",uVar2)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (string_literal ""# buckets:         %lu\n"" (" """) (string_content "# buckets:         %lu") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3);" (call_expression "__fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" (identifier "__fprintf_chk") (argument_list "(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,\n                "# buckets used:    %lu (%.2f%%)\n",uVar3)" (( "(") (binary_expression "((double)uVar3 * _DAT_0010b5f0) / (double)uVar2" (parenthesized_expression "((double)uVar3 * _DAT_0010b5f0)" (( "(") (binary_expression "(double)uVar3 * _DAT_0010b5f0" (cast_expression "(double)uVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar3")) (* "*") (identifier "_DAT_0010b5f0")) () ")")) (/ "/") (cast_expression "(double)uVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar2"))) (, ",") (identifier "param_2") (, ",") (number_literal "1") (, ",") (string_literal ""# buckets used:    %lu (%.2f%%)\n"" (" """) (string_content "# buckets used:    %lu (%.2f%%)") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);" (call_expression "__fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4)" (identifier "__fprintf_chk") (argument_list "(param_2,1,"max bucket length: %lu\n",uVar4)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (string_literal ""max bucket length: %lu\n"" (" """) (string_content "max bucket length: %lu") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void function_1(type_1 *table,type_2 *stream)

{
  size_t sVar1;
  size_t sVar2;
  size_t sVar3;
  size_t sVar4;
  
  sVar1 = var_1(table);
  sVar2 = var_2(table);
  sVar3 = var_3(table);
  sVar4 = var_4(table);
  var_5(stream,1,"# entries:         %lu\n",sVar1);
  var_5(stream,1,"# buckets:         %lu\n",sVar2);
  var_5(((double)sVar3 * var_6) / (double)sVar2,stream,1,
                "# buckets used:    %lu (%.2f%%)\n",sVar3);
  var_5(stream,1,"max bucket length: %lu\n",sVar4);
  return;
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(undefined8 param_1,undefined8 param_2)

{
  undefined8 uVar1;
  ulong uVar2;
  ulong uVar3;
  undefined8 uVar4;
  
  uVar1 = FUN_00104349();
  uVar2 = FUN_0010433f(param_1);
  uVar3 = FUN_00104344(param_1);
  uVar4 = FUN_0010434e(param_1);
  __fprintf_chk(param_2,1,"# entries:         %lu\n",uVar1);
  __fprintf_chk(param_2,1,"# buckets:         %lu\n",uVar2);
  __fprintf_chk(((double)uVar3 * _DAT_0010b5f0) / (double)uVar2,param_2,1,
                "# buckets used:    %lu (%.2f%%)\n",uVar3);
  __fprintf_chk(param_2,1,"max bucket length: %lu\n",uVar4);
  return;
}

