#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*/ printf(char *);
void print_help() {
  printf("Usage: mktorrent [OPTIONS] <target directory or filename>\n\n"
         "Options:\n"
         "-a, --announce=<url>    : specify the full announce url, required.\n"
         "-c, --comment=<comment> : add an optional comment to the metainfo\n"
         "-d, --no-date           : don't write the creation date\n"
         "-h, --help              : show this help screen\n"
         "-l, --piece-length=<n>  : set the piece length to 2^n bytes,\n"
         "                          default is 18, that is 2^18 = 256kb.\n"
         "-n, --name=<name>       : set the name of the torrent,\n"
         "                          default is the basename of the target\n"
         "-o, --output=<filename> : set the path and filename of the created "
         "file\n"
         "                          default is <name>.torrent\n"
         "-p, --private           : set the private flag\n"
         "-v, --verbose           : be verbose\n"
         "-w, --web-seed=<url>    : add web seed\n"
         "\nPlease send bug reports, patches, feature requests, praise and\n"
         "general gossip about the program to: esmil@imf.au.dk\n");
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [913 x i8] c"Usage: mktorrent [OPTIONS] <target directory or filename>\0A\0AOptions:\0A-a, --announce=<url> : specify the full announce url, required.\0A-c, --comment=<comment> : add an optional comment to the metainfo\0A-d, --no-date : don't write the creation date\0A-h, --help : show this help screen\0A-l, --piece-length=<n> : set the piece length to 2^n bytes,\0A default is 18, that is 2^18 = 256kb.\0A-n, --name=<name> : set the name of the torrent,\0A default is the basename of the target\0A-o, --output=<filename> : set the path and filename of the created file\0A default is <name>.torrent\0A-p, --private : set the private flag\0A-v, --verbose : be verbose\0A-w, --web-seed=<url> : add web seed\0A\0APlease send bug reports, patches, feature requests, praise and\0Ageneral gossip about the program to: esmil@imf.au.dk\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([913 x i8], [913 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [912 x i8] c"Usage: mktorrent [OPTIONS] <target directory or filename>\0A\0AOptions:\0A-a, --announce=<url> : specify the full announce url, required.\0A-c, --comment=<comment> : add an optional comment to the metainfo\0A-d, --no-date : don't write the creation date\0A-h, --help : show this help screen\0A-l, --piece-length=<n> : set the piece length to 2^n bytes,\0A default is 18, that is 2^18 = 256kb.\0A-n, --name=<name> : set the name of the torrent,\0A default is the basename of the target\0A-o, --output=<filename> : set the path and filename of the created file\0A default is <name>.torrent\0A-p, --private : set the private flag\0A-v, --verbose : be verbose\0A-w, --web-seed=<url> : add web seed\0A\0APlease send bug reports, patches, feature requests, praise and\0Ageneral gossip about the program to: esmil@imf.au.dk\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([912 x i8], [912 x i8]* @str, i64 0, i64 0))
ret void
}