#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 <url>[,<url>]* : specify the full announce URLs\n"
      "                    additional -a adds backup trackers\n"
      "-c <comment>      : add a comment to the metainfo\n"
      "-d                : don't write the creation date\n"
      "-e <pat>[,<pat>]* : exclude files whose name matches the pattern <pat>\n"
      "                    see the man page glob(7)\n"
      "-f                : overwrite output file if it exists\n"
      "-h                : show this help screen\n"
      "-l <n>            : set the piece length to 2^n bytes,\n"
      "                    default is calculated from the total size\n"
      "-n <name>         : set the name of the torrent,\n"
      "                    default is the basename of the target\n"
      "-o <filename>     : set the path and filename of the created file\n"
      "                    default is <name>.torrent\n"
      "-p                : set the private flag\n"
      "-s                : add source string embedded in infohash\n"
      "-v                : be verbose\n"
      "-w <url>[,<url>]* : add web seed URLs\n"
      "                    additional -w adds more URLs\n"
      "-x                : ensure info hash is unique for easier "
      "cross-seeding\n"
      "\nPlease send bug reports, patches, feature requests, praise and\n"
      "general gossip about the program to: mktorrent@rudde.org\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 = [1235 x i8] c"Usage: mktorrent [OPTIONS] <target directory or filename>\0A\0AOptions:\0A-a <url>[,<url>]* : specify the full announce URLs\0A additional -a adds backup trackers\0A-c <comment> : add a comment to the metainfo\0A-d : don't write the creation date\0A-e <pat>[,<pat>]* : exclude files whose name matches the pattern <pat>\0A see the man page glob(7)\0A-f : overwrite output file if it exists\0A-h : show this help screen\0A-l <n> : set the piece length to 2^n bytes,\0A default is calculated from the total size\0A-n <name> : set the name of the torrent,\0A default is the basename of the target\0A-o <filename> : set the path and filename of the created file\0A default is <name>.torrent\0A-p : set the private flag\0A-s : add source string embedded in infohash\0A-v : be verbose\0A-w <url>[,<url>]* : add web seed URLs\0A additional -w adds more URLs\0A-x : ensure info hash is unique for easier cross-seeding\0A\0APlease send bug reports, patches, feature requests, praise and\0Ageneral gossip about the program to: mktorrent@rudde.org\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1235 x i8], [1235 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1234 x i8] c"Usage: mktorrent [OPTIONS] <target directory or filename>\0A\0AOptions:\0A-a <url>[,<url>]* : specify the full announce URLs\0A additional -a adds backup trackers\0A-c <comment> : add a comment to the metainfo\0A-d : don't write the creation date\0A-e <pat>[,<pat>]* : exclude files whose name matches the pattern <pat>\0A see the man page glob(7)\0A-f : overwrite output file if it exists\0A-h : show this help screen\0A-l <n> : set the piece length to 2^n bytes,\0A default is calculated from the total size\0A-n <name> : set the name of the torrent,\0A default is the basename of the target\0A-o <filename> : set the path and filename of the created file\0A default is <name>.torrent\0A-p : set the private flag\0A-s : add source string embedded in infohash\0A-v : be verbose\0A-w <url>[,<url>]* : add web seed URLs\0A additional -w adds more URLs\0A-x : ensure info hash is unique for easier cross-seeding\0A\0APlease send bug reports, patches, feature requests, praise and\0Ageneral gossip about the program to: mktorrent@rudde.org\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1234 x i8], [1234 x i8]* @str, i64 0, i64 0))
ret void
}