#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);
int /*<<< orphan*/ printf(char *, ...);
void usage(void) {
  printf("\nFLUTE Version %s, %s\n\n", "1.7", "March 2, 2007");
  printf("  Copyright (c) 2003-2007 TUT - Tampere University of Technology\n");
  printf("  main authors/contacts: jani.peltotalo@tut.fi and "
         "sami.peltotalo@tut.fi\n");
  printf("  web site: http://www.atm.tut.fi/mad/\n\n");
  printf("  This is free software, and you are welcome to redistribute it\n");
  printf("  under certain conditions; See the GNU General Public License\n");
  printf(
      "  as published by the Free Software Foundation, version 2 or later,\n");
  printf("  for more details.\n\n");
  printf("  * mad_rlc.c & mad_rlc.h -- Portions of code derived from MCLv3 "
         "library by\n");
  printf("  * Vincent Roca et al. (http://planete-bcast.inrialpes.fr/)\n");
  printf("  *\n");
  printf("  * Copyright (c) 1999-2004 INRIA - Universite Paris 6 - All rights "
         "reserved\n");
  printf("  * (main author: Julien Laboure - julien.laboure@inrialpes.fr\n");
  printf("  *               Vincent Roca - vincent.roca@inrialpes.fr)\n\n");
  printf("  * fec.c & fec.h -- forward error correction based on Vandermonde "
         "matrices\n");
  printf("  * 980624\n");
  printf("  * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)\n");
  printf("  *\n");
  printf("  * Portions derived from code by Phil Karn (karn@ka9q.ampr.org),\n");
  printf("  * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and\n");
  printf("  * Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995\n");
  printf("  *\n");
  printf("  * Redistribution and use in source and binary forms, with or "
         "without\n");
  printf("  * modification, are permitted provided that the following "
         "conditions\n");
  printf("  * are met:\n");
  printf("  *\n");
  printf("  * 1. Redistributions of source code must retain the above "
         "copyright\n");
  printf(
      "  *    notice, this list of conditions and the following disclaimer.\n");
  printf("  * 2. Redistributions in binary form must reproduce the above\n");
  printf(
      "  *    copyright notice, this list of conditions and the following\n");
  printf("  *    disclaimer in the documentation and/or other materials\n");
  printf("  *    provided with the distribution.\n");
  printf("  *\n");
  printf("  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\n");
  printf("  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED "
         "TO,\n");
  printf("  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n");
  printf(
      "  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS\n");
  printf("  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, "
         "EXEMPLARY,\n");
  printf("  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n");
  printf(
      "  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n");
  printf(
      "  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n");
  printf(
      "  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n");
  printf(
      "  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n");
  printf(
      "  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\n");
  printf("  * OF SUCH DAMAGE.\n\n");
  printf("Sender usage: flute [-a:str] [-B:str] [-c:int] [-C] [-d:str] "
         "[-D:ull] [-e:int]\n");
  printf("                    [-f:str] [-F:str,str,...] [-G] [-h] [-H] "
         "[-i:str] [-k:int] [-l:int]\n");
  printf("                    [-L:int] [-m:str] [-n:int] [-p:int] "
         "[-P:float,float]\n");
  printf("                    [-q:int] [-r:int]");
  printf(" [-R:str] [-S] [-t:ull] [-T:int] [-U]\n");
  printf("                    [-v:int] [-V:str] [-w:int] [-W] [-x:int] "
         "[-X:int] [-z:int]\n");
  printf("                    [-Z]\n\n");
  printf("Receiver usage: flute [-a:str] [-A] [-b:int] [-B:str] [-c:int] "
         "[-d:str] [-D:ull]\n");
  printf("                      [-E] [-F:str,str,...] [-h] [-i:str]");
  printf(" [-I:str]");
  printf(" [-m:str]");
  printf(" [-M]\n");
  printf("                      [-N] [-o:ull]");
  printf(" [-p:int] [-P:float,float]");
  printf(" [-R:str]\n");
  printf("                      [-s:str] [-t:ull] [-U] [-v:int] [-V:str] "
         "[-w:int] [-W]\n\n");
  printf("Common options:\n\n");
  printf("   -a:str           Address family [IPv4 or IPv6], default: IPv4\n");
  printf("   -d:str           SDP file (start/join FLUTE session based on SDP "
         "file),\n");
  printf("                    default: no\n");
  printf("   -h               Print this help\n");
  printf(
      "   -i:str           Local interface to bind to, default: INADDR_ANY\n");
  printf("   -m:str           IPv4 or IPv6 address for base channel,\n");
  printf("                    default: %s or %s\n", "226.10.40.1", "ff1a::1");
  printf("   -p:int           Port number for base channel, default: %s\n",
         "4001");
  printf("   -P[:float,float] Simulate packet losses, default packet loss\n");
  printf("                    percentages: %.1f,%.1f\n", (float)5, (float)50);
  printf(
      "   -S               Act as sender, send data; otherwise receive data\n");
  printf("   -t:ull           TSI for the session, default: %i\n", 0);
  printf("   -U               Address type is unicast, default: multicast\n");
  printf("   -v:int           Log verbosity level [0 = No output, 1 = File "
         "level,\n");
  printf("                    2 = 1 + percent, 3 = 2 + blocks, 4 = 3 + FDT], "
         "default: 1\n");
  printf("   -V:str           Print logs to 'str' file, default: print to "
         "stdout\n");
  printf(
      "   -w:int           Congestion control scheme [0 = Null, 1 = RLC],\n");
  printf("                    default: %i; the number of channels, defined by "
         "-c option,\n",
         0);
  printf("                    are used with both schemes and bitrate of each "
         "channel is\n");
  printf("                    set according to RLC rules\n");
  printf("   -W               File table output mode. In receiver this work "
         "only with\n");
  printf("                    -A option\n\n");
  printf("Sender options:\n\n");
  printf("   -B:str           Base directory for files or directories to be "
         "sent,\n");
  printf("                    default: working directory\n");
  printf("   -c:int           Number of used channels, default: %i\n", 1);
  printf("   -C               Continuous transmission, default: not used\n");
  printf(
      "   -D:ull           Duration of the session in seconds, default: %i\n",
      604800);
  printf("   -e:int           FEC-OTI for file objects\n");
  printf("                    [0 = FEC-OTI in FDT, 1 = FEC-OTI in EXT_FTI], "
         "default: 0\n");
  printf("   -f:str           FDT file (send based on FDT), default: %s\n",
         "fdt.xml");
  printf("   -F:str,str,...   Files or directories to be sent. Given base "
         "directory is\n");
  printf("                    same for all entries.\n");
  printf(
      "   -G               Calculate session size, but do not send anything\n");
  printf("   -H               Use Half-word (when used, TSI field can be 16, "
         "32 or 48\n");
  printf("                    bits long and TOI field can be 16, 32, 48 or 64 "
         "bits\n");
  printf("                    long), default: not used\n");
  printf("   -k:int           Send a Complete FDT in the beginning of the "
         "session\n");
  printf("                    [0 = No, 1 = Yes, 2 = Yes, only Complete FDT], "
         "default: 0\n");
  printf("   -l:int           Encoding symbol length in bytes, default: %i\n",
         1428);
  printf("   -L:int           Maximum source block length in multiple of "
         "encoding\n");
  printf("                    symbols, default: %i\n", 64);
  printf("   -n:int           Number of transmissions, default: %i\n", 1);
  printf("   -q:int           Send session close packets [0 = No, 1 = Yes], "
         "default: 1\n");
  printf("   -r:int           Transmission rate at base channel in kbits/s, "
         "default: %i\n",
         250);
  printf("   -R[:str]         Save configuration to a file, default: %s\n",
         "flute.conf");
  printf("   -T:int           Time To Live or Hop Limit for the session, "
         "default: %i\n",
         1);
  printf("   -x:int           FEC Encoding [0 = Null, 1 = Simple XOR, 2 = "
         "Reed-Solomon\n");
  printf(
      "                    (old I-D) 3 = Reed-Solomon (new I-D), default: %i\n",
      0);
  printf("   -X:int           FEC ratio percent, default: %i\n", 50);
  printf("   -z:int           Encode content [0 = no, 1 = ZLIB FDT,\n");
  printf("                    2 = ZLIB FDT and GZIP files,\n");
  printf("                    3 = PAD files], default: 0\n");
  printf("   -Z               Optimize transmission rate (use more CPU)\n\n");
  printf("Receiver options:\n\n");
  printf("   -A               Receive files automatically\n");
  printf("   -b:int           Receiver's memory consumption [0 = high, 1 = "
         "medium,\n");
  printf("                    2 = low], default: 1\n");
  printf("   -B:str           Base directory for downloaded files,\n");
  printf("                    default: %s\n", "flute-downloads");
  printf("   -c:int           Maximum number of channels, default: %i\n", 1);
  printf("   -D:ull           Reveiver will quit after this time (in seconds) "
         "if no\n");
  printf(
      "                    packets is received from the session, default: %i\n",
      3600);
  printf("   -E               Accept expired FDT Instances\n");
  printf("   -F:str,str,...   Files to be received\n");
  printf("   -I:str           Local interface name for IPv6 multicast join, "
         "use for\n");
  printf("                    example 'ifconfig' command to see interface "
         "names;\n");
  printf("                    otherwise OS default\n");
  printf("   -M               Use Source-Specific Multicast, default: no\n");
  printf("   -N               Name incomplete objects after the session has "
         "ended\n");
  printf("   -o:ull           TOI for the object to be received\n");
  printf("   -R[:str]         Use HTTP file repair with given config file, "
         "default:\n");
  printf("                    %s\n", "apd.xml");
  printf("   -s:str           Source IPv4 or IPv6 address of this session. If "
         "not set,\n");
  printf("                    receiver locks to the first IP address found "
         "from the\n");
  printf("                    FLUTE packets.\n");
  printf("\nExample use cases:\n\n");
  printf("1. Send a file or directory n times\n\n\tflute -S -m:224.1.1.1 "
         "-p:4000 -t:2 -r:100 -F:files/flute-draft.txt\n");
  printf("\t      -n:2\n\n");
  printf("2. Send a file or directory in a loop\n\n\tflute -S -m:224.1.1.1 "
         "-p:4000 -t:2 -r:100 -F:files/flute-draft.txt\n");
  printf("\t      -C\n\n");
  printf("3. Send files defined in an FDT file\n\n\tflute -S -m:224.1.1.1 "
         "-p:4000 -t:2 -r:100 -f:fdt2.xml\n\n");
  printf("4. Send files defined in an FDT file in a loop\n\n\tflute -S "
         "-m:224.1.1.1 -p:4000 -t:2 -r:100 -f:fdt2.xml -C\n\n");
  printf("5. Send using unicast\n\n\tflute -S -U -m:1.2.3.4 -p:4000 -t:2 "
         "-r:100 -f:fdt2.xml -C\n\n");
  printf("6. Receive one object\n\n\tflute -m:224.1.1.1 -p:4000 -t:2 "
         "-s:2.2.2.2 -o:1\n\n");
  printf("7. Receive file(s) defined by file name(s)\n\n\tflute -m:224.1.1.1 "
         "-p:4000 -t:2 -s:2.2.2.2\n");
  printf("\t      -F:files/flute-man.txt,flute-draft.txt\n\n");
  printf("8. Receive file(s) defined by wild card option\n\n\tflute "
         "-m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2 -F:*.jpg\n\n");
  printf("9. Receive file(s) with User Interface\n\n\tflute -m:224.1.1.1 "
         "-p:4000 -t:2 -s:2.2.2.2\n\n");
  printf("10. Receive file(s) automatically from session\n\n\tflute -A "
         "-m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\n\n");
  printf(
      "11. Receive using unicast\n\n\tflute -A -U -p:4000 -t:2 -s:2.2.2.2\n\n");
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0xef6(%rip),%rsi
lea    0xef3(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xef3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf27(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf63(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf7e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfb1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfe3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x101a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1022(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1061(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1091(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1088(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10c8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10fa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x112a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1169(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1167(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x102f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x117d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11e5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1209(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1243(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x127d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfbf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x126f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12a8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12e0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1312(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1348(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1379(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf5d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1385(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13b3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13ec(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x141f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1457(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1492(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14c2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14f9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1530(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1566(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x159d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15d4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15dc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x161e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1669(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16a5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16bd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16d6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1718(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1725(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1769(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1795(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1791(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x178d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1786(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x179c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17a6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17e7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x181f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x185d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1870(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1887(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18be(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18ec(%rip),%rdi
lea    0x190c(%rip),%rsi
lea    0x1911(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x190b(%rip),%rdi
lea    0x1943(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x193a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x196d(%rip),%rdi
movsd  0xac8(%rip),%xmm0
movsd  0xac8(%rip),%xmm1
mov    $0x2,%al
call   1030 <printf@plt>
lea    0x197b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19b3(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19d9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a0c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a47(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a88(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ac2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1af8(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b38(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b79(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b9b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1bda(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1bec(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1bf0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c2b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c4d(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1c74(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ca6(%rip),%rdi
mov    $0x93a80,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1cd8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1cf8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1d38(%rip),%rdi
lea    0x1d70(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1d6a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1daa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1dc7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1dff(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1e3e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1e7a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1e9a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ed5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1f16(%rip),%rdi
mov    $0x594,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1f45(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1f80(%rip),%rdi
mov    $0x40,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1f97(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1fbe(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ffe(%rip),%rdi
mov    $0xfa,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x203a(%rip),%rdi
lea    0x2072(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x206f(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x20a8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x20e8(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x211f(%rip),%rdi
mov    $0x32,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2140(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x216d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2191(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x21b3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x21e5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x21eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x220e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x224a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2266(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2292(%rip),%rdi
lea    0x22ac(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x22ae(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x22d8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2315(%rip),%rdi
mov    $0xe10,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2349(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x236d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2389(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x23c6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2400(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x241c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x244e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2489(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x24b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x24ef(%rip),%rdi
lea    0x2500(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x24fa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x253a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2577(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x258d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2595(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x25f1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x25f1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x264f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x264d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x269e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x26fc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2742(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x277e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x27c9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x27eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x2844(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x288c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x28df(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rbx
lea    0xed8(%rip),%rdi
lea    0xee9(%rip),%rsi
lea    0xee6(%rip),%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1450(%rip),%rdi
call   1030 <puts@plt>
lea    0x1485(%rip),%rdi
call   1030 <puts@plt>
lea    0x14c2(%rip),%rdi
call   1030 <puts@plt>
lea    0x14de(%rip),%rdi
call   1030 <puts@plt>
lea    0x1512(%rip),%rdi
call   1030 <puts@plt>
lea    0x1545(%rip),%rdi
call   1030 <puts@plt>
lea    0x157d(%rip),%rdi
call   1030 <puts@plt>
lea    0x1586(%rip),%rdi
call   1030 <puts@plt>
lea    0x15c6(%rip),%rdi
call   1030 <puts@plt>
lea    0x1a16(%rip),%rbx
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x15e8(%rip),%rdi
call   1030 <puts@plt>
lea    0x1629(%rip),%rdi
call   1030 <puts@plt>
lea    0x165c(%rip),%rdi
call   1030 <puts@plt>
lea    0x168d(%rip),%rdi
call   1030 <puts@plt>
lea    0x16cd(%rip),%rdi
call   1030 <puts@plt>
lea    0x16cc(%rip),%rdi
call   1030 <puts@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x16e9(%rip),%rdi
call   1030 <puts@plt>
lea    0x171f(%rip),%rdi
call   1030 <puts@plt>
lea    0x1753(%rip),%rdi
call   1030 <puts@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x177e(%rip),%rdi
call   1030 <puts@plt>
lea    0x17b9(%rip),%rdi
call   1030 <puts@plt>
lea    0x17f4(%rip),%rdi
call   1030 <puts@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x17ed(%rip),%rdi
call   1030 <puts@plt>
lea    0x1827(%rip),%rdi
call   1030 <puts@plt>
lea    0x1860(%rip),%rdi
call   1030 <puts@plt>
lea    0x1893(%rip),%rdi
call   1030 <puts@plt>
lea    0x18ca(%rip),%rdi
call   1030 <puts@plt>
lea    0x18fc(%rip),%rdi
call   1030 <puts@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x1913(%rip),%rdi
call   1030 <puts@plt>
lea    0x1942(%rip),%rdi
call   1030 <puts@plt>
lea    0x197c(%rip),%rdi
call   1030 <puts@plt>
lea    0x19b0(%rip),%rdi
call   1030 <puts@plt>
lea    0x19e9(%rip),%rdi
call   1030 <puts@plt>
lea    0x1a25(%rip),%rdi
call   1030 <puts@plt>
lea    0x1a56(%rip),%rdi
call   1030 <puts@plt>
lea    0x1a8e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1ac6(%rip),%rdi
call   1030 <puts@plt>
lea    0x1afd(%rip),%rdi
call   1030 <puts@plt>
lea    0x1b35(%rip),%rdi
call   1030 <puts@plt>
lea    0x1b6d(%rip),%rdi
call   1030 <puts@plt>
lea    0x1b76(%rip),%rdi
call   1030 <puts@plt>
lea    0x1bb9(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c05(%rip),%rdi
call   1030 <puts@plt>
lea    0xcbf(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1c34(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c4e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c91(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c9f(%rip),%rdi
call   1030 <puts@plt>
lea    0xca7(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xcd3(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xccf(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1cba(%rip),%rdi
call   1030 <puts@plt>
lea    0xcbf(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1ba5(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1c98(%rip),%rdi
call   1030 <puts@plt>
lea    0x1c96(%rip),%rdi
call   1030 <puts@plt>
lea    0x1cd8(%rip),%rdi
call   1030 <puts@plt>
lea    0x1cdd(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d12(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d51(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d65(%rip),%rdi
call   1030 <puts@plt>
lea    0x1d7d(%rip),%rdi
call   1030 <puts@plt>
lea    0x1db5(%rip),%rdi
call   1030 <puts@plt>
lea    0xc5b(%rip),%rdi
lea    0xc7b(%rip),%rsi
lea    0xc80(%rip),%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xc7a(%rip),%rdi
lea    0xcb2(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1db3(%rip),%rdi
call   1030 <puts@plt>
lea    0xc9d(%rip),%rdi
movsd  0xb44(%rip),%xmm0
movsd  0xb44(%rip),%xmm1
mov    $0x2,%al
call   1040 <printf@plt>
lea    0x1dc9(%rip),%rdi
call   1030 <puts@plt>
lea    0xc9f(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1df2(%rip),%rdi
call   1030 <puts@plt>
lea    0x1e26(%rip),%rdi
call   1030 <puts@plt>
lea    0x1e62(%rip),%rdi
call   1030 <puts@plt>
lea    0x1ea4(%rip),%rdi
call   1030 <puts@plt>
lea    0x1edf(%rip),%rdi
call   1030 <puts@plt>
lea    0xc89(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1f06(%rip),%rdi
call   1030 <puts@plt>
lea    0x1f48(%rip),%rdi
call   1030 <puts@plt>
lea    0x1f6b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1fab(%rip),%rdi
call   1030 <puts@plt>
lea    0x1fbe(%rip),%rdi
call   1030 <puts@plt>
lea    0x1fc3(%rip),%rdi
call   1030 <puts@plt>
lea    0x1fff(%rip),%rdi
call   1030 <puts@plt>
lea    0xc75(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x200f(%rip),%rdi
call   1030 <puts@plt>
lea    0xc90(%rip),%rdi
mov    $0x93a80,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x202f(%rip),%rdi
call   1030 <puts@plt>
lea    0x2050(%rip),%rdi
call   1030 <puts@plt>
lea    0xcaa(%rip),%rdi
lea    0xce2(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x207c(%rip),%rdi
call   1030 <puts@plt>
lea    0x20bd(%rip),%rdi
call   1030 <puts@plt>
lea    0x20db(%rip),%rdi
call   1030 <puts@plt>
lea    0x2114(%rip),%rdi
call   1030 <puts@plt>
lea    0x2154(%rip),%rdi
call   1030 <puts@plt>
lea    0x2191(%rip),%rdi
call   1030 <puts@plt>
lea    0x21b2(%rip),%rdi
call   1030 <puts@plt>
lea    0x21ee(%rip),%rdi
call   1030 <puts@plt>
lea    0xc7c(%rip),%rdi
mov    $0x594,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x221d(%rip),%rdi
call   1030 <puts@plt>
lea    0xc9f(%rip),%rdi
mov    $0x40,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xcb6(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2233(%rip),%rdi
call   1030 <puts@plt>
lea    0xcd1(%rip),%rdi
mov    $0xfa,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd0d(%rip),%rdi
lea    0xd45(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd42(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2239(%rip),%rdi
call   1030 <puts@plt>
lea    0xd6f(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xda6(%rip),%rdi
mov    $0x32,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x2257(%rip),%rdi
call   1030 <puts@plt>
lea    0x2285(%rip),%rdi
call   1030 <puts@plt>
lea    0x22aa(%rip),%rdi
call   1030 <puts@plt>
lea    0x22cd(%rip),%rdi
call   1030 <puts@plt>
lea    0x2300(%rip),%rdi
call   1030 <puts@plt>
lea    0x2307(%rip),%rdi
call   1030 <puts@plt>
lea    0x232b(%rip),%rdi
call   1030 <puts@plt>
lea    0x2368(%rip),%rdi
call   1030 <puts@plt>
lea    0x2385(%rip),%rdi
call   1030 <puts@plt>
lea    0xd5b(%rip),%rdi
lea    0xd75(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xd77(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x238a(%rip),%rdi
call   1030 <puts@plt>
lea    0xd95(%rip),%rdi
mov    $0xe10,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x23b5(%rip),%rdi
call   1030 <puts@plt>
lea    0x23da(%rip),%rdi
call   1030 <puts@plt>
lea    0x23f7(%rip),%rdi
call   1030 <puts@plt>
lea    0x2435(%rip),%rdi
call   1030 <puts@plt>
lea    0x2470(%rip),%rdi
call   1030 <puts@plt>
lea    0x248d(%rip),%rdi
call   1030 <puts@plt>
lea    0x24c0(%rip),%rdi
call   1030 <puts@plt>
lea    0x24fc(%rip),%rdi
call   1030 <puts@plt>
lea    0x2526(%rip),%rdi
call   1030 <puts@plt>
lea    0xd5d(%rip),%rdi
lea    0xd6e(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x254f(%rip),%rdi
call   1030 <puts@plt>
lea    0x2590(%rip),%rdi
call   1030 <puts@plt>
lea    0x25ce(%rip),%rdi
call   1030 <puts@plt>
lea    0x25e5(%rip),%rdi
call   1030 <puts@plt>
lea    0x25ee(%rip),%rdi
call   1030 <puts@plt>
lea    0x264b(%rip),%rdi
call   1030 <puts@plt>
lea    0x264c(%rip),%rdi
call   1030 <puts@plt>
lea    0x26ab(%rip),%rdi
call   1030 <puts@plt>
lea    0x26aa(%rip),%rdi
call   1030 <puts@plt>
lea    0x26fc(%rip),%rdi
call   1030 <puts@plt>
lea    0x275b(%rip),%rdi
call   1030 <puts@plt>
lea    0x27a2(%rip),%rdi
call   1030 <puts@plt>
lea    0x27df(%rip),%rdi
call   1030 <puts@plt>
lea    0x282b(%rip),%rdi
call   1030 <puts@plt>
lea    0x284e(%rip),%rdi
call   1030 <puts@plt>
lea    0x28a8(%rip),%rdi
call   1030 <puts@plt>
lea    0x28f1(%rip),%rdi
call   1030 <puts@plt>
lea    0x2945(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@.str = [24 x i8] c"\0AFLUTE Version %s, %s\0A\0A\00"
@.str.1 = [4 x i8] c"1.7\00"
@.str.2 = [14 x i8] c"March 2, 2007\00"
@.str.3 = [66 x i8] c" Copyright (c) 2003-2007 TUT - Tampere University of Technology\0A\00"
@.str.4 = [74 x i8] c" main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi\0A\00"
@.str.5 = [41 x i8] c" web site: http://www.atm.tut.fi/mad/\0A\0A\00"
@.str.6 = [65 x i8] c" This is free software, and you are welcome to redistribute it\0A\00"
@.str.7 = [64 x i8] c" under certain conditions; See the GNU General Public License\0A\00"
@.str.8 = [69 x i8] c" as published by the Free Software Foundation, version 2 or later,\0A\00"
@.str.9 = [22 x i8] c" for more details.\0A\0A\00"
@.str.10 = [77 x i8] c" * mad_rlc.c & mad_rlc.h -- Portions of code derived from MCLv3 library by\0A\00"
@.str.11 = [62 x i8] c" * Vincent Roca et al. (http://planete-bcast.inrialpes.fr/)\0A\00"
@.str.12 = [5 x i8] c" *\0A\00"
@.str.13 = [78 x i8] c" * Copyright (c) 1999-2004 INRIA - Universite Paris 6 - All rights reserved\0A\00"
@.str.14 = [64 x i8] c" * (main author: Julien Laboure - julien.laboure@inrialpes.fr\0A\00"
@.str.15 = [62 x i8] c" * Vincent Roca - vincent.roca@inrialpes.fr)\0A\0A\00"
@.str.16 = [77 x i8] c" * fec.c & fec.h -- forward error correction based on Vandermonde matrices\0A\00"
@.str.17 = [12 x i8] c" * 980624\0A\00"
@.str.18 = [50 x i8] c" * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)\0A\00"
@.str.19 = [67 x i8] c" * Portions derived from code by Phil Karn (karn@ka9q.ampr.org),\0A\00"
@.str.20 = [65 x i8] c" * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and\0A\00"
@.str.21 = [64 x i8] c" * Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995\0A\00"
@.str.22 = [72 x i8] c" * Redistribution and use in source and binary forms, with or without\0A\00"
@.str.23 = [72 x i8] c" * modification, are permitted provided that the following conditions\0A\00"
@.str.24 = [14 x i8] c" * are met:\0A\00"
@.str.25 = [71 x i8] c" * 1. Redistributions of source code must retain the above copyright\0A\00"
@.str.26 = [70 x i8] c" * notice, this list of conditions and the following disclaimer.\0A\00"
@.str.27 = [64 x i8] c" * 2. Redistributions in binary form must reproduce the above\0A\00"
@.str.28 = [68 x i8] c" * copyright notice, this list of conditions and the following\0A\00"
@.str.29 = [63 x i8] c" * disclaimer in the documentation and/or other materials\0A\00"
@.str.30 = [40 x i8] c" * provided with the distribution.\0A\00"
@.str.31 = [60 x i8] c" * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\0A\00"
@.str.32 = [71 x i8] c" * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\0A\00"
@.str.33 = [65 x i8] c" * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\0A\00"
@.str.34 = [70 x i8] c" * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS\0A\00"
@.str.35 = [73 x i8] c" * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\0A\00"
@.str.36 = [62 x i8] c" * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\0A\00"
@.str.37 = [69 x i8] c" * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\0A\00"
@.str.38 = [69 x i8] c" * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\0A\00"
@.str.39 = [68 x i8] c" * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\0A\00"
@.str.40 = [69 x i8] c" * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\0A\00"
@.str.41 = [69 x i8] c" * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\0A\00"
@.str.42 = [22 x i8] c" * OF SUCH DAMAGE.\0A\0A\00"
@.str.43 = [80 x i8] c"Sender usage: flute [-a:str] [-B:str] [-c:int] [-C] [-d:str] [-D:ull] [-e:int]\0A\00"
@.str.44 = [89 x i8] c" [-f:str] [-F:str,str,...] [-G] [-h] [-H] [-i:str] [-k:int] [-l:int]\0A\00"
@.str.45 = [74 x i8] c" [-L:int] [-m:str] [-n:int] [-p:int] [-P:float,float]\0A\00"
@.str.46 = [38 x i8] c" [-q:int] [-r:int]\00"
@.str.47 = [39 x i8] c" [-R:str] [-S] [-t:ull] [-T:int] [-U]\0A\00"
@.str.48 = [80 x i8] c" [-v:int] [-V:str] [-w:int] [-W] [-x:int] [-X:int] [-z:int]\0A\00"
@.str.49 = [27 x i8] c" [-Z]\0A\0A\00"
@.str.50 = [82 x i8] c"Receiver usage: flute [-a:str] [-A] [-b:int] [-B:str] [-c:int] [-d:str] [-D:ull]\0A\00"
@.str.51 = [58 x i8] c" [-E] [-F:str,str,...] [-h] [-i:str]\00"
@.str.52 = [10 x i8] c" [-I:str]\00"
@.str.53 = [10 x i8] c" [-m:str]\00"
@.str.54 = [7 x i8] c" [-M]\0A\00"
@.str.55 = [36 x i8] c" [-N] [-o:ull]\00"
@.str.56 = [27 x i8] c" [-p:int] [-P:float,float]\00"
@.str.57 = [11 x i8] c" [-R:str]\0A\00"
@.str.58 = [79 x i8] c" [-s:str] [-t:ull] [-U] [-v:int] [-V:str] [-w:int] [-W]\0A\0A\00"
@.str.59 = [18 x i8] c"Common options:\0A\0A\00"
@.str.60 = [66 x i8] c" -a:str Address family [IPv4 or IPv6], default: IPv4\0A\00"
@.str.61 = [76 x i8] c" -d:str SDP file (start/join FLUTE session based on SDP file),\0A\00"
@.str.62 = [33 x i8] c" default: no\0A\00"
@.str.63 = [37 x i8] c" -h Print this help\0A\00"
@.str.64 = [69 x i8] c" -i:str Local interface to bind to, default: INADDR_ANY\0A\00"
@.str.65 = [60 x i8] c" -m:str IPv4 or IPv6 address for base channel,\0A\00"
@.str.66 = [39 x i8] c" default: %s or %s\0A\00"
@.str.67 = [12 x i8] c"226.10.40.1\00"
@.str.68 = [8 x i8] c"ff1a::1\00"
@.str.69 = [63 x i8] c" -p:int Port number for base channel, default: %s\0A\00"
@.str.70 = [5 x i8] c"4001\00"
@.str.71 = [65 x i8] c" -P[:float,float] Simulate packet losses, default packet loss\0A\00"
@.str.72 = [44 x i8] c" percentages: %.1f,%.1f\0A\00"
@.str.73 = [70 x i8] c" -S Act as sender, send data; otherwise receive data\0A\00"
@.str.74 = [54 x i8] c" -t:ull TSI for the session, default: %i\0A\00"
@.str.75 = [65 x i8] c" -U Address type is unicast, default: multicast\0A\00"
@.str.76 = [73 x i8] c" -v:int Log verbosity level [0 = No output, 1 = File level,\0A\00"
@.str.77 = [79 x i8] c" 2 = 1 + percent, 3 = 2 + blocks, 4 = 3 + FDT], default: 1\0A\00"
@.str.78 = [72 x i8] c" -V:str Print logs to 'str' file, default: print to stdout\0A\00"
@.str.79 = [68 x i8] c" -w:int Congestion control scheme [0 = Null, 1 = RLC],\0A\00"
@.str.80 = [80 x i8] c" default: %i; the number of channels, defined by -c option,\0A\00"
@.str.81 = [79 x i8] c" are used with both schemes and bitrate of each channel is\0A\00"
@.str.82 = [48 x i8] c" set according to RLC rules\0A\00"
@.str.83 = [77 x i8] c" -W File table output mode. In receiver this work only with\0A\00"
@.str.84 = [32 x i8] c" -A option\0A\0A\00"
@.str.85 = [18 x i8] c"Sender options:\0A\0A\00"
@.str.86 = [73 x i8] c" -B:str Base directory for files or directories to be sent,\0A\00"
@.str.87 = [48 x i8] c" default: working directory\0A\00"
@.str.88 = [58 x i8] c" -c:int Number of used channels, default: %i\0A\00"
@.str.89 = [64 x i8] c" -C Continuous transmission, default: not used\0A\00"
@.str.90 = [69 x i8] c" -D:ull Duration of the session in seconds, default: %i\0A\00"
@.str.91 = [46 x i8] c" -e:int FEC-OTI for file objects\0A\00"
@.str.92 = [78 x i8] c" [0 = FEC-OTI in FDT, 1 = FEC-OTI in EXT_FTI], default: 0\0A\00"
@.str.93 = [63 x i8] c" -f:str FDT file (send based on FDT), default: %s\0A\00"
@.str.94 = [8 x i8] c"fdt.xml\00"
@.str.95 = [78 x i8] c" -F:str,str,... Files or directories to be sent. Given base directory is\0A\00"
@.str.96 = [43 x i8] c" same for all entries.\0A\00"
@.str.97 = [70 x i8] c" -G Calculate session size, but do not send anything\0A\00"
@.str.98 = [77 x i8] c" -H Use Half-word (when used, TSI field can be 16, 32 or 48\0A\00"
@.str.99 = [74 x i8] c" bits long and TOI field can be 16, 32, 48 or 64 bits\0A\00"
@.str.100 = [46 x i8] c" long), default: not used\0A\00"
@.str.101 = [73 x i8] c" -k:int Send a Complete FDT in the beginning of the session\0A\00"
@.str.102 = [79 x i8] c" [0 = No, 1 = Yes, 2 = Yes, only Complete FDT], default: 0\0A\00"
@.str.103 = [66 x i8] c" -l:int Encoding symbol length in bytes, default: %i\0A\00"
@.str.104 = [73 x i8] c" -L:int Maximum source block length in multiple of encoding\0A\00"
@.str.105 = [42 x i8] c" symbols, default: %i\0A\00"
@.str.106 = [58 x i8] c" -n:int Number of transmissions, default: %i\0A\00"
@.str.107 = [78 x i8] c" -q:int Send session close packets [0 = No, 1 = Yes], default: 1\0A\00"
@.str.108 = [79 x i8] c" -r:int Transmission rate at base channel in kbits/s, default: %i\0A\00"
@.str.109 = [63 x i8] c" -R[:str] Save configuration to a file, default: %s\0A\00"
@.str.110 = [11 x i8] c"flute.conf\00"
@.str.111 = [76 x i8] c" -T:int Time To Live or Hop Limit for the session, default: %i\0A\00"
@.str.112 = [78 x i8] c" -x:int FEC Encoding [0 = Null, 1 = Simple XOR, 2 = Reed-Solomon\0A\00"
@.str.113 = [71 x i8] c" (old I-D) 3 = Reed-Solomon (new I-D), default: %i\0A\00"
@.str.114 = [52 x i8] c" -X:int FEC ratio percent, default: %i\0A\00"
@.str.115 = [59 x i8] c" -z:int Encode content [0 = no, 1 = ZLIB FDT,\0A\00"
@.str.116 = [50 x i8] c" 2 = ZLIB FDT and GZIP files,\0A\00"
@.str.117 = [48 x i8] c" 3 = PAD files], default: 0\0A\00"
@.str.118 = [64 x i8] c" -Z Optimize transmission rate (use more CPU)\0A\0A\00"
@.str.119 = [20 x i8] c"Receiver options:\0A\0A\00"
@.str.120 = [49 x i8] c" -A Receive files automatically\0A\00"
@.str.121 = [74 x i8] c" -b:int Receiver's memory consumption [0 = high, 1 = medium,\0A\00"
@.str.122 = [42 x i8] c" 2 = low], default: 1\0A\00"
@.str.123 = [58 x i8] c" -B:str Base directory for downloaded files,\0A\00"
@.str.124 = [33 x i8] c" default: %s\0A\00"
@.str.125 = [16 x i8] c"flute-downloads\00"
@.str.126 = [61 x i8] c" -c:int Maximum number of channels, default: %i\0A\00"
@.str.127 = [75 x i8] c" -D:ull Reveiver will quit after this time (in seconds) if no\0A\00"
@.str.128 = [71 x i8] c" packets is received from the session, default: %i\0A\00"
@.str.129 = [50 x i8] c" -E Accept expired FDT Instances\0A\00"
@.str.130 = [42 x i8] c" -F:str,str,... Files to be received\0A\00"
@.str.131 = [75 x i8] c" -I:str Local interface name for IPv6 multicast join, use for\0A\00"
@.str.132 = [72 x i8] c" example 'ifconfig' command to see interface names;\0A\00"
@.str.133 = [42 x i8] c" otherwise OS default\0A\00"
@.str.134 = [64 x i8] c" -M Use Source-Specific Multicast, default: no\0A\00"
@.str.135 = [73 x i8] c" -N Name incomplete objects after the session has ended\0A\00"
@.str.136 = [55 x i8] c" -o:ull TOI for the object to be received\0A\00"
@.str.137 = [75 x i8] c" -R[:str] Use HTTP file repair with given config file, default:\0A\00"
@.str.138 = [24 x i8] c" %s\0A\00"
@.str.139 = [8 x i8] c"apd.xml\00"
@.str.140 = [78 x i8] c" -s:str Source IPv4 or IPv6 address of this session. If not set,\0A\00"
@.str.141 = [75 x i8] c" receiver locks to the first IP address found from the\0A\00"
@.str.142 = [36 x i8] c" FLUTE packets.\0A\00"
@.str.143 = [22 x i8] c"\0AExample use cases:\0A\0A\00"
@.str.144 = [106 x i8] c"1. Send a file or directory n times\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -F:files/flute-draft.txt\0A\00"
@.str.145 = [14 x i8] c"\09 -n:2\0A\0A\00"
@.str.146 = [108 x i8] c"2. Send a file or directory in a loop\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -F:files/flute-draft.txt\0A\00"
@.str.147 = [12 x i8] c"\09 -C\0A\0A\00"
@.str.148 = [95 x i8] c"3. Send files defined in an FDT file\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -f:fdt2.xml\0A\0A\00"
@.str.149 = [108 x i8] c"4. Send files defined in an FDT file in a loop\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -f:fdt2.xml -C\0A\0A\00"
@.str.150 = [84 x i8] c"5. Send using unicast\0A\0A\09flute -S -U -m:1.2.3.4 -p:4000 -t:2 -r:100 -f:fdt2.xml -C\0A\0A\00"
@.str.151 = [74 x i8] c"6. Receive one object\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2 -o:1\0A\0A\00"
@.str.152 = [89 x i8] c"7. Receive file(s) defined by file name(s)\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\0A\00"
@.str.153 = [48 x i8] c"\09 -F:files/flute-man.txt,flute-draft.txt\0A\0A\00"
@.str.154 = [103 x i8] c"8. Receive file(s) defined by wild card option\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2 -F:*.jpg\0A\0A\00"
@.str.155 = [86 x i8] c"9. Receive file(s) with User Interface\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\0A\0A\00"
@.str.156 = [97 x i8] c"10. Receive file(s) automatically from session\0A\0A\09flute -A -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\0A\0A\00"
@.str.157 = [66 x i8] c"11. Receive using unicast\0A\0A\09flute -A -U -p:4000 -t:2 -s:2.2.2.2\0A\0A\00"
define void @usage() {
%1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0))
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.3, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.4, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.5, i64 0, i64 0))
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.6, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.7, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.8, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.9, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.10, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.11, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.13, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.14, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.15, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.16, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.17, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.18, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.19, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.20, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.21, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.22, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.24, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.25, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.26, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.27, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.28, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.29, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.30, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.31, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.32, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.33, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.34, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.35, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.36, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.37, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.38, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.39, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.40, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.41, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.42, i64 0, i64 0))
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.43, i64 0, i64 0))
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.44, i64 0, i64 0))
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.45, i64 0, i64 0))
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.46, i64 0, i64 0))
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.47, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.48, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.49, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.50, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.51, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.52, i64 0, i64 0))
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.53, i64 0, i64 0))
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.54, i64 0, i64 0))
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.55, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.56, i64 0, i64 0))
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.57, i64 0, i64 0))
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.58, i64 0, i64 0))
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0))
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.60, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.61, i64 0, i64 0))
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.62, i64 0, i64 0))
%66 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.63, i64 0, i64 0))
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.64, i64 0, i64 0))
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.65, i64 0, i64 0))
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.66, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.67, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.68, i64 0, i64 0))
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.69, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i64 0, i64 0))
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.71, i64 0, i64 0))
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.72, i64 0, i64 0), double 5.000000e+00, double 5.000000e+01)
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.73, i64 0, i64 0))
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.74, i64 0, i64 0), i32 0)
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.75, i64 0, i64 0))
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.76, i64 0, i64 0))
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.77, i64 0, i64 0))
%78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.78, i64 0, i64 0))
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.79, i64 0, i64 0))
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.80, i64 0, i64 0), i32 0)
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.81, i64 0, i64 0))
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.82, i64 0, i64 0))
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.83, i64 0, i64 0))
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.84, i64 0, i64 0))
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.85, i64 0, i64 0))
%86 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.86, i64 0, i64 0))
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.87, i64 0, i64 0))
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.88, i64 0, i64 0), i32 1)
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.89, i64 0, i64 0))
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.90, i64 0, i64 0), i32 604800)
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.91, i64 0, i64 0))
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.92, i64 0, i64 0))
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.93, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.94, i64 0, i64 0))
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.95, i64 0, i64 0))
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.96, i64 0, i64 0))
%96 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.97, i64 0, i64 0))
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.98, i64 0, i64 0))
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.99, i64 0, i64 0))
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.100, i64 0, i64 0))
%100 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.101, i64 0, i64 0))
%101 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.102, i64 0, i64 0))
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.103, i64 0, i64 0), i32 1428)
%103 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.104, i64 0, i64 0))
%104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.105, i64 0, i64 0), i32 64)
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.106, i64 0, i64 0), i32 1)
%106 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.107, i64 0, i64 0))
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.108, i64 0, i64 0), i32 250)
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.109, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.110, i64 0, i64 0))
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.111, i64 0, i64 0), i32 1)
%110 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.112, i64 0, i64 0))
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.113, i64 0, i64 0), i32 0)
%112 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.114, i64 0, i64 0), i32 50)
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.115, i64 0, i64 0))
%114 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.116, i64 0, i64 0))
%115 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.117, i64 0, i64 0))
%116 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.118, i64 0, i64 0))
%117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.119, i64 0, i64 0))
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.120, i64 0, i64 0))
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.121, i64 0, i64 0))
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.122, i64 0, i64 0))
%121 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.123, i64 0, i64 0))
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.124, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.125, i64 0, i64 0))
%123 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.126, i64 0, i64 0), i32 1)
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.127, i64 0, i64 0))
%125 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.128, i64 0, i64 0), i32 3600)
%126 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.129, i64 0, i64 0))
%127 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.130, i64 0, i64 0))
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.131, i64 0, i64 0))
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.132, i64 0, i64 0))
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.133, i64 0, i64 0))
%131 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.134, i64 0, i64 0))
%132 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.135, i64 0, i64 0))
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.136, i64 0, i64 0))
%134 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.137, i64 0, i64 0))
%135 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.138, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.139, i64 0, i64 0))
%136 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.140, i64 0, i64 0))
%137 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.141, i64 0, i64 0))
%138 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.142, i64 0, i64 0))
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.143, i64 0, i64 0))
%140 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.144, i64 0, i64 0))
%141 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.145, i64 0, i64 0))
%142 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([108 x i8], [108 x i8]* @.str.146, i64 0, i64 0))
%143 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.147, i64 0, i64 0))
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.148, i64 0, i64 0))
%145 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([108 x i8], [108 x i8]* @.str.149, i64 0, i64 0))
%146 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([84 x i8], [84 x i8]* @.str.150, i64 0, i64 0))
%147 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.151, i64 0, i64 0))
%148 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.152, i64 0, i64 0))
%149 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.153, i64 0, i64 0))
%150 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.154, i64 0, i64 0))
%151 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.155, i64 0, i64 0))
%152 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.156, i64 0, i64 0))
%153 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.157, i64 0, i64 0))
%154 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@.str = [24 x i8] c"\0AFLUTE Version %s, %s\0A\0A\00"
@.str.1 = [4 x i8] c"1.7\00"
@.str.2 = [14 x i8] c"March 2, 2007\00"
@.str.46 = [38 x i8] c" [-q:int] [-r:int]\00"
@.str.51 = [58 x i8] c" [-E] [-F:str,str,...] [-h] [-i:str]\00"
@.str.52 = [10 x i8] c" [-I:str]\00"
@.str.53 = [10 x i8] c" [-m:str]\00"
@.str.55 = [36 x i8] c" [-N] [-o:ull]\00"
@.str.56 = [27 x i8] c" [-p:int] [-P:float,float]\00"
@.str.66 = [39 x i8] c" default: %s or %s\0A\00"
@.str.67 = [12 x i8] c"226.10.40.1\00"
@.str.68 = [8 x i8] c"ff1a::1\00"
@.str.69 = [63 x i8] c" -p:int Port number for base channel, default: %s\0A\00"
@.str.70 = [5 x i8] c"4001\00"
@.str.72 = [44 x i8] c" percentages: %.1f,%.1f\0A\00"
@.str.74 = [54 x i8] c" -t:ull TSI for the session, default: %i\0A\00"
@.str.80 = [80 x i8] c" default: %i; the number of channels, defined by -c option,\0A\00"
@.str.88 = [58 x i8] c" -c:int Number of used channels, default: %i\0A\00"
@.str.90 = [69 x i8] c" -D:ull Duration of the session in seconds, default: %i\0A\00"
@.str.93 = [63 x i8] c" -f:str FDT file (send based on FDT), default: %s\0A\00"
@.str.94 = [8 x i8] c"fdt.xml\00"
@.str.103 = [66 x i8] c" -l:int Encoding symbol length in bytes, default: %i\0A\00"
@.str.105 = [42 x i8] c" symbols, default: %i\0A\00"
@.str.106 = [58 x i8] c" -n:int Number of transmissions, default: %i\0A\00"
@.str.108 = [79 x i8] c" -r:int Transmission rate at base channel in kbits/s, default: %i\0A\00"
@.str.109 = [63 x i8] c" -R[:str] Save configuration to a file, default: %s\0A\00"
@.str.110 = [11 x i8] c"flute.conf\00"
@.str.111 = [76 x i8] c" -T:int Time To Live or Hop Limit for the session, default: %i\0A\00"
@.str.113 = [71 x i8] c" (old I-D) 3 = Reed-Solomon (new I-D), default: %i\0A\00"
@.str.114 = [52 x i8] c" -X:int FEC ratio percent, default: %i\0A\00"
@.str.124 = [33 x i8] c" default: %s\0A\00"
@.str.125 = [16 x i8] c"flute-downloads\00"
@.str.126 = [61 x i8] c" -c:int Maximum number of channels, default: %i\0A\00"
@.str.128 = [71 x i8] c" packets is received from the session, default: %i\0A\00"
@.str.138 = [24 x i8] c" %s\0A\00"
@.str.139 = [8 x i8] c"apd.xml\00"
@str = [65 x i8] c" Copyright (c) 2003-2007 TUT - Tampere University of Technology\00"
@str.158 = [73 x i8] c" main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi\00"
@str.159 = [40 x i8] c" web site: http://www.atm.tut.fi/mad/\0A\00"
@str.160 = [64 x i8] c" This is free software, and you are welcome to redistribute it\00"
@str.161 = [63 x i8] c" under certain conditions; See the GNU General Public License\00"
@str.162 = [68 x i8] c" as published by the Free Software Foundation, version 2 or later,\00"
@str.163 = [21 x i8] c" for more details.\0A\00"
@str.164 = [76 x i8] c" * mad_rlc.c & mad_rlc.h -- Portions of code derived from MCLv3 library by\00"
@str.165 = [61 x i8] c" * Vincent Roca et al. (http://planete-bcast.inrialpes.fr/)\00"
@str.167 = [77 x i8] c" * Copyright (c) 1999-2004 INRIA - Universite Paris 6 - All rights reserved\00"
@str.168 = [63 x i8] c" * (main author: Julien Laboure - julien.laboure@inrialpes.fr\00"
@str.169 = [61 x i8] c" * Vincent Roca - vincent.roca@inrialpes.fr)\0A\00"
@str.170 = [76 x i8] c" * fec.c & fec.h -- forward error correction based on Vandermonde matrices\00"
@str.171 = [11 x i8] c" * 980624\00"
@str.172 = [49 x i8] c" * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)\00"
@str.174 = [66 x i8] c" * Portions derived from code by Phil Karn (karn@ka9q.ampr.org),\00"
@str.175 = [64 x i8] c" * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and\00"
@str.176 = [63 x i8] c" * Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995\00"
@str.178 = [71 x i8] c" * Redistribution and use in source and binary forms, with or without\00"
@str.179 = [71 x i8] c" * modification, are permitted provided that the following conditions\00"
@str.180 = [13 x i8] c" * are met:\00"
@str.182 = [70 x i8] c" * 1. Redistributions of source code must retain the above copyright\00"
@str.183 = [69 x i8] c" * notice, this list of conditions and the following disclaimer.\00"
@str.184 = [63 x i8] c" * 2. Redistributions in binary form must reproduce the above\00"
@str.185 = [67 x i8] c" * copyright notice, this list of conditions and the following\00"
@str.186 = [62 x i8] c" * disclaimer in the documentation and/or other materials\00"
@str.187 = [39 x i8] c" * provided with the distribution.\00"
@str.188 = [4 x i8] c" *\00"
@str.189 = [59 x i8] c" * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\00"
@str.190 = [70 x i8] c" * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\00"
@str.191 = [64 x i8] c" * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\00"
@str.192 = [69 x i8] c" * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS\00"
@str.193 = [72 x i8] c" * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\00"
@str.194 = [61 x i8] c" * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\00"
@str.195 = [68 x i8] c" * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\00"
@str.196 = [68 x i8] c" * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\00"
@str.197 = [67 x i8] c" * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\00"
@str.198 = [68 x i8] c" * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\00"
@str.199 = [68 x i8] c" * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\00"
@str.200 = [21 x i8] c" * OF SUCH DAMAGE.\0A\00"
@str.201 = [79 x i8] c"Sender usage: flute [-a:str] [-B:str] [-c:int] [-C] [-d:str] [-D:ull] [-e:int]\00"
@str.202 = [88 x i8] c" [-f:str] [-F:str,str,...] [-G] [-h] [-H] [-i:str] [-k:int] [-l:int]\00"
@str.203 = [73 x i8] c" [-L:int] [-m:str] [-n:int] [-p:int] [-P:float,float]\00"
@str.204 = [38 x i8] c" [-R:str] [-S] [-t:ull] [-T:int] [-U]\00"
@str.205 = [79 x i8] c" [-v:int] [-V:str] [-w:int] [-W] [-x:int] [-X:int] [-z:int]\00"
@str.206 = [26 x i8] c" [-Z]\0A\00"
@str.207 = [81 x i8] c"Receiver usage: flute [-a:str] [-A] [-b:int] [-B:str] [-c:int] [-d:str] [-D:ull]\00"
@str.208 = [6 x i8] c" [-M]\00"
@str.209 = [10 x i8] c" [-R:str]\00"
@str.210 = [78 x i8] c" [-s:str] [-t:ull] [-U] [-v:int] [-V:str] [-w:int] [-W]\0A\00"
@str.211 = [17 x i8] c"Common options:\0A\00"
@str.212 = [65 x i8] c" -a:str Address family [IPv4 or IPv6], default: IPv4\00"
@str.213 = [75 x i8] c" -d:str SDP file (start/join FLUTE session based on SDP file),\00"
@str.214 = [32 x i8] c" default: no\00"
@str.215 = [36 x i8] c" -h Print this help\00"
@str.216 = [68 x i8] c" -i:str Local interface to bind to, default: INADDR_ANY\00"
@str.217 = [59 x i8] c" -m:str IPv4 or IPv6 address for base channel,\00"
@str.218 = [64 x i8] c" -P[:float,float] Simulate packet losses, default packet loss\00"
@str.219 = [69 x i8] c" -S Act as sender, send data; otherwise receive data\00"
@str.220 = [64 x i8] c" -U Address type is unicast, default: multicast\00"
@str.221 = [72 x i8] c" -v:int Log verbosity level [0 = No output, 1 = File level,\00"
@str.222 = [78 x i8] c" 2 = 1 + percent, 3 = 2 + blocks, 4 = 3 + FDT], default: 1\00"
@str.223 = [71 x i8] c" -V:str Print logs to 'str' file, default: print to stdout\00"
@str.224 = [67 x i8] c" -w:int Congestion control scheme [0 = Null, 1 = RLC],\00"
@str.225 = [78 x i8] c" are used with both schemes and bitrate of each channel is\00"
@str.226 = [47 x i8] c" set according to RLC rules\00"
@str.227 = [76 x i8] c" -W File table output mode. In receiver this work only with\00"
@str.228 = [31 x i8] c" -A option\0A\00"
@str.229 = [17 x i8] c"Sender options:\0A\00"
@str.230 = [72 x i8] c" -B:str Base directory for files or directories to be sent,\00"
@str.231 = [47 x i8] c" default: working directory\00"
@str.232 = [63 x i8] c" -C Continuous transmission, default: not used\00"
@str.233 = [45 x i8] c" -e:int FEC-OTI for file objects\00"
@str.234 = [77 x i8] c" [0 = FEC-OTI in FDT, 1 = FEC-OTI in EXT_FTI], default: 0\00"
@str.235 = [77 x i8] c" -F:str,str,... Files or directories to be sent. Given base directory is\00"
@str.236 = [42 x i8] c" same for all entries.\00"
@str.237 = [69 x i8] c" -G Calculate session size, but do not send anything\00"
@str.238 = [76 x i8] c" -H Use Half-word (when used, TSI field can be 16, 32 or 48\00"
@str.239 = [73 x i8] c" bits long and TOI field can be 16, 32, 48 or 64 bits\00"
@str.240 = [45 x i8] c" long), default: not used\00"
@str.241 = [72 x i8] c" -k:int Send a Complete FDT in the beginning of the session\00"
@str.242 = [78 x i8] c" [0 = No, 1 = Yes, 2 = Yes, only Complete FDT], default: 0\00"
@str.243 = [72 x i8] c" -L:int Maximum source block length in multiple of encoding\00"
@str.244 = [77 x i8] c" -q:int Send session close packets [0 = No, 1 = Yes], default: 1\00"
@str.245 = [77 x i8] c" -x:int FEC Encoding [0 = Null, 1 = Simple XOR, 2 = Reed-Solomon\00"
@str.246 = [58 x i8] c" -z:int Encode content [0 = no, 1 = ZLIB FDT,\00"
@str.247 = [49 x i8] c" 2 = ZLIB FDT and GZIP files,\00"
@str.248 = [47 x i8] c" 3 = PAD files], default: 0\00"
@str.249 = [63 x i8] c" -Z Optimize transmission rate (use more CPU)\0A\00"
@str.250 = [19 x i8] c"Receiver options:\0A\00"
@str.251 = [48 x i8] c" -A Receive files automatically\00"
@str.252 = [73 x i8] c" -b:int Receiver's memory consumption [0 = high, 1 = medium,\00"
@str.253 = [41 x i8] c" 2 = low], default: 1\00"
@str.254 = [57 x i8] c" -B:str Base directory for downloaded files,\00"
@str.255 = [74 x i8] c" -D:ull Reveiver will quit after this time (in seconds) if no\00"
@str.256 = [49 x i8] c" -E Accept expired FDT Instances\00"
@str.257 = [41 x i8] c" -F:str,str,... Files to be received\00"
@str.258 = [74 x i8] c" -I:str Local interface name for IPv6 multicast join, use for\00"
@str.259 = [71 x i8] c" example 'ifconfig' command to see interface names;\00"
@str.260 = [41 x i8] c" otherwise OS default\00"
@str.261 = [63 x i8] c" -M Use Source-Specific Multicast, default: no\00"
@str.262 = [72 x i8] c" -N Name incomplete objects after the session has ended\00"
@str.263 = [54 x i8] c" -o:ull TOI for the object to be received\00"
@str.264 = [74 x i8] c" -R[:str] Use HTTP file repair with given config file, default:\00"
@str.265 = [77 x i8] c" -s:str Source IPv4 or IPv6 address of this session. If not set,\00"
@str.266 = [74 x i8] c" receiver locks to the first IP address found from the\00"
@str.267 = [35 x i8] c" FLUTE packets.\00"
@str.268 = [21 x i8] c"\0AExample use cases:\0A\00"
@str.269 = [105 x i8] c"1. Send a file or directory n times\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -F:files/flute-draft.txt\00"
@str.270 = [13 x i8] c"\09 -n:2\0A\00"
@str.271 = [107 x i8] c"2. Send a file or directory in a loop\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -F:files/flute-draft.txt\00"
@str.272 = [11 x i8] c"\09 -C\0A\00"
@str.273 = [94 x i8] c"3. Send files defined in an FDT file\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -f:fdt2.xml\0A\00"
@str.274 = [107 x i8] c"4. Send files defined in an FDT file in a loop\0A\0A\09flute -S -m:224.1.1.1 -p:4000 -t:2 -r:100 -f:fdt2.xml -C\0A\00"
@str.275 = [83 x i8] c"5. Send using unicast\0A\0A\09flute -S -U -m:1.2.3.4 -p:4000 -t:2 -r:100 -f:fdt2.xml -C\0A\00"
@str.276 = [73 x i8] c"6. Receive one object\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2 -o:1\0A\00"
@str.277 = [88 x i8] c"7. Receive file(s) defined by file name(s)\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\00"
@str.278 = [47 x i8] c"\09 -F:files/flute-man.txt,flute-draft.txt\0A\00"
@str.279 = [102 x i8] c"8. Receive file(s) defined by wild card option\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2 -F:*.jpg\0A\00"
@str.280 = [85 x i8] c"9. Receive file(s) with User Interface\0A\0A\09flute -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\0A\00"
@str.281 = [96 x i8] c"10. Receive file(s) automatically from session\0A\0A\09flute -A -m:224.1.1.1 -p:4000 -t:2 -s:2.2.2.2\0A\00"
@str.282 = [65 x i8] c"11. Receive using unicast\0A\0A\09flute -A -U -p:4000 -t:2 -s:2.2.2.2\0A\00"
define void @usage() {
%1 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.2, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.158, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str.159, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.160, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.161, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.162, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.163, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.164, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.165, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.188, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.167, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.168, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.169, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.170, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.171, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.172, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.188, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str.174, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.175, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.176, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.188, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.178, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.179, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.180, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.188, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.182, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.183, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.184, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.185, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.186, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.187, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.188, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.189, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.190, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.191, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.192, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.193, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.194, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.195, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.196, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.197, i64 0, i64 0))
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.198, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.199, i64 0, i64 0))
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.200, i64 0, i64 0))
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.201, i64 0, i64 0))
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.202, i64 0, i64 0))
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.203, i64 0, i64 0))
%49 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.46, i64 0, i64 0))
%50 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.204, i64 0, i64 0))
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.205, i64 0, i64 0))
%52 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.206, i64 0, i64 0))
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([81 x i8], [81 x i8]* @str.207, i64 0, i64 0))
%54 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.51, i64 0, i64 0))
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.52, i64 0, i64 0))
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.53, i64 0, i64 0))
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.208, i64 0, i64 0))
%58 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.55, i64 0, i64 0))
%59 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.56, i64 0, i64 0))
%60 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.209, i64 0, i64 0))
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.210, i64 0, i64 0))
%62 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.211, i64 0, i64 0))
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.212, i64 0, i64 0))
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.213, i64 0, i64 0))
%65 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @str.214, i64 0, i64 0))
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.215, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.216, i64 0, i64 0))
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.217, i64 0, i64 0))
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.66, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.67, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.68, i64 0, i64 0))
%70 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.69, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i64 0, i64 0))
%71 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.218, i64 0, i64 0))
%72 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.72, i64 0, i64 0), double 5.000000e+00, double 5.000000e+01)
%73 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.219, i64 0, i64 0))
%74 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.74, i64 0, i64 0), i32 0)
%75 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.220, i64 0, i64 0))
%76 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.221, i64 0, i64 0))
%77 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.222, i64 0, i64 0))
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.223, i64 0, i64 0))
%79 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.224, i64 0, i64 0))
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @.str.80, i64 0, i64 0), i32 0)
%81 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.225, i64 0, i64 0))
%82 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.226, i64 0, i64 0))
%83 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.227, i64 0, i64 0))
%84 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.228, i64 0, i64 0))
%85 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.229, i64 0, i64 0))
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.230, i64 0, i64 0))
%87 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.231, i64 0, i64 0))
%88 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.88, i64 0, i64 0), i32 1)
%89 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.232, i64 0, i64 0))
%90 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.90, i64 0, i64 0), i32 604800)
%91 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.233, i64 0, i64 0))
%92 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.234, i64 0, i64 0))
%93 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.93, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.94, i64 0, i64 0))
%94 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.235, i64 0, i64 0))
%95 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @str.236, i64 0, i64 0))
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.237, i64 0, i64 0))
%97 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.238, i64 0, i64 0))
%98 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.239, i64 0, i64 0))
%99 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.240, i64 0, i64 0))
%100 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.241, i64 0, i64 0))
%101 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.242, i64 0, i64 0))
%102 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @.str.103, i64 0, i64 0), i32 1428)
%103 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.243, i64 0, i64 0))
%104 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.105, i64 0, i64 0), i32 64)
%105 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.106, i64 0, i64 0), i32 1)
%106 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.244, i64 0, i64 0))
%107 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @.str.108, i64 0, i64 0), i32 250)
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.109, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.110, i64 0, i64 0))
%109 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @.str.111, i64 0, i64 0), i32 1)
%110 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.245, i64 0, i64 0))
%111 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str.113, i64 0, i64 0), i32 0)
%112 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.114, i64 0, i64 0), i32 50)
%113 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.246, i64 0, i64 0))
%114 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.247, i64 0, i64 0))
%115 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.248, i64 0, i64 0))
%116 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.249, i64 0, i64 0))
%117 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.250, i64 0, i64 0))
%118 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.251, i64 0, i64 0))
%119 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.252, i64 0, i64 0))
%120 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.253, i64 0, i64 0))
%121 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.254, i64 0, i64 0))
%122 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.124, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.125, i64 0, i64 0))
%123 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.126, i64 0, i64 0), i32 1)
%124 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.255, i64 0, i64 0))
%125 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str.128, i64 0, i64 0), i32 3600)
%126 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.256, i64 0, i64 0))
%127 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.257, i64 0, i64 0))
%128 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.258, i64 0, i64 0))
%129 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.259, i64 0, i64 0))
%130 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.260, i64 0, i64 0))
%131 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.261, i64 0, i64 0))
%132 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.262, i64 0, i64 0))
%133 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.263, i64 0, i64 0))
%134 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.264, i64 0, i64 0))
%135 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.138, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.139, i64 0, i64 0))
%136 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.265, i64 0, i64 0))
%137 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.266, i64 0, i64 0))
%138 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.267, i64 0, i64 0))
%139 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.268, i64 0, i64 0))
%140 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([105 x i8], [105 x i8]* @str.269, i64 0, i64 0))
%141 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.270, i64 0, i64 0))
%142 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([107 x i8], [107 x i8]* @str.271, i64 0, i64 0))
%143 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.272, i64 0, i64 0))
%144 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([94 x i8], [94 x i8]* @str.273, i64 0, i64 0))
%145 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([107 x i8], [107 x i8]* @str.274, i64 0, i64 0))
%146 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([83 x i8], [83 x i8]* @str.275, i64 0, i64 0))
%147 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.276, i64 0, i64 0))
%148 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.277, i64 0, i64 0))
%149 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.278, i64 0, i64 0))
%150 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([102 x i8], [102 x i8]* @str.279, i64 0, i64 0))
%151 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([85 x i8], [85 x i8]* @str.280, i64 0, i64 0))
%152 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([96 x i8], [96 x i8]* @str.281, i64 0, i64 0))
%153 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.282, i64 0, i64 0))
%154 = tail call i32 @exit(i32 1)
unreachable
}