#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char const *);
int /*<<< orphan*/ stderr;
void printHelpDialog_makeBloom() {
  const char dialog[] =
      "Usage: ./makeBloom --fasta <FASTA_INPUT> --output <FILTERFILE>"
      " --kmersize [KMERSIZE] \n"
      "                   (--fal_pos_rate [p] | --hashNum [HASHNUM] |"
      " --bfsizeBits [SIZEBITS])\n"
      "Options: \n"
      " -v, --version      Prints package version.\n"
      " -h, --help         Prints help dialog.\n"
      " -f, --fasta        Fasta input file. Mandatory option.\n"
      " -o, --output       Output file, with NO extension. Mandatory option.\n"
      " -k, --kmersize     kmer size, number or elements. Optional(default = "
      "25)\n"
      " -p, --fal_pos_rate false positive rate. Optional (default = 0.05)\n"
      " -g, --hashNum      number of hash functions used. Optional (default\n"
      "                    value computed from the false positive rate).\n"
      " -m, --bfsizeBits   size of the filter in bits. It will be forced to "
      "be\n"
      "                    a multiple of 8. Optional (default value computed\n"
      "                    from the false positive rate).\n"
      "NOTE: the options -p, -n, -m are mutually exclusive. The program \n"
      "      will give an error if more than one of them are passed as input.\n"
      "      It is recommended to pass the false positive rate and let the \n"
      "      program compute the other variables (excepting singular "
      "situations)\n"
      "      If none of them are passed, the false positive rate will default\n"
      "      to 0.05 and the other variables will be computed respecting this\n"
      "      requirement. See documentation and supplementary material for \n"
      "      more details.\n";
  fprintf(stderr, "%s", dialog);
}


x86 assembly (clang, -O0):
<printHelpDialog_makeBloom>:
push   %rbp
mov    %rsp,%rbp
sub    $0x560,%rsp
lea    -0x560(%rbp),%rdi
lea    0xec7(%rip),%rsi
mov    $0x55f,%edx
call   1040 <memcpy@plt>
mov    0x2e96(%rip),%rax
mov    (%rax),%edi
lea    -0x560(%rbp),%rdx
lea    0x1405(%rip),%rsi
call   1030 <fprintf@plt>
add    $0x560,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<printHelpDialog_makeBloom>:
push   %rbx
sub    $0x560,%rsp
lea    0xed1(%rip),%rsi
mov    %rsp,%rbx
mov    $0x55f,%edx
mov    %rbx,%rdi
call   1040 <memcpy@plt>
mov    0x2e9a(%rip),%rax
mov    (%rax),%edi
lea    0x1410(%rip),%rsi
mov    %rbx,%rdx
call   1030 <fprintf@plt>
add    $0x560,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@__const.printHelpDialog_makeBloom.dialog = [1375 x i8] c"Usage: ./makeBloom --fasta <FASTA_INPUT> --output <FILTERFILE> --kmersize [KMERSIZE] \0A (--fal_pos_rate [p] | --hashNum [HASHNUM] | --bfsizeBits [SIZEBITS])\0AOptions: \0A -v, --version Prints package version.\0A -h, --help Prints help dialog.\0A -f, --fasta Fasta input file. Mandatory option.\0A -o, --output Output file, with NO extension. Mandatory option.\0A -k, --kmersize kmer size, number or elements. Optional(default = 25)\0A -p, --fal_pos_rate false positive rate. Optional (default = 0.05)\0A -g, --hashNum number of hash functions used. Optional (default\0A value computed from the false positive rate).\0A -m, --bfsizeBits size of the filter in bits. It will be forced to be\0A a multiple of 8. Optional (default value computed\0A from the false positive rate).\0ANOTE: the options -p, -n, -m are mutually exclusive. The program \0A will give an error if more than one of them are passed as input.\0A It is recommended to pass the false positive rate and let the \0A program compute the other variables (excepting singular situations)\0A If none of them are passed, the false positive rate will default\0A to 0.05 and the other variables will be computed respecting this\0A requirement. See documentation and supplementary material for \0A more details.\0A\00"
@stderr = global i32 0
@.str = [3 x i8] c"%s\00"
define void @printHelpDialog_makeBloom() {
%1 = alloca [1375 x i8]
%2 = bitcast [1375 x i8]* %1 to i8*
%3 = load i32, i32* @stderr
%4 = getelementptr inbounds [1375 x i8], [1375 x i8]* %1, i64 0, i64 0
%5 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %4)
ret void
}

LLVM IR (-O2):
@__const.printHelpDialog_makeBloom.dialog = [1375 x i8] c"Usage: ./makeBloom --fasta <FASTA_INPUT> --output <FILTERFILE> --kmersize [KMERSIZE] \0A (--fal_pos_rate [p] | --hashNum [HASHNUM] | --bfsizeBits [SIZEBITS])\0AOptions: \0A -v, --version Prints package version.\0A -h, --help Prints help dialog.\0A -f, --fasta Fasta input file. Mandatory option.\0A -o, --output Output file, with NO extension. Mandatory option.\0A -k, --kmersize kmer size, number or elements. Optional(default = 25)\0A -p, --fal_pos_rate false positive rate. Optional (default = 0.05)\0A -g, --hashNum number of hash functions used. Optional (default\0A value computed from the false positive rate).\0A -m, --bfsizeBits size of the filter in bits. It will be forced to be\0A a multiple of 8. Optional (default value computed\0A from the false positive rate).\0ANOTE: the options -p, -n, -m are mutually exclusive. The program \0A will give an error if more than one of them are passed as input.\0A It is recommended to pass the false positive rate and let the \0A program compute the other variables (excepting singular situations)\0A If none of them are passed, the false positive rate will default\0A to 0.05 and the other variables will be computed respecting this\0A requirement. See documentation and supplementary material for \0A more details.\0A\00"
@stderr = global i32 0
@.str = [3 x i8] c"%s\00"
define void @printHelpDialog_makeBloom() {
%1 = alloca [1375 x i8]
%2 = getelementptr inbounds [1375 x i8], [1375 x i8]* %1, i64 0, i64 0
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
ret void
}