#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ version_info();
void print_help() {
  version_info();
  printf("\n\nUsage: newspost [OPTIONS [ARGUMENTS]]"
         " file1 file2 file3...");
  printf("\nOptions:");
  printf("\n  --%-15s  -%c   <string> - hostname or IP of the news server",
         "host", 'i');
  printf("\n  --%-15s  -%c   <int>    - port number on the news server", "port",
         'z');
  printf("\n  --%-15s  -%c   <string> - username on the news server", "user",
         'u');
  printf("\n  --%-15s  -%c   <string> - password on the news server",
         "password", 'p');
  printf("\n  --%-15s  -%c   <int>    - amount of threads to use for posting",
         "threads", 'N');
  printf("\n  --%-15s  -%c   <string> - your e-mail address", "from", 'f');
  printf("\n  --%-15s  -%c   <string> - your full name", "name", 'F');
  printf("\n  --%-15s  -%c   <string> - your organization", "organization",
         'o');
  printf("\n  --%-15s  -%c   <string> - newsgroups to post to", "newsgroup",
         'n');
  printf("\n  --%-15s  -%c   <string> - subject", "subject", 's');
  printf("\n  --%-15s  -%c   <string> - newsgroup to put in the Followup-To "
         "header",
         "followupto", 'w');
  printf("\n  --%-15s  -%c   <string> - e-mail address to put in the Reply-To "
         "header",
         "replyto", 'm');
  printf("\n  --%-15s  -%c   <string> - reference these message IDs",
         "reference", 'r');
  printf("\n  --%-15s  -%c            - do NOT include \"X-No-Archive: yes\" "
         "header",
         "no-archive", 'x');
  printf("\n  --%-15s  -%c   <string> - a complete header line", "extraheader",
         'X');
  printf(
      "\n  --%-15s  -%c            - include \"File x of y\" in subject line",
      "filenumber", 'q');
  printf("\n  --%-15s  -%c            - uuencode instead of yencode", "uuenc",
         'U');
  printf("\n  --%-15s  -%c   <string> - generate SFV file", "sfv", 'c');
  printf("\n  --%-15s  -%c   <string> - generate PAR files", "par", 'a');
  printf("\n  --%-15s  -%c   <int>    - number of PAR volumes to create",
         "parnum", 'A');
  printf("\n  --%-15s  -%c   <int>    - number of files per PAR volume",
         "files-par", 'B');
  printf("\n  --%-15s  -%c   <int>    - number of lines per message", "lines",
         'l');
  printf("\n  --%-15s  -%c            - post one file as plain text", "text",
         't');
  printf("\n  --%-15s  -%c   <int>    - time to wait before posting", "delay",
         'T');
  printf("\n  --%-15s  -%c   <string> - use this directory for storing "
         "temporary files",
         "tmpdir", 'k');
  printf("\n  --%-15s  -%c            - set current options as default",
         "writedefaults", 'd');
  printf("\n  --%-15s  -%c   <char>   - disable or clear another option",
         "disable", 'D');
  printf("\n  --%-15s  -%c            - be verbose", "verbose", 'v');
  printf("\n  --%-15s  -%c            - print version info and exit", "version",
         'V');
  printf("\n  --%-15s  -%c            - display this help screen and exit",
         "help", 'h');
  printf("\nPlease see the newspost manpage for more"
         " information and examples.");
  printf("\n");
  exit(0);
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1050 <version_info@plt>
lea    0xebe(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xeed(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xee9(%rip),%rdi
lea    0xf21(%rip),%rsi
mov    $0x69,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf13(%rip),%rdi
lea    0xf48(%rip),%rsi
mov    $0x7a,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf3a(%rip),%rdi
lea    0xf6c(%rip),%rsi
mov    $0x75,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf5e(%rip),%rdi
lea    0xf90(%rip),%rsi
mov    $0x70,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf86(%rip),%rdi
lea    0xfc1(%rip),%rsi
mov    $0x4e,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfb6(%rip),%rdi
lea    0xfe0(%rip),%rsi
mov    $0x66,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfd2(%rip),%rdi
lea    0xff2(%rip),%rsi
mov    $0x46,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfe4(%rip),%rdi
lea    0xfff(%rip),%rsi
mov    $0x6f,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff9(%rip),%rdi
lea    0x1025(%rip),%rsi
mov    $0x6e,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x101c(%rip),%rdi
lea    0x1032(%rip),%rsi
mov    $0x73,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1027(%rip),%rdi
lea    0x1068(%rip),%rsi
mov    $0x77,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1060(%rip),%rdi
lea    0x10a3(%rip),%rsi
mov    $0x6d,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1098(%rip),%rdi
lea    0x10ca(%rip),%rsi
mov    $0x72,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10c1(%rip),%rdi
lea    0x1101(%rip),%rsi
mov    $0x78,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10f9(%rip),%rdi
lea    0x1126(%rip),%rsi
mov    $0x58,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x111f(%rip),%rdi
lea    0x115b(%rip),%rsi
mov    $0x71,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1153(%rip),%rdi
lea    0x1185(%rip),%rsi
mov    $0x55,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1178(%rip),%rdi
lea    0x11a0(%rip),%rsi
mov    $0x63,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1191(%rip),%rdi
lea    0x1240(%rip),%rsi
mov    $0x61,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11a7(%rip),%rdi
lea    0x11dd(%rip),%rsi
mov    $0x41,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11d1(%rip),%rdi
lea    0x1206(%rip),%rsi
mov    $0x42,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11fd(%rip),%rdi
lea    0x122f(%rip),%rsi
mov    $0x6c,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1222(%rip),%rdi
lea    0x124f(%rip),%rsi
mov    $0x74,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1241(%rip),%rdi
lea    0x1273(%rip),%rsi
mov    $0x54,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1266(%rip),%rdi
lea    0x12ab(%rip),%rsi
mov    $0x6b,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x129f(%rip),%rdi
lea    0x12d4(%rip),%rsi
mov    $0x64,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12cf(%rip),%rdi
lea    0x1305(%rip),%rsi
mov    $0x44,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12fa(%rip),%rdi
lea    0x1313(%rip),%rsi
mov    $0x76,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1308(%rip),%rdi
lea    0x133a(%rip),%rsi
mov    $0x56,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x132f(%rip),%rdi
lea    0x1367(%rip),%rsi
mov    $0x68,%edx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1359(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x138f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<print_help>:
push   %rax
xor    %eax,%eax
call   1060 <version_info@plt>
lea    0xeb1(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xee0(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xedc(%rip),%rdi
lea    0xf14(%rip),%rsi
mov    $0x69,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf06(%rip),%rdi
lea    0xf3b(%rip),%rsi
mov    $0x7a,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf2d(%rip),%rdi
lea    0xf5f(%rip),%rsi
mov    $0x75,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf51(%rip),%rdi
lea    0xf83(%rip),%rsi
mov    $0x70,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf79(%rip),%rdi
lea    0xfb4(%rip),%rsi
mov    $0x4e,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfa9(%rip),%rdi
lea    0xfd3(%rip),%rsi
mov    $0x66,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfc5(%rip),%rdi
lea    0xfe5(%rip),%rsi
mov    $0x46,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfd7(%rip),%rdi
lea    0xff2(%rip),%rsi
mov    $0x6f,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfec(%rip),%rdi
lea    0x1018(%rip),%rsi
mov    $0x6e,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x100f(%rip),%rdi
lea    0x1025(%rip),%rsi
mov    $0x73,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x101a(%rip),%rdi
lea    0x105b(%rip),%rsi
mov    $0x77,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1053(%rip),%rdi
lea    0x1096(%rip),%rsi
mov    $0x6d,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x108b(%rip),%rdi
lea    0x10bd(%rip),%rsi
mov    $0x72,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x10b4(%rip),%rdi
lea    0x10f4(%rip),%rsi
mov    $0x78,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x10ec(%rip),%rdi
lea    0x1119(%rip),%rsi
mov    $0x58,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1112(%rip),%rdi
lea    0x114e(%rip),%rsi
mov    $0x71,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1146(%rip),%rdi
lea    0x1178(%rip),%rsi
mov    $0x55,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x116b(%rip),%rdi
lea    0x1193(%rip),%rsi
mov    $0x63,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1184(%rip),%rdi
lea    0x1233(%rip),%rsi
mov    $0x61,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x119a(%rip),%rdi
lea    0x11d0(%rip),%rsi
mov    $0x41,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x11c4(%rip),%rdi
lea    0x11f9(%rip),%rsi
mov    $0x42,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x11f0(%rip),%rdi
lea    0x1222(%rip),%rsi
mov    $0x6c,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1215(%rip),%rdi
lea    0x1242(%rip),%rsi
mov    $0x74,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1234(%rip),%rdi
lea    0x1266(%rip),%rsi
mov    $0x54,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1259(%rip),%rdi
lea    0x129e(%rip),%rsi
mov    $0x6b,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1292(%rip),%rdi
lea    0x12c7(%rip),%rsi
mov    $0x64,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x12c2(%rip),%rdi
lea    0x12f8(%rip),%rsi
mov    $0x44,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x12ed(%rip),%rdi
lea    0x1306(%rip),%rsi
mov    $0x76,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x12fb(%rip),%rdi
lea    0x132d(%rip),%rsi
mov    $0x56,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1322(%rip),%rdi
lea    0x135a(%rip),%rsi
mov    $0x68,%edx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x134c(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %edi,%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@.str = [61 x i8] c"\0A\0AUsage: newspost [OPTIONS [ARGUMENTS]] file1 file2 file3...\00"
@.str.1 = [10 x i8] c"\0AOptions:\00"
@.str.2 = [63 x i8] c"\0A --%-15s -%c <string> - hostname or IP of the news server\00"
@.str.3 = [5 x i8] c"host\00"
@.str.4 = [60 x i8] c"\0A --%-15s -%c <int> - port number on the news server\00"
@.str.5 = [5 x i8] c"port\00"
@.str.6 = [57 x i8] c"\0A --%-15s -%c <string> - username on the news server\00"
@.str.7 = [5 x i8] c"user\00"
@.str.8 = [57 x i8] c"\0A --%-15s -%c <string> - password on the news server\00"
@.str.9 = [9 x i8] c"password\00"
@.str.10 = [66 x i8] c"\0A --%-15s -%c <int> - amount of threads to use for posting\00"
@.str.11 = [8 x i8] c"threads\00"
@.str.12 = [49 x i8] c"\0A --%-15s -%c <string> - your e-mail address\00"
@.str.13 = [5 x i8] c"from\00"
@.str.14 = [44 x i8] c"\0A --%-15s -%c <string> - your full name\00"
@.str.15 = [5 x i8] c"name\00"
@.str.16 = [47 x i8] c"\0A --%-15s -%c <string> - your organization\00"
@.str.17 = [13 x i8] c"organization\00"
@.str.18 = [51 x i8] c"\0A --%-15s -%c <string> - newsgroups to post to\00"
@.str.19 = [10 x i8] c"newsgroup\00"
@.str.20 = [37 x i8] c"\0A --%-15s -%c <string> - subject\00"
@.str.21 = [8 x i8] c"subject\00"
@.str.22 = [72 x i8] c"\0A --%-15s -%c <string> - newsgroup to put in the Followup-To header\00"
@.str.23 = [11 x i8] c"followupto\00"
@.str.24 = [74 x i8] c"\0A --%-15s -%c <string> - e-mail address to put in the Reply-To header\00"
@.str.25 = [8 x i8] c"replyto\00"
@.str.26 = [57 x i8] c"\0A --%-15s -%c <string> - reference these message IDs\00"
@.str.27 = [10 x i8] c"reference\00"
@.str.28 = [71 x i8] c"\0A --%-15s -%c - do NOT include \22X-No-Archive: yes\22 header\00"
@.str.29 = [11 x i8] c"no-archive\00"
@.str.30 = [52 x i8] c"\0A --%-15s -%c <string> - a complete header line\00"
@.str.31 = [12 x i8] c"extraheader\00"
@.str.32 = [67 x i8] c"\0A --%-15s -%c - include \22File x of y\22 in subject line\00"
@.str.33 = [11 x i8] c"filenumber\00"
@.str.34 = [57 x i8] c"\0A --%-15s -%c - uuencode instead of yencode\00"
@.str.35 = [6 x i8] c"uuenc\00"
@.str.36 = [47 x i8] c"\0A --%-15s -%c <string> - generate SFV file\00"
@.str.37 = [4 x i8] c"sfv\00"
@.str.38 = [48 x i8] c"\0A --%-15s -%c <string> - generate PAR files\00"
@.str.39 = [4 x i8] c"par\00"
@.str.40 = [61 x i8] c"\0A --%-15s -%c <int> - number of PAR volumes to create\00"
@.str.41 = [7 x i8] c"parnum\00"
@.str.42 = [60 x i8] c"\0A --%-15s -%c <int> - number of files per PAR volume\00"
@.str.43 = [10 x i8] c"files-par\00"
@.str.44 = [57 x i8] c"\0A --%-15s -%c <int> - number of lines per message\00"
@.str.45 = [6 x i8] c"lines\00"
@.str.46 = [57 x i8] c"\0A --%-15s -%c - post one file as plain text\00"
@.str.47 = [5 x i8] c"text\00"
@.str.48 = [57 x i8] c"\0A --%-15s -%c <int> - time to wait before posting\00"
@.str.49 = [6 x i8] c"delay\00"
@.str.50 = [76 x i8] c"\0A --%-15s -%c <string> - use this directory for storing temporary files\00"
@.str.51 = [7 x i8] c"tmpdir\00"
@.str.52 = [60 x i8] c"\0A --%-15s -%c - set current options as default\00"
@.str.53 = [14 x i8] c"writedefaults\00"
@.str.54 = [61 x i8] c"\0A --%-15s -%c <char> - disable or clear another option\00"
@.str.55 = [8 x i8] c"disable\00"
@.str.56 = [40 x i8] c"\0A --%-15s -%c - be verbose\00"
@.str.57 = [8 x i8] c"verbose\00"
@.str.58 = [57 x i8] c"\0A --%-15s -%c - print version info and exit\00"
@.str.59 = [8 x i8] c"version\00"
@.str.60 = [63 x i8] c"\0A --%-15s -%c - display this help screen and exit\00"
@.str.61 = [5 x i8] c"help\00"
@.str.62 = [68 x i8] c"\0APlease see the newspost manpage for more information and examples.\00"
@.str.63 = [2 x i8] c"\0A\00"
define void @print_help() {
%1 = call i32 (...) @version_info()
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i32 105)
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0), i32 122)
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0), i32 117)
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.9, i64 0, i64 0), i32 112)
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0), i32 78)
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 102)
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 70)
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0), i32 111)
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0), i32 110)
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.21, i64 0, i64 0), i32 115)
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0), i32 119)
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.25, i64 0, i64 0), i32 109)
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.27, i64 0, i64 0), i32 114)
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.28, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.29, i64 0, i64 0), i32 120)
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.30, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0), i32 88)
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.32, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.33, i64 0, i64 0), i32 113)
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0), i32 85)
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i32 99)
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.38, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0), i32 97)
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.40, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i64 0, i64 0), i32 65)
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.43, i64 0, i64 0), i32 66)
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.44, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i32 108)
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.46, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.47, i64 0, i64 0), i32 116)
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.48, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.49, i64 0, i64 0), i32 84)
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.51, i64 0, i64 0), i32 107)
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i32 100)
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.54, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.55, i64 0, i64 0), i32 68)
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.56, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0), i32 118)
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.58, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.59, i64 0, i64 0), i32 86)
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.60, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0), i32 104)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.62, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.63, i64 0, i64 0))
%36 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@.str = [61 x i8] c"\0A\0AUsage: newspost [OPTIONS [ARGUMENTS]] file1 file2 file3...\00"
@.str.1 = [10 x i8] c"\0AOptions:\00"
@.str.2 = [63 x i8] c"\0A --%-15s -%c <string> - hostname or IP of the news server\00"
@.str.3 = [5 x i8] c"host\00"
@.str.4 = [60 x i8] c"\0A --%-15s -%c <int> - port number on the news server\00"
@.str.5 = [5 x i8] c"port\00"
@.str.6 = [57 x i8] c"\0A --%-15s -%c <string> - username on the news server\00"
@.str.7 = [5 x i8] c"user\00"
@.str.8 = [57 x i8] c"\0A --%-15s -%c <string> - password on the news server\00"
@.str.9 = [9 x i8] c"password\00"
@.str.10 = [66 x i8] c"\0A --%-15s -%c <int> - amount of threads to use for posting\00"
@.str.11 = [8 x i8] c"threads\00"
@.str.12 = [49 x i8] c"\0A --%-15s -%c <string> - your e-mail address\00"
@.str.13 = [5 x i8] c"from\00"
@.str.14 = [44 x i8] c"\0A --%-15s -%c <string> - your full name\00"
@.str.15 = [5 x i8] c"name\00"
@.str.16 = [47 x i8] c"\0A --%-15s -%c <string> - your organization\00"
@.str.17 = [13 x i8] c"organization\00"
@.str.18 = [51 x i8] c"\0A --%-15s -%c <string> - newsgroups to post to\00"
@.str.19 = [10 x i8] c"newsgroup\00"
@.str.20 = [37 x i8] c"\0A --%-15s -%c <string> - subject\00"
@.str.21 = [8 x i8] c"subject\00"
@.str.22 = [72 x i8] c"\0A --%-15s -%c <string> - newsgroup to put in the Followup-To header\00"
@.str.23 = [11 x i8] c"followupto\00"
@.str.24 = [74 x i8] c"\0A --%-15s -%c <string> - e-mail address to put in the Reply-To header\00"
@.str.25 = [8 x i8] c"replyto\00"
@.str.26 = [57 x i8] c"\0A --%-15s -%c <string> - reference these message IDs\00"
@.str.27 = [10 x i8] c"reference\00"
@.str.28 = [71 x i8] c"\0A --%-15s -%c - do NOT include \22X-No-Archive: yes\22 header\00"
@.str.29 = [11 x i8] c"no-archive\00"
@.str.30 = [52 x i8] c"\0A --%-15s -%c <string> - a complete header line\00"
@.str.31 = [12 x i8] c"extraheader\00"
@.str.32 = [67 x i8] c"\0A --%-15s -%c - include \22File x of y\22 in subject line\00"
@.str.33 = [11 x i8] c"filenumber\00"
@.str.34 = [57 x i8] c"\0A --%-15s -%c - uuencode instead of yencode\00"
@.str.35 = [6 x i8] c"uuenc\00"
@.str.36 = [47 x i8] c"\0A --%-15s -%c <string> - generate SFV file\00"
@.str.37 = [4 x i8] c"sfv\00"
@.str.38 = [48 x i8] c"\0A --%-15s -%c <string> - generate PAR files\00"
@.str.39 = [4 x i8] c"par\00"
@.str.40 = [61 x i8] c"\0A --%-15s -%c <int> - number of PAR volumes to create\00"
@.str.41 = [7 x i8] c"parnum\00"
@.str.42 = [60 x i8] c"\0A --%-15s -%c <int> - number of files per PAR volume\00"
@.str.43 = [10 x i8] c"files-par\00"
@.str.44 = [57 x i8] c"\0A --%-15s -%c <int> - number of lines per message\00"
@.str.45 = [6 x i8] c"lines\00"
@.str.46 = [57 x i8] c"\0A --%-15s -%c - post one file as plain text\00"
@.str.47 = [5 x i8] c"text\00"
@.str.48 = [57 x i8] c"\0A --%-15s -%c <int> - time to wait before posting\00"
@.str.49 = [6 x i8] c"delay\00"
@.str.50 = [76 x i8] c"\0A --%-15s -%c <string> - use this directory for storing temporary files\00"
@.str.51 = [7 x i8] c"tmpdir\00"
@.str.52 = [60 x i8] c"\0A --%-15s -%c - set current options as default\00"
@.str.53 = [14 x i8] c"writedefaults\00"
@.str.54 = [61 x i8] c"\0A --%-15s -%c <char> - disable or clear another option\00"
@.str.55 = [8 x i8] c"disable\00"
@.str.56 = [40 x i8] c"\0A --%-15s -%c - be verbose\00"
@.str.57 = [8 x i8] c"verbose\00"
@.str.58 = [57 x i8] c"\0A --%-15s -%c - print version info and exit\00"
@.str.59 = [8 x i8] c"version\00"
@.str.60 = [63 x i8] c"\0A --%-15s -%c - display this help screen and exit\00"
@.str.61 = [5 x i8] c"help\00"
@.str.62 = [68 x i8] c"\0APlease see the newspost manpage for more information and examples.\00"
define void @print_help() {
%1 = tail call i32 (...) @version_info()
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i32 105)
%5 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0), i32 122)
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0), i32 117)
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.9, i64 0, i64 0), i32 112)
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0), i32 78)
%9 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 102)
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 70)
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.17, i64 0, i64 0), i32 111)
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0), i32 110)
%13 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.21, i64 0, i64 0), i32 115)
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0), i32 119)
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.25, i64 0, i64 0), i32 109)
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.27, i64 0, i64 0), i32 114)
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str.28, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.29, i64 0, i64 0), i32 120)
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.30, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0), i32 88)
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.32, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.33, i64 0, i64 0), i32 113)
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0), i32 85)
%21 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i32 99)
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.38, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0), i32 97)
%23 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.40, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.41, i64 0, i64 0), i32 65)
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.43, i64 0, i64 0), i32 66)
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.44, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i32 108)
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.46, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.47, i64 0, i64 0), i32 116)
%27 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.48, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.49, i64 0, i64 0), i32 84)
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.51, i64 0, i64 0), i32 107)
%29 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i32 100)
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.54, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.55, i64 0, i64 0), i32 68)
%31 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.56, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0), i32 118)
%32 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.58, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.59, i64 0, i64 0), i32 86)
%33 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.60, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0), i32 104)
%34 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @.str.62, i64 0, i64 0))
%35 = tail call i32 @putchar(i32 10)
%36 = tail call i32 @exit(i32 0)
unreachable
}