#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*/ print_msg(char *);
void print_detailed_usage() {
  print_msg(
      "Usage: tsserve [switches] <infile>\n"
      "\n"
      "  Copyright (c) 2004 SJ Consulting Ltd.\n"
      "\n"
      "  Reads from a file containing H.222.0 (ISO/IEC 13818-1) Transport\n"
      "  Stream or Program Stream data (converting PS to TS as it goes),\n"
      "  and 'plays' the Transport Stream 'at' a client.\n"
      "\n"
      "  Assumes a single program in the file, and for PS assumes that the\n"
      "  program stream is well formed - i.e., that it starts with a pack\n"
      "  header. A PS stream that ends after a PES packet, but without an\n"
      "  MPEG_program_end_code will cause a warning message, but will not\n"
      "  be treated as an error.\n"
      "\n"
      "  In the default mode, the program acts as a server, listening for\n"
      "  clients on port 88 (or the port specified with -port). When a\n"
      "  client connects to the port, the program starts listening for\n"
      "  commands from the client, and acting appropriately. When the\n"
      "  client sends the 'q'uit command, the program disconnects from\n"
      "  the client, and listens for another.\n"
      "\n"
      "  Alternative modes may be specified with -cmd, -cmdstdin and\n"
      "  -test.\n"
      "\n"
      "Input:\n"
      "  <infile>          An H.222.0 TS or PS file.\n"
      "                    If given before any of -0..-9, this will be "
      "treated\n"
      "                    as a specification of file 0. If given after "
      "-0..-9,\n"
      "                    it will be treated as an error.\n"
      "\n"
      "  -0 <file0> .. -9 <file9>\n"
      "                    Specify files 0 through 9, selectable with command\n"
      "                    characters 0 through 9. The lowest numbered name\n"
      "                    will be selected as the default.\n"
      "\n"
      "General Switches:\n"
      "  -details          Present this text.\n"
      "  -quiet, -q        Only output error messages.\n"
      "  -verbose, -v      Output progress messages.\n"
      "\n"
      "  Normal operation outputs some messages summarising the command line\n"
      "  choices, information about data from the input file, confirmation\n"
      "  when the program is ending, etc.\n"
      "  Quiet operation endeavours only to output error messages.\n"
      "  Verbose operation outputs diagnostic information, not intended for\n"
      "  normal use.\n"
      "\n"
      "  -x                Output *extra* information."
      "\n"
      "  The extra information output gives more details about what the\n"
      "  server is doing in reaction to the commands given by the client.\n"
      "  It is intended as a diagnostic aid during development.\n"
      "\n"
      "  -port <n>         Listen for a client on port <n> (default 88)\n"
      "                    Ignored if -cmd, -cmdstdin or -test is\n"
      "                    specified\n"
      "\n"
      "  -noaudio          Don't output audio data\n"
      "\n"
      "  -pad <n>          Pad the start of the output with <n> filler TS\n"
      "                    packets, to allow the client to synchronize with\n"
      "                    the datastream. Defaults to 8.\n"
      "\n"
      "  -noseqhdr         Do not output sequence headers for fast "
      "forward/reverse\n"
      "                    data. Only relevant to H.262 data.\n"
      "\n"
      "Program Stream Switches:\n"
      "\n"
      "  The following switches are only applicable if the input data is PS.\n"
      "\n"
      "  -h264, -avc       Force the program to treat the input as "
      "MPEG-4/AVC.\n"
      "  -h262             Force the program to treat the input as MPEG-2.\n"
      "\n"
      "  If input is from a file, then the program will look at the start of\n"
      "  the file to determine if the stream is H.264 or H.262 data. This\n"
      "  process may occasionally come to the wrong conclusion, in which case\n"
      "  the user can override the choice using the switches above.\n"
      "\n"
      "  If the audio stream being output is Dolby (AC-3), then the stream "
      "type\n"
      "  used to output it differs for DVB (European) and ATSC (USA) data. It\n"
      "  may be specified as follows:\n"
      "\n"
      "  -dolby dvb       Use stream type 0x06 (the default)\n"
      "  -dolby atsc      Use stream type 0x81\n"
      "\n"
      "Transport Stream Switches:\n"
      "\n"
      "  The following switches are only applicable if the input data is TS.\n"
      "\n"
      "  -tsdirect         In normal play, copy all TS packets to the client,\n"
      "                    instead of just sending the PES packets for the "
      "video\n"
      "                    and audio streams'\n"
      "\n"
      "  Note that when -tsdirect is specified, PES packets are still "
      "inspected\n"
      "  to allow building up the fast forward/reverse indices.\n"
      "  Also, -prepeat, -pes_padding and -drop will have no effect with this "
      "switch.\n"
      "\n"
      "Other stuff:\n"
      "\n"
      "  -prepeat <n>      Output the program data (PAT/PMT) after every <n>\n"
      "                    PES packets, to allow a TS reader to resynchronise\n"
      "                    if it starts reading part way through the stream.\n"
      "                    PAT/PMT pairs are also output before 'significant'\n"
      "                    events (changing speed/direction/etc.).\n"
      "                    Defaults to 100.\n"
      "\n"
      "  -ffreq <n>        Frequency for faster forward ('F'). Default is 8.\n"
      "  -rfreq <n>        Frequency for reverse (fast reverse is twice\n"
      "                    the speed). Default is 8.\n"
      "\n"
      "  -pes_padding <n>  When outputting in 'normal play' mode, input PES "
      "packets\n"
      "                    are copied to the output. If '-pes_padding' is "
      "used, then <n>\n"
      "                    dummy PES packets will be added to the output for "
      "each input\n"
      "                    packet, causing the amount of data output to be "
      "roughly <n>+1\n"
      "                    times as great. This can be useful for benchmarking "
      "the recipient.\n"
      "\n"
      "  -drop <k> <d>     As TS packets are output, for every <k>+<d> "
      "packets,\n"
      "                    keep <k> and then drop (throw away) <d>.\n"
      "                    Applies to all TS packets output, regardless of "
      "selected file.\n"
      "                    This can be useful when testing other "
      "applications.\n"
      "\n"
      "Alternate modes\n"
      "---------------\n"
      "  Command input and testing modes connect directly to a host, and thus\n"
      "  the host to use must be specified.\n"
      "\n"
      "  -host <host>[:<port>\n"
      "                    The host to which to write TS packets, over\n"
      "                    TCP/IP. If <port> is not specified, it defaults\n"
      "                    to 88.\n"
      "\n"
      "Command input:\n"
      "  -cmd              Enables command input, from the host.\n"
      "  -cmdstdin         Enables command input, from standard input.\n"
      "                    This is not supported on Windows.\n"
      "\n"
      "  In command input mode, the program connects to the host specified\n"
      "  with -host, and takes commands either from the host, or from\n"
      "  standard input.\n"
      "\n"
      "  Command characters are:\n"
      "      q        quit.\n"
      "      n        normal play.\n"
      "      p        pause (the startup state).\n"
      "      f        fast forward (uses 'strip').\n"
      "      F        fast fast forward (uses 'filter').\n"
      "      r        reverse.\n"
      "      R        fast reverse.\n"
      "      >  <     skip forwards/back by 10 seconds.\n"
      "      ]  [     skip forwards/back by 3 minutes.\n"
      "      0..9     select file 0 through 9 (as defined by switches -0 to\n"
      "               -9, see above), rewind it and play at normal speed.\n"
      "  Any other character is ignored.\n"
      "  Note that if command input is from standard input, a newline must\n"
      "  be typed before command characters are 'seen', and if there are\n"
      "  multiple characters on a line, they will be obeyed in sequence.\n"
      "\n"
      "Testing:\n"
      "  -test             Test by running a sequence of pictures at the\n"
      "                    specified host. The exact sequence used can be\n"
      "                    determined with the -f, etc., switches:\n"
      "\n"
      "  -f <nf>           Loop outputting <nn> pictures at normal speed,\n"
      "  -n <nn>           then fast forward past <nf> pictures, then <nn> at\n"
      "  -ff <nF>          normal speed, then <nF> at the higher fast forward\n"
      "  -r <nr>           speed, then <nn> at normal speed again, then\n"
      "                    reverse past <nr>. Repeat until stopped.\n"
      "\n"
      "  If '-f 0 -ff 0 -r 0' is specified, then the data will just play at\n"
      "  normal speed, ignoring -n.\n"
      "\n"
      "  -skiptest         Test forwards and backwards skipping.\n"
      "\n"
      "  -output <name>, -o <name>\n"
      "                    If -test is being used then output may be\n"
      "                    redirected to a file, instead of a host.\n");
}


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

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

LLVM IR (-O0):
@.str = [7486 x i8] c"Usage: tsserve [switches] <infile>\0A\0A Copyright (c) 2004 SJ Consulting Ltd.\0A\0A Reads from a file containing H.222.0 (ISO/IEC 13818-1) Transport\0A Stream or Program Stream data (converting PS to TS as it goes),\0A and 'plays' the Transport Stream 'at' a client.\0A\0A Assumes a single program in the file, and for PS assumes that the\0A program stream is well formed - i.e., that it starts with a pack\0A header. A PS stream that ends after a PES packet, but without an\0A MPEG_program_end_code will cause a warning message, but will not\0A be treated as an error.\0A\0A In the default mode, the program acts as a server, listening for\0A clients on port 88 (or the port specified with -port). When a\0A client connects to the port, the program starts listening for\0A commands from the client, and acting appropriately. When the\0A client sends the 'q'uit command, the program disconnects from\0A the client, and listens for another.\0A\0A Alternative modes may be specified with -cmd, -cmdstdin and\0A -test.\0A\0AInput:\0A <infile> An H.222.0 TS or PS file.\0A If given before any of -0..-9, this will be treated\0A as a specification of file 0. If given after -0..-9,\0A it will be treated as an error.\0A\0A -0 <file0> .. -9 <file9>\0A Specify files 0 through 9, selectable with command\0A characters 0 through 9. The lowest numbered name\0A will be selected as the default.\0A\0AGeneral Switches:\0A -details Present this text.\0A -quiet, -q Only output error messages.\0A -verbose, -v Output progress messages.\0A\0A Normal operation outputs some messages summarising the command line\0A choices, information about data from the input file, confirmation\0A when the program is ending, etc.\0A Quiet operation endeavours only to output error messages.\0A Verbose operation outputs diagnostic information, not intended for\0A normal use.\0A\0A -x Output *extra* information.\0A The extra information output gives more details about what the\0A server is doing in reaction to the commands given by the client.\0A It is intended as a diagnostic aid during development.\0A\0A -port <n> Listen for a client on port <n> (default 88)\0A Ignored if -cmd, -cmdstdin or -test is\0A specified\0A\0A -noaudio Don't output audio data\0A\0A -pad <n> Pad the start of the output with <n> filler TS\0A packets, to allow the client to synchronize with\0A the datastream. Defaults to 8.\0A\0A -noseqhdr Do not output sequence headers for fast forward/reverse\0A data. Only relevant to H.262 data.\0A\0AProgram Stream Switches:\0A\0A The following switches are only applicable if the input data is PS.\0A\0A -h264, -avc Force the program to treat the input as MPEG-4/AVC.\0A -h262 Force the program to treat the input as MPEG-2.\0A\0A If input is from a file, then the program will look at the start of\0A the file to determine if the stream is H.264 or H.262 data. This\0A process may occasionally come to the wrong conclusion, in which case\0A the user can override the choice using the switches above.\0A\0A If the audio stream being output is Dolby (AC-3), then the stream type\0A used to output it differs for DVB (European) and ATSC (USA) data. It\0A may be specified as follows:\0A\0A -dolby dvb Use stream type 0x06 (the default)\0A -dolby atsc Use stream type 0x81\0A\0ATransport Stream Switches:\0A\0A The following switches are only applicable if the input data is TS.\0A\0A -tsdirect In normal play, copy all TS packets to the client,\0A instead of just sending the PES packets for the video\0A and audio streams'\0A\0A Note that when -tsdirect is specified, PES packets are still inspected\0A to allow building up the fast forward/reverse indices.\0A Also, -prepeat, -pes_padding and -drop will have no effect with this switch.\0A\0AOther stuff:\0A\0A -prepeat <n> Output the program data (PAT/PMT) after every <n>\0A PES packets, to allow a TS reader to resynchronise\0A if it starts reading part way through the stream.\0A PAT/PMT pairs are also output before 'significant'\0A events (changing speed/direction/etc.).\0A Defaults to 100.\0A\0A -ffreq <n> Frequency for faster forward ('F'). Default is 8.\0A -rfreq <n> Frequency for reverse (fast reverse is twice\0A the speed). Default is 8.\0A\0A -pes_padding <n> When outputting in 'normal play' mode, input PES packets\0A are copied to the output. If '-pes_padding' is used, then <n>\0A dummy PES packets will be added to the output for each input\0A packet, causing the amount of data output to be roughly <n>+1\0A times as great. This can be useful for benchmarking the recipient.\0A\0A -drop <k> <d> As TS packets are output, for every <k>+<d> packets,\0A keep <k> and then drop (throw away) <d>.\0A Applies to all TS packets output, regardless of selected file.\0A This can be useful when testing other applications.\0A\0AAlternate modes\0A---------------\0A Command input and testing modes connect directly to a host, and thus\0A the host to use must be specified.\0A\0A -host <host>[:<port>\0A The host to which to write TS packets, over\0A TCP/IP. If <port> is not specified, it defaults\0A to 88.\0A\0ACommand input:\0A -cmd Enables command input, from the host.\0A -cmdstdin Enables command input, from standard input.\0A This is not supported on Windows.\0A\0A In command input mode, the program connects to the host specified\0A with -host, and takes commands either from the host, or from\0A standard input.\0A\0A Command characters are:\0A q quit.\0A n normal play.\0A p pause (the startup state).\0A f fast forward (uses 'strip').\0A F fast fast forward (uses 'filter').\0A r reverse.\0A R fast reverse.\0A > < skip forwards/back by 10 seconds.\0A ] [ skip forwards/back by 3 minutes.\0A 0..9 select file 0 through 9 (as defined by switches -0 to\0A -9, see above), rewind it and play at normal speed.\0A Any other character is ignored.\0A Note that if command input is from standard input, a newline must\0A be typed before command characters are 'seen', and if there are\0A multiple characters on a line, they will be obeyed in sequence.\0A\0ATesting:\0A -test Test by running a sequence of pictures at the\0A specified host. The exact sequence used can be\0A determined with the -f, etc., switches:\0A\0A -f <nf> Loop outputting <nn> pictures at normal speed,\0A -n <nn> then fast forward past <nf> pictures, then <nn> at\0A -ff <nF> normal speed, then <nF> at the higher fast forward\0A -r <nr> speed, then <nn> at normal speed again, then\0A reverse past <nr>. Repeat until stopped.\0A\0A If '-f 0 -ff 0 -r 0' is specified, then the data will just play at\0A normal speed, ignoring -n.\0A\0A -skiptest Test forwards and backwards skipping.\0A\0A -output <name>, -o <name>\0A If -test is being used then output may be\0A redirected to a file, instead of a host.\0A\00"
define void @print_detailed_usage() {
%1 = call i32 @print_msg(i8* getelementptr inbounds ([7486 x i8], [7486 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [7486 x i8] c"Usage: tsserve [switches] <infile>\0A\0A Copyright (c) 2004 SJ Consulting Ltd.\0A\0A Reads from a file containing H.222.0 (ISO/IEC 13818-1) Transport\0A Stream or Program Stream data (converting PS to TS as it goes),\0A and 'plays' the Transport Stream 'at' a client.\0A\0A Assumes a single program in the file, and for PS assumes that the\0A program stream is well formed - i.e., that it starts with a pack\0A header. A PS stream that ends after a PES packet, but without an\0A MPEG_program_end_code will cause a warning message, but will not\0A be treated as an error.\0A\0A In the default mode, the program acts as a server, listening for\0A clients on port 88 (or the port specified with -port). When a\0A client connects to the port, the program starts listening for\0A commands from the client, and acting appropriately. When the\0A client sends the 'q'uit command, the program disconnects from\0A the client, and listens for another.\0A\0A Alternative modes may be specified with -cmd, -cmdstdin and\0A -test.\0A\0AInput:\0A <infile> An H.222.0 TS or PS file.\0A If given before any of -0..-9, this will be treated\0A as a specification of file 0. If given after -0..-9,\0A it will be treated as an error.\0A\0A -0 <file0> .. -9 <file9>\0A Specify files 0 through 9, selectable with command\0A characters 0 through 9. The lowest numbered name\0A will be selected as the default.\0A\0AGeneral Switches:\0A -details Present this text.\0A -quiet, -q Only output error messages.\0A -verbose, -v Output progress messages.\0A\0A Normal operation outputs some messages summarising the command line\0A choices, information about data from the input file, confirmation\0A when the program is ending, etc.\0A Quiet operation endeavours only to output error messages.\0A Verbose operation outputs diagnostic information, not intended for\0A normal use.\0A\0A -x Output *extra* information.\0A The extra information output gives more details about what the\0A server is doing in reaction to the commands given by the client.\0A It is intended as a diagnostic aid during development.\0A\0A -port <n> Listen for a client on port <n> (default 88)\0A Ignored if -cmd, -cmdstdin or -test is\0A specified\0A\0A -noaudio Don't output audio data\0A\0A -pad <n> Pad the start of the output with <n> filler TS\0A packets, to allow the client to synchronize with\0A the datastream. Defaults to 8.\0A\0A -noseqhdr Do not output sequence headers for fast forward/reverse\0A data. Only relevant to H.262 data.\0A\0AProgram Stream Switches:\0A\0A The following switches are only applicable if the input data is PS.\0A\0A -h264, -avc Force the program to treat the input as MPEG-4/AVC.\0A -h262 Force the program to treat the input as MPEG-2.\0A\0A If input is from a file, then the program will look at the start of\0A the file to determine if the stream is H.264 or H.262 data. This\0A process may occasionally come to the wrong conclusion, in which case\0A the user can override the choice using the switches above.\0A\0A If the audio stream being output is Dolby (AC-3), then the stream type\0A used to output it differs for DVB (European) and ATSC (USA) data. It\0A may be specified as follows:\0A\0A -dolby dvb Use stream type 0x06 (the default)\0A -dolby atsc Use stream type 0x81\0A\0ATransport Stream Switches:\0A\0A The following switches are only applicable if the input data is TS.\0A\0A -tsdirect In normal play, copy all TS packets to the client,\0A instead of just sending the PES packets for the video\0A and audio streams'\0A\0A Note that when -tsdirect is specified, PES packets are still inspected\0A to allow building up the fast forward/reverse indices.\0A Also, -prepeat, -pes_padding and -drop will have no effect with this switch.\0A\0AOther stuff:\0A\0A -prepeat <n> Output the program data (PAT/PMT) after every <n>\0A PES packets, to allow a TS reader to resynchronise\0A if it starts reading part way through the stream.\0A PAT/PMT pairs are also output before 'significant'\0A events (changing speed/direction/etc.).\0A Defaults to 100.\0A\0A -ffreq <n> Frequency for faster forward ('F'). Default is 8.\0A -rfreq <n> Frequency for reverse (fast reverse is twice\0A the speed). Default is 8.\0A\0A -pes_padding <n> When outputting in 'normal play' mode, input PES packets\0A are copied to the output. If '-pes_padding' is used, then <n>\0A dummy PES packets will be added to the output for each input\0A packet, causing the amount of data output to be roughly <n>+1\0A times as great. This can be useful for benchmarking the recipient.\0A\0A -drop <k> <d> As TS packets are output, for every <k>+<d> packets,\0A keep <k> and then drop (throw away) <d>.\0A Applies to all TS packets output, regardless of selected file.\0A This can be useful when testing other applications.\0A\0AAlternate modes\0A---------------\0A Command input and testing modes connect directly to a host, and thus\0A the host to use must be specified.\0A\0A -host <host>[:<port>\0A The host to which to write TS packets, over\0A TCP/IP. If <port> is not specified, it defaults\0A to 88.\0A\0ACommand input:\0A -cmd Enables command input, from the host.\0A -cmdstdin Enables command input, from standard input.\0A This is not supported on Windows.\0A\0A In command input mode, the program connects to the host specified\0A with -host, and takes commands either from the host, or from\0A standard input.\0A\0A Command characters are:\0A q quit.\0A n normal play.\0A p pause (the startup state).\0A f fast forward (uses 'strip').\0A F fast fast forward (uses 'filter').\0A r reverse.\0A R fast reverse.\0A > < skip forwards/back by 10 seconds.\0A ] [ skip forwards/back by 3 minutes.\0A 0..9 select file 0 through 9 (as defined by switches -0 to\0A -9, see above), rewind it and play at normal speed.\0A Any other character is ignored.\0A Note that if command input is from standard input, a newline must\0A be typed before command characters are 'seen', and if there are\0A multiple characters on a line, they will be obeyed in sequence.\0A\0ATesting:\0A -test Test by running a sequence of pictures at the\0A specified host. The exact sequence used can be\0A determined with the -f, etc., switches:\0A\0A -f <nf> Loop outputting <nn> pictures at normal speed,\0A -n <nn> then fast forward past <nf> pictures, then <nn> at\0A -ff <nF> normal speed, then <nF> at the higher fast forward\0A -r <nr> speed, then <nn> at normal speed again, then\0A reverse past <nr>. Repeat until stopped.\0A\0A If '-f 0 -ff 0 -r 0' is specified, then the data will just play at\0A normal speed, ignoring -n.\0A\0A -skiptest Test forwards and backwards skipping.\0A\0A -output <name>, -o <name>\0A If -test is being used then output may be\0A redirected to a file, instead of a host.\0A\00"
define void @print_detailed_usage() {
%1 = tail call i32 @print_msg(i8* getelementptr inbounds ([7486 x i8], [7486 x i8]* @.str, i64 0, i64 0))
ret void
}