#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*/ ScreenSep();
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stdout;
void HelpScreen4(void) {
  ScreenSep();
  fprintf(
      stdout,
      "-o {0|1*|3|5,#} overhang - 5=5', 3=3', 0 for blunt, 1(d) for all. If "
      "you append\n"
      "                ',#' (1<#<7), filters on the overhang length as well: "
      "'-o5,4' \n"
      "-O {###(x),min}  ORF table for selected frames; 'x' -> extra info re AA "
      "compos'n\n"
      "               ie: -O 135x,25 = fr 1,3,5 w/ xtra info; min ORF len = "
      "25aas.\n"
      "               'x' -> 3 extra lines x 128 chars wide, mungs formal "
      "FASTA format.\n"
      "--orfmap       prints a pseudo graphic map showing the locations of all "
      "ORFs \n"
      "               requested with the -O flag (see above) & a MET / STOP "
      "map\n"
      "               that shows only MET and STOP codons.  Expand scale with "
      "'-w'\n"
      "-p {Label,pattern[,Err]} cmd line entry of (degenerate) patterns to "
      "search for\n"
      "               if Err is missing, it is set = 0, also sets -S for "
      "output.\n"
      "  eg:  -pFindMe,gyrttnnnnnnngct,1  looks for indicated pattern with 1 "
      "error.\n"
      "-P {Lab1,[+-lg]DistLo[-DistHi],Lab2}  Proximity match'g for 2 named "
      "patterns.\n"
      "               Lab1/2 patterns must be in a REBASE-format file in "
      "form:\n"
      " 'Lab1 1 IUPAC_pattern 0 Err !Comments '  where Err = max # errors "
      "allowed eg:\n"
      " 'FindMe 1 gyrttnnnnnnngct 0 1 !The pattern that I'm trying to find \n"
      "               can repeat to specify up to 10 relationships at once\n"
      "               + (-) Label1 is downstream (upstream) of Label2; default "
      "either\n"
      "               l (g) Label1 is < (>) or = to 'DistLo' from Label2\n"
      " 'DistLo-DistHi'  indicates an explicit distance range (obviating l,g)\n"
      "--ps           writes Postscript plasmid map (tacg_Map.ps), \n"
      "               forces circular DNA, notes degens around rim, can be \n"
      "               combined with -O (above) to plot ORFs in any frames. "
      "Will do \n"
      "               multiple pages with a multi-sequence file.\n"
      "--pdf          converts above PS plasmid map to PDF (tacg_Map.pdf) via "
      "exec\n"
      "               of 'ghostscript', if it exists. If it doesn't tacg will "
      "exit. \n"
      "-m/M {#}       minimum (-m) and/or Maximum (-M) # cuts/RE; 0* for all.\n"
      "-n {3*-10}     magnitude of recognition site; 3 = all, 5 = 5,6,7....\n"
      "\n");
}


x86 assembly (clang, -O0):
<HelpScreen4>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1040 <ScreenSep@plt>
mov    0x2eae(%rip),%rax
mov    (%rax),%edi
lea    0xec5(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<HelpScreen4>:
push   %rax
xor    %eax,%eax
call   1040 <ScreenSep@plt>
mov    0x2eb1(%rip),%rax
mov    (%rax),%edi
lea    0xec8(%rip),%rsi
pop    %rax
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [1997 x i8] c"-o {0|1*|3|5,#} overhang - 5=5', 3=3', 0 for blunt, 1(d) for all. If you append\0A ',#' (1<#<7), filters on the overhang length as well: '-o5,4' \0A-O {###(x),min} ORF table for selected frames; 'x' -> extra info re AA compos'n\0A ie: -O 135x,25 = fr 1,3,5 w/ xtra info; min ORF len = 25aas.\0A 'x' -> 3 extra lines x 128 chars wide, mungs formal FASTA format.\0A--orfmap prints a pseudo graphic map showing the locations of all ORFs \0A requested with the -O flag (see above) & a MET / STOP map\0A that shows only MET and STOP codons. Expand scale with '-w'\0A-p {Label,pattern[,Err]} cmd line entry of (degenerate) patterns to search for\0A if Err is missing, it is set = 0, also sets -S for output.\0A eg: -pFindMe,gyrttnnnnnnngct,1 looks for indicated pattern with 1 error.\0A-P {Lab1,[+-lg]DistLo[-DistHi],Lab2} Proximity match'g for 2 named patterns.\0A Lab1/2 patterns must be in a REBASE-format file in form:\0A 'Lab1 1 IUPAC_pattern 0 Err !Comments ' where Err = max # errors allowed eg:\0A 'FindMe 1 gyrttnnnnnnngct 0 1 !The pattern that I'm trying to find \0A can repeat to specify up to 10 relationships at once\0A + (-) Label1 is downstream (upstream) of Label2; default either\0A l (g) Label1 is < (>) or = to 'DistLo' from Label2\0A 'DistLo-DistHi' indicates an explicit distance range (obviating l,g)\0A--ps writes Postscript plasmid map (tacg_Map.ps), \0A forces circular DNA, notes degens around rim, can be \0A combined with -O (above) to plot ORFs in any frames. Will do \0A multiple pages with a multi-sequence file.\0A--pdf converts above PS plasmid map to PDF (tacg_Map.pdf) via exec\0A of 'ghostscript', if it exists. If it doesn't tacg will exit. \0A-m/M {#} minimum (-m) and/or Maximum (-M) # cuts/RE; 0* for all.\0A-n {3*-10} magnitude of recognition site; 3 = all, 5 = 5,6,7....\0A\0A\00"
define void @HelpScreen4() {
%1 = call i32 (...) @ScreenSep()
%2 = load i32, i32* @stdout
%3 = call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1997 x i8], [1997 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [1997 x i8] c"-o {0|1*|3|5,#} overhang - 5=5', 3=3', 0 for blunt, 1(d) for all. If you append\0A ',#' (1<#<7), filters on the overhang length as well: '-o5,4' \0A-O {###(x),min} ORF table for selected frames; 'x' -> extra info re AA compos'n\0A ie: -O 135x,25 = fr 1,3,5 w/ xtra info; min ORF len = 25aas.\0A 'x' -> 3 extra lines x 128 chars wide, mungs formal FASTA format.\0A--orfmap prints a pseudo graphic map showing the locations of all ORFs \0A requested with the -O flag (see above) & a MET / STOP map\0A that shows only MET and STOP codons. Expand scale with '-w'\0A-p {Label,pattern[,Err]} cmd line entry of (degenerate) patterns to search for\0A if Err is missing, it is set = 0, also sets -S for output.\0A eg: -pFindMe,gyrttnnnnnnngct,1 looks for indicated pattern with 1 error.\0A-P {Lab1,[+-lg]DistLo[-DistHi],Lab2} Proximity match'g for 2 named patterns.\0A Lab1/2 patterns must be in a REBASE-format file in form:\0A 'Lab1 1 IUPAC_pattern 0 Err !Comments ' where Err = max # errors allowed eg:\0A 'FindMe 1 gyrttnnnnnnngct 0 1 !The pattern that I'm trying to find \0A can repeat to specify up to 10 relationships at once\0A + (-) Label1 is downstream (upstream) of Label2; default either\0A l (g) Label1 is < (>) or = to 'DistLo' from Label2\0A 'DistLo-DistHi' indicates an explicit distance range (obviating l,g)\0A--ps writes Postscript plasmid map (tacg_Map.ps), \0A forces circular DNA, notes degens around rim, can be \0A combined with -O (above) to plot ORFs in any frames. Will do \0A multiple pages with a multi-sequence file.\0A--pdf converts above PS plasmid map to PDF (tacg_Map.pdf) via exec\0A of 'ghostscript', if it exists. If it doesn't tacg will exit. \0A-m/M {#} minimum (-m) and/or Maximum (-M) # cuts/RE; 0* for all.\0A-n {3*-10} magnitude of recognition site; 3 = all, 5 = 5,6,7....\0A\0A\00"
define void @HelpScreen4() {
%1 = tail call i32 (...) @ScreenSep()
%2 = load i32, i32* @stdout
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([1997 x i8], [1997 x i8]* @.str, i64 0, i64 0))
ret void
}