#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage() {
  fprintf(stderr, "\n");
  fprintf(stderr, "You can specify the following arguments:\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "System specification:\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "-bulge                : all system parameters after this "
                  "flag are set for the bulge system\n");
  fprintf(stderr, "-halo                 : all system parameters after this "
                  "flag are set for the halo system\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "System parameters:\n");
  fprintf(stderr, "\n");
  fprintf(stderr,
          "-a <value>            : alpha parameter in density profile\n");
  fprintf(stderr,
          "-b <value>            : beta parameter in density profile\n");
  fprintf(stderr,
          "-c <value>            : gamma parameter in density profile\n");
  fprintf(stderr,
          "-M <value> <unit>     : mass within rcutoff or total mass for "
          "finite mass models, <unit>: Mo or MU (optional - default: Mo)\n");
  fprintf(stderr, "-rs <value>           : scale radius [LU]\n");
  fprintf(stderr, "-rcutoff <value>      : cutoff radius [LU]\n");
  fprintf(stderr, "-cvir <value>         : virial concentration parameter\n");
  fprintf(stderr, "-N0 <value>           : number of particles within rsi\n");
  fprintf(stderr, "-soft0 <value> <unit> : softening of particles within rsi, "
                  "<unit>: LU, rs, rvir or rcutoff (optional - default: LU)\n");
  fprintf(
      stderr,
      "-rba_r0 <value>       : r0 for axis ratio b/a [LU] (default: 1 LU)\n");
  fprintf(stderr,
          "-rba_at_r0 <value>    : axis ratio b/a at r0 (default: 1)\n");
  fprintf(stderr, "-rba_slope <value>    : slope for axis ratio b/a [1/dex] "
                  "(default: 0)\n");
  fprintf(stderr, "-rba_min <value>      : minimum value for axis ratio b/a "
                  "(default: 0)\n");
  fprintf(stderr, "-rba_max <value>      : maximum value for axis ratio b/a "
                  "(default: 1)\n");
  fprintf(
      stderr,
      "-rca_r0 <value>       : r0 for axis ratio c/a [LU] (default: 1 LU)\n");
  fprintf(stderr,
          "-rca_at_r0 <value>    : axis ratio c/a at r0 (default: 1)\n");
  fprintf(stderr, "-rca_slope <value>    : slope for axis ratio c/a [1/dex] "
                  "(default: 0)\n");
  fprintf(stderr, "-rca_min <value>      : minimum value for axis ratio c/a "
                  "(default: 0)\n");
  fprintf(stderr, "-rca_max <value>      : maximum value for axis ratio c/a "
                  "(default: 1)\n");
  fprintf(stderr,
          "-alpha_r0 <value>     : r0 for angle alpha [LU] (default: 1 LU)\n");
  fprintf(stderr, "-alpha_at_r0 <value>  : angle alpha for z-x'-z'' rotation "
                  "at r0 [2*pi rad] (default: 0)\n");
  fprintf(stderr, "-alpha_slope <value>  : slope for angle alpha [2*pi "
                  "rad/dex] (default: 0)\n");
  fprintf(stderr, "-alpha_min <value>    : minimum value for angle alpha [2*pi "
                  "rad] (default: 0)\n");
  fprintf(stderr, "-alpha_max <value>    : maximum value for angle alpha [2*pi "
                  "rad] (default: 1)\n");
  fprintf(stderr,
          "-beta_r0 <value>      : r0 for angle beta [LU] (default: 1 LU)\n");
  fprintf(stderr, "-beta_at_r0 <value>   : angle beta for z-x'-z'' rotation at "
                  "r0 [2*pi rad] (default: 0)\n");
  fprintf(stderr, "-beta_slope <value>   : slope for angle beta [2*pi rad/dex] "
                  "(default: 0)\n");
  fprintf(stderr, "-beta_min <value>     : minimum value for angle beta [2*pi "
                  "rad] (default: 0)\n");
  fprintf(stderr, "-beta_max <value>     : maximum value for angle beta [2*pi "
                  "rad] (default: 1)\n");
  fprintf(stderr,
          "-gamma_r0 <value>     : r0 for angle gamma [LU] (default: 1 LU)\n");
  fprintf(stderr, "-gamma_at_r0 <value>  : angle gamma for z-x'-z'' rotation "
                  "at r0 [2*pi rad] (default: 0)\n");
  fprintf(stderr, "-gamma_slope <value>  : slope for angle gamma [2*pi "
                  "rad/dex] (default: 0)\n");
  fprintf(stderr, "-gamma_min <value>    : minimum value for angle gamma [2*pi "
                  "rad] (default: 0)\n");
  fprintf(stderr, "-gamma_max <value>    : maximum value for angle gamma [2*pi "
                  "rad] (default: 1)\n");
  fprintf(
      stderr,
      "-rsi <value> <unit>   : inner shell radius (default: rcutoff / router), "
      "<unit>: LU, rs, rvir or rcutoff (optional - default: LU)\n");
  fprintf(
      stderr,
      "-rso <value> <unit>   : outer shell radius (default: rcutoff / router), "
      "<unit>: LU, rs, rvir or rcutoff (optional - default: LU)\n");
  fprintf(stderr, "-Nshell <value>       : number of shells between rsi and "
                  "rso (default: 0)\n");
  fprintf(stderr, "-DRMmax <value>       : maximum mass ratio between two "
                  "neighbouring shells (default: 1)\n");
  fprintf(stderr,
          "-rmor <value> <unit>  : maximum orbital refinement radius (default: "
          "0 LU), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\n");
  fprintf(stderr, "-Ismor <value>        : maximum index of shell where "
                  "orbital refinement is done (default: Nshell+1)\n");
  fprintf(stderr, "-dfsf <value>         : distribution function split factor "
                  "(default: 0.01)\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "Black hole parameters:\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "-MBH <value> <unit>   : mass of black hole, <unit>: Mo or "
                  "MU (optional - default: Mo)\n");
  fprintf(stderr, "-softBH <value>       : softening of black hole [LU]\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "General parameters:\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "-name <value>         : name of the output file\n");
  fprintf(stderr, "-Ngridr <value>       : number of grid points for grid in r "
                  "(default: 2001)\n");
  fprintf(stderr, "-Ngriddf <value>      : number of grid points for grid for "
                  "distribution function for each system (default: 101)\n");
  fprintf(stderr, "-OmegaM0 <value>      : OmegaM0 (default: 0.3)\n");
  fprintf(stderr, "-OmegaK0 <value>      : OmegaK0 (default: 0.0)\n");
  fprintf(stderr, "-OmegaL0 <value>      : OmegaL0 (default: 0.7)\n");
  fprintf(stderr,
          "-h0 <value>           : Hubble parameter h0 (default: 0.7)\n");
  fprintf(stderr, "-z <value>            : Redshift z (default: 0)\n");
  fprintf(
      stderr,
      "-Deltavirz <value>    : virial overdensity (default: 178*[OmegaMz^0.45] "
      "if OmegaK0 = 0 and 178*[OmegaMz^0.30] if OmegaL0 = 0)\n");
  fprintf(stderr,
          "-ogr                  : set this flag for outputting grid in r\n");
  fprintf(stderr, "-ogdf                 : set this flag for outputting grid "
                  "for distribution function for each system\n");
  fprintf(stderr, "-ots                  : set this flag for writing particles "
                  "in tipsy standard binary format\n");
  fprintf(stderr,
          "-otsdpp               : set this flag for writing particles in "
          "tipsy standard binary format with double precision positions\n");
  fprintf(stderr, "-spherical            : set this flag for initialising "
                  "positions in spherical coordinates (default)\n");
  fprintf(stderr, "-ellipsoidal          : set this flag for initialising "
                  "positions in ellipsoidal coordinates\n");
  fprintf(stderr, "-po                   : set this flag for initialising "
                  "positions only (velocities are 0)\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "Other options:\n");
  fprintf(stderr, "\n");
  fprintf(stderr, "-h or -help           : display this help and exit\n");
  fprintf(stderr,
          "-version              : display version information and exit\n");
  fprintf(stderr, "\n");
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x3eb5(%rip),%rax
mov    (%rax),%edi
lea    0x1584(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ea0(%rip),%rax
mov    (%rax),%edi
lea    0xeb7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e8b(%rip),%rax
mov    (%rax),%edi
lea    0x155a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e76(%rip),%rax
mov    (%rax),%edi
lea    0xeb7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e61(%rip),%rax
mov    (%rax),%edi
lea    0x1530(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e4c(%rip),%rax
mov    (%rax),%edi
lea    0xea4(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e37(%rip),%rax
mov    (%rax),%edi
lea    0xeeb(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e22(%rip),%rax
mov    (%rax),%edi
lea    0x14f1(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e0d(%rip),%rax
mov    (%rax),%edi
lea    0xf1c(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3df8(%rip),%rax
mov    (%rax),%edi
lea    0x14c7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3de3(%rip),%rax
mov    (%rax),%edi
lea    0xf06(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3dce(%rip),%rax
mov    (%rax),%edi
lea    0xf2d(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3db9(%rip),%rax
mov    (%rax),%edi
lea    0xf53(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3da4(%rip),%rax
mov    (%rax),%edi
lea    0xf7a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d8f(%rip),%rax
mov    (%rax),%edi
lea    0xfe2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d7a(%rip),%rax
mov    (%rax),%edi
lea    0xff8(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d65(%rip),%rax
mov    (%rax),%edi
lea    0x100f(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d50(%rip),%rax
mov    (%rax),%edi
lea    0x1032(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d3b(%rip),%rax
mov    (%rax),%edi
lea    0x1055(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d26(%rip),%rax
mov    (%rax),%edi
lea    0x10b5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d11(%rip),%rax
mov    (%rax),%edi
lea    0x10e4(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3cfc(%rip),%rax
mov    (%rax),%edi
lea    0x110a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ce7(%rip),%rax
mov    (%rax),%edi
lea    0x113c(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3cd2(%rip),%rax
mov    (%rax),%edi
lea    0x116e(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3cbd(%rip),%rax
mov    (%rax),%edi
lea    0x11a0(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ca8(%rip),%rax
mov    (%rax),%edi
lea    0x11cf(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c93(%rip),%rax
mov    (%rax),%edi
lea    0x11f5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c7e(%rip),%rax
mov    (%rax),%edi
lea    0x1227(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c69(%rip),%rax
mov    (%rax),%edi
lea    0x1259(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c54(%rip),%rax
mov    (%rax),%edi
lea    0x128b(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c3f(%rip),%rax
mov    (%rax),%edi
lea    0x12b7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c2a(%rip),%rax
mov    (%rax),%edi
lea    0x12fb(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c15(%rip),%rax
mov    (%rax),%edi
lea    0x1331(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3c00(%rip),%rax
mov    (%rax),%edi
lea    0x136b(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3beb(%rip),%rax
mov    (%rax),%edi
lea    0x13a5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3bd6(%rip),%rax
mov    (%rax),%edi
lea    0x13d0(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3bc1(%rip),%rax
mov    (%rax),%edi
lea    0x1413(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3bac(%rip),%rax
mov    (%rax),%edi
lea    0x1448(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b97(%rip),%rax
mov    (%rax),%edi
lea    0x1481(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b82(%rip),%rax
mov    (%rax),%edi
lea    0x14ba(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b6d(%rip),%rax
mov    (%rax),%edi
lea    0x14e6(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b58(%rip),%rax
mov    (%rax),%edi
lea    0x152a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b43(%rip),%rax
mov    (%rax),%edi
lea    0x1560(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b2e(%rip),%rax
mov    (%rax),%edi
lea    0x159a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b19(%rip),%rax
mov    (%rax),%edi
lea    0x15d4(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3b04(%rip),%rax
mov    (%rax),%edi
lea    0x1641(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3aef(%rip),%rax
mov    (%rax),%edi
lea    0x16ae(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ada(%rip),%rax
mov    (%rax),%edi
lea    0x16e4(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ac5(%rip),%rax
mov    (%rax),%edi
lea    0x1728(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ab0(%rip),%rax
mov    (%rax),%edi
lea    0x1798(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a9b(%rip),%rax
mov    (%rax),%edi
lea    0x17e8(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a86(%rip),%rax
mov    (%rax),%edi
lea    0x1155(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a71(%rip),%rax
mov    (%rax),%edi
lea    0x180a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a5c(%rip),%rax
mov    (%rax),%edi
lea    0x112b(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a47(%rip),%rax
mov    (%rax),%edi
lea    0x17f8(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a32(%rip),%rax
mov    (%rax),%edi
lea    0x183a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a1d(%rip),%rax
mov    (%rax),%edi
lea    0x10ec(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3a08(%rip),%rax
mov    (%rax),%edi
lea    0x1846(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x39f3(%rip),%rax
mov    (%rax),%edi
lea    0x10c2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x39de(%rip),%rax
mov    (%rax),%edi
lea    0x1831(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x39c9(%rip),%rax
mov    (%rax),%edi
lea    0x184d(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x39b4(%rip),%rax
mov    (%rax),%edi
lea    0x1885(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x399f(%rip),%rax
mov    (%rax),%edi
lea    0x18e1(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x398a(%rip),%rax
mov    (%rax),%edi
lea    0x18fc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3975(%rip),%rax
mov    (%rax),%edi
lea    0x1917(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3960(%rip),%rax
mov    (%rax),%edi
lea    0x1932(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x394b(%rip),%rax
mov    (%rax),%edi
lea    0x1959(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3936(%rip),%rax
mov    (%rax),%edi
lea    0x1975(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3921(%rip),%rax
mov    (%rax),%edi
lea    0x19df(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x390c(%rip),%rax
mov    (%rax),%edi
lea    0x1a0a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x38f7(%rip),%rax
mov    (%rax),%edi
lea    0x1a5a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x38e2(%rip),%rax
mov    (%rax),%edi
lea    0x1aa2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x38cd(%rip),%rax
mov    (%rax),%edi
lea    0x1b0a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x38b8(%rip),%rax
mov    (%rax),%edi
lea    0x1b5a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x38a3(%rip),%rax
mov    (%rax),%edi
lea    0x1ba2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x388e(%rip),%rax
mov    (%rax),%edi
lea    0xf5d(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3879(%rip),%rax
mov    (%rax),%edi
lea    0x1bd2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3864(%rip),%rax
mov    (%rax),%edi
lea    0xf33(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x384f(%rip),%rax
mov    (%rax),%edi
lea    0x1bb8(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x383a(%rip),%rax
mov    (%rax),%edi
lea    0x1bd7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3825(%rip),%rax
mov    (%rax),%edi
lea    0xef4(%rip),%rsi
call   1030 <fprintf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %r14
push   %rbx
push   %rax
mov    0x3eb5(%rip),%rbx
mov    (%rbx),%edi
lea    0x1584(%rip),%r14
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xebb(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xecd(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf1a(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf5d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf59(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf87(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfb4(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfe2(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1051(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x106e(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x108c(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x10b6(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x10e0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1147(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x117d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x11aa(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x11e3(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x121c(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1255(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x128b(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x12b8(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x12f1(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x132a(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1363(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1396(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x13e1(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x141e(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x145f(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x14a0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x14d2(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x151c(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1558(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1598(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x15d8(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x160b(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1656(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1693(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x16d4(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1715(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1789(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x17fd(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x183a(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1885(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x18fc(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1953(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1987(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1987(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x19d0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x19ee(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x19eb(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1a0e(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1a4d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1ab0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1ad2(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1af4(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1b16(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1b44(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1b67(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1bd8(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1c0a(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1c61(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1cb0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1d1f(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1d76(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1dc5(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1e07(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1dff(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1e25(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
mov    %r14,%rsi
call   1030 <fprintf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [2 x i8] c"\0A\00"
@.str.1 = [42 x i8] c"You can specify the following arguments:\0A\00"
@.str.2 = [23 x i8] c"System specification:\0A\00"
@.str.3 = [92 x i8] c"-bulge : all system parameters after this flag are set for the bulge system\0A\00"
@.str.4 = [91 x i8] c"-halo : all system parameters after this flag are set for the halo system\0A\00"
@.str.5 = [20 x i8] c"System parameters:\0A\00"
@.str.6 = [60 x i8] c"-a <value> : alpha parameter in density profile\0A\00"
@.str.7 = [59 x i8] c"-b <value> : beta parameter in density profile\0A\00"
@.str.8 = [60 x i8] c"-c <value> : gamma parameter in density profile\0A\00"
@.str.9 = [125 x i8] c"-M <value> <unit> : mass within rcutoff or total mass for finite mass models, <unit>: Mo or MU (optional - default: Mo)\0A\00"
@.str.10 = [43 x i8] c"-rs <value> : scale radius [LU]\0A\00"
@.str.11 = [44 x i8] c"-rcutoff <value> : cutoff radius [LU]\0A\00"
@.str.12 = [56 x i8] c"-cvir <value> : virial concentration parameter\0A\00"
@.str.13 = [56 x i8] c"-N0 <value> : number of particles within rsi\0A\00"
@.str.14 = [117 x i8] c"-soft0 <value> <unit> : softening of particles within rsi, <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.15 = [68 x i8] c"-rba_r0 <value> : r0 for axis ratio b/a [LU] (default: 1 LU)\0A\00"
@.str.16 = [59 x i8] c"-rba_at_r0 <value> : axis ratio b/a at r0 (default: 1)\0A\00"
@.str.17 = [71 x i8] c"-rba_slope <value> : slope for axis ratio b/a [1/dex] (default: 0)\0A\00"
@.str.18 = [71 x i8] c"-rba_min <value> : minimum value for axis ratio b/a (default: 0)\0A\00"
@.str.19 = [71 x i8] c"-rba_max <value> : maximum value for axis ratio b/a (default: 1)\0A\00"
@.str.20 = [68 x i8] c"-rca_r0 <value> : r0 for axis ratio c/a [LU] (default: 1 LU)\0A\00"
@.str.21 = [59 x i8] c"-rca_at_r0 <value> : axis ratio c/a at r0 (default: 1)\0A\00"
@.str.22 = [71 x i8] c"-rca_slope <value> : slope for axis ratio c/a [1/dex] (default: 0)\0A\00"
@.str.23 = [71 x i8] c"-rca_min <value> : minimum value for axis ratio c/a (default: 0)\0A\00"
@.str.24 = [71 x i8] c"-rca_max <value> : maximum value for axis ratio c/a (default: 1)\0A\00"
@.str.25 = [65 x i8] c"-alpha_r0 <value> : r0 for angle alpha [LU] (default: 1 LU)\0A\00"
@.str.26 = [89 x i8] c"-alpha_at_r0 <value> : angle alpha for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.27 = [75 x i8] c"-alpha_slope <value> : slope for angle alpha [2*pi rad/dex] (default: 0)\0A\00"
@.str.28 = [79 x i8] c"-alpha_min <value> : minimum value for angle alpha [2*pi rad] (default: 0)\0A\00"
@.str.29 = [79 x i8] c"-alpha_max <value> : maximum value for angle alpha [2*pi rad] (default: 1)\0A\00"
@.str.30 = [64 x i8] c"-beta_r0 <value> : r0 for angle beta [LU] (default: 1 LU)\0A\00"
@.str.31 = [88 x i8] c"-beta_at_r0 <value> : angle beta for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.32 = [74 x i8] c"-beta_slope <value> : slope for angle beta [2*pi rad/dex] (default: 0)\0A\00"
@.str.33 = [78 x i8] c"-beta_min <value> : minimum value for angle beta [2*pi rad] (default: 0)\0A\00"
@.str.34 = [78 x i8] c"-beta_max <value> : maximum value for angle beta [2*pi rad] (default: 1)\0A\00"
@.str.35 = [65 x i8] c"-gamma_r0 <value> : r0 for angle gamma [LU] (default: 1 LU)\0A\00"
@.str.36 = [89 x i8] c"-gamma_at_r0 <value> : angle gamma for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.37 = [75 x i8] c"-gamma_slope <value> : slope for angle gamma [2*pi rad/dex] (default: 0)\0A\00"
@.str.38 = [79 x i8] c"-gamma_min <value> : minimum value for angle gamma [2*pi rad] (default: 0)\0A\00"
@.str.39 = [79 x i8] c"-gamma_max <value> : maximum value for angle gamma [2*pi rad] (default: 1)\0A\00"
@.str.40 = [130 x i8] c"-rsi <value> <unit> : inner shell radius (default: rcutoff / router), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.41 = [130 x i8] c"-rso <value> <unit> : outer shell radius (default: rcutoff / router), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.42 = [75 x i8] c"-Nshell <value> : number of shells between rsi and rso (default: 0)\0A\00"
@.str.43 = [89 x i8] c"-DRMmax <value> : maximum mass ratio between two neighbouring shells (default: 1)\0A\00"
@.str.44 = [133 x i8] c"-rmor <value> <unit> : maximum orbital refinement radius (default: 0 LU), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.45 = [101 x i8] c"-Ismor <value> : maximum index of shell where orbital refinement is done (default: Nshell+1)\0A\00"
@.str.46 = [76 x i8] c"-dfsf <value> : distribution function split factor (default: 0.01)\0A\00"
@.str.47 = [24 x i8] c"Black hole parameters:\0A\00"
@.str.48 = [87 x i8] c"-MBH <value> <unit> : mass of black hole, <unit>: Mo or MU (optional - default: Mo)\0A\00"
@.str.49 = [54 x i8] c"-softBH <value> : softening of black hole [LU]\0A\00"
@.str.50 = [21 x i8] c"General parameters:\0A\00"
@.str.51 = [49 x i8] c"-name <value> : name of the output file\0A\00"
@.str.52 = [77 x i8] c"-Ngridr <value> : number of grid points for grid in r (default: 2001)\0A\00"
@.str.53 = [113 x i8] c"-Ngriddf <value> : number of grid points for grid for distribution function for each system (default: 101)\0A\00"
@.str.54 = [48 x i8] c"-OmegaM0 <value> : OmegaM0 (default: 0.3)\0A\00"
@.str.55 = [48 x i8] c"-OmegaK0 <value> : OmegaK0 (default: 0.0)\0A\00"
@.str.56 = [48 x i8] c"-OmegaL0 <value> : OmegaL0 (default: 0.7)\0A\00"
@.str.57 = [60 x i8] c"-h0 <value> : Hubble parameter h0 (default: 0.7)\0A\00"
@.str.58 = [49 x i8] c"-z <value> : Redshift z (default: 0)\0A\00"
@.str.59 = [127 x i8] c"-Deltavirz <value> : virial overdensity (default: 178*[OmegaMz^0.45] if OmegaK0 = 0 and 178*[OmegaMz^0.30] if OmegaL0 = 0)\0A\00"
@.str.60 = [64 x i8] c"-ogr : set this flag for outputting grid in r\0A\00"
@.str.61 = [101 x i8] c"-ogdf : set this flag for outputting grid for distribution function for each system\0A\00"
@.str.62 = [93 x i8] c"-ots : set this flag for writing particles in tipsy standard binary format\0A\00"
@.str.63 = [125 x i8] c"-otsdpp : set this flag for writing particles in tipsy standard binary format with double precision positions\0A\00"
@.str.64 = [101 x i8] c"-spherical : set this flag for initialising positions in spherical coordinates (default)\0A\00"
@.str.65 = [93 x i8] c"-ellipsoidal : set this flag for initialising positions in ellipsoidal coordinates\0A\00"
@.str.66 = [90 x i8] c"-po : set this flag for initialising positions only (velocities are 0)\0A\00"
@.str.67 = [16 x i8] c"Other options:\0A\00"
@.str.68 = [52 x i8] c"-h or -help : display this help and exit\0A\00"
@.str.69 = [62 x i8] c"-version : display version information and exit\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%7 = load i32, i32* @stderr
%8 = call i32 @fprintf(i32 %7, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.2, i64 0, i64 0))
%9 = load i32, i32* @stderr
%10 = call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%11 = load i32, i32* @stderr
%12 = call i32 @fprintf(i32 %11, i8* getelementptr inbounds ([92 x i8], [92 x i8]* @.str.3, i64 0, i64 0))
%13 = load i32, i32* @stderr
%14 = call i32 @fprintf(i32 %13, i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.4, i64 0, i64 0))
%15 = load i32, i32* @stderr
%16 = call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%17 = load i32, i32* @stderr
%18 = call i32 @fprintf(i32 %17, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i64 0, i64 0))
%19 = load i32, i32* @stderr
%20 = call i32 @fprintf(i32 %19, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%21 = load i32, i32* @stderr
%22 = call i32 @fprintf(i32 %21, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.6, i64 0, i64 0))
%23 = load i32, i32* @stderr
%24 = call i32 @fprintf(i32 %23, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.7, i64 0, i64 0))
%25 = load i32, i32* @stderr
%26 = call i32 @fprintf(i32 %25, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.8, i64 0, i64 0))
%27 = load i32, i32* @stderr
%28 = call i32 @fprintf(i32 %27, i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.9, i64 0, i64 0))
%29 = load i32, i32* @stderr
%30 = call i32 @fprintf(i32 %29, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.10, i64 0, i64 0))
%31 = load i32, i32* @stderr
%32 = call i32 @fprintf(i32 %31, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.11, i64 0, i64 0))
%33 = load i32, i32* @stderr
%34 = call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.12, i64 0, i64 0))
%35 = load i32, i32* @stderr
%36 = call i32 @fprintf(i32 %35, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.13, i64 0, i64 0))
%37 = load i32, i32* @stderr
%38 = call i32 @fprintf(i32 %37, i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.14, i64 0, i64 0))
%39 = load i32, i32* @stderr
%40 = call i32 @fprintf(i32 %39, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.15, i64 0, i64 0))
%41 = load i32, i32* @stderr
%42 = call i32 @fprintf(i32 %41, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.16, i64 0, i64 0))
%43 = load i32, i32* @stderr
%44 = call i32 @fprintf(i32 %43, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.17, i64 0, i64 0))
%45 = load i32, i32* @stderr
%46 = call i32 @fprintf(i32 %45, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.18, i64 0, i64 0))
%47 = load i32, i32* @stderr
%48 = call i32 @fprintf(i32 %47, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.19, i64 0, i64 0))
%49 = load i32, i32* @stderr
%50 = call i32 @fprintf(i32 %49, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.20, i64 0, i64 0))
%51 = load i32, i32* @stderr
%52 = call i32 @fprintf(i32 %51, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.21, i64 0, i64 0))
%53 = load i32, i32* @stderr
%54 = call i32 @fprintf(i32 %53, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.22, i64 0, i64 0))
%55 = load i32, i32* @stderr
%56 = call i32 @fprintf(i32 %55, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.23, i64 0, i64 0))
%57 = load i32, i32* @stderr
%58 = call i32 @fprintf(i32 %57, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.24, i64 0, i64 0))
%59 = load i32, i32* @stderr
%60 = call i32 @fprintf(i32 %59, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.25, i64 0, i64 0))
%61 = load i32, i32* @stderr
%62 = call i32 @fprintf(i32 %61, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.26, i64 0, i64 0))
%63 = load i32, i32* @stderr
%64 = call i32 @fprintf(i32 %63, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.27, i64 0, i64 0))
%65 = load i32, i32* @stderr
%66 = call i32 @fprintf(i32 %65, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.28, i64 0, i64 0))
%67 = load i32, i32* @stderr
%68 = call i32 @fprintf(i32 %67, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.29, i64 0, i64 0))
%69 = load i32, i32* @stderr
%70 = call i32 @fprintf(i32 %69, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.30, i64 0, i64 0))
%71 = load i32, i32* @stderr
%72 = call i32 @fprintf(i32 %71, i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.31, i64 0, i64 0))
%73 = load i32, i32* @stderr
%74 = call i32 @fprintf(i32 %73, i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.32, i64 0, i64 0))
%75 = load i32, i32* @stderr
%76 = call i32 @fprintf(i32 %75, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.33, i64 0, i64 0))
%77 = load i32, i32* @stderr
%78 = call i32 @fprintf(i32 %77, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.34, i64 0, i64 0))
%79 = load i32, i32* @stderr
%80 = call i32 @fprintf(i32 %79, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.35, i64 0, i64 0))
%81 = load i32, i32* @stderr
%82 = call i32 @fprintf(i32 %81, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.36, i64 0, i64 0))
%83 = load i32, i32* @stderr
%84 = call i32 @fprintf(i32 %83, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.37, i64 0, i64 0))
%85 = load i32, i32* @stderr
%86 = call i32 @fprintf(i32 %85, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.38, i64 0, i64 0))
%87 = load i32, i32* @stderr
%88 = call i32 @fprintf(i32 %87, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.39, i64 0, i64 0))
%89 = load i32, i32* @stderr
%90 = call i32 @fprintf(i32 %89, i8* getelementptr inbounds ([130 x i8], [130 x i8]* @.str.40, i64 0, i64 0))
%91 = load i32, i32* @stderr
%92 = call i32 @fprintf(i32 %91, i8* getelementptr inbounds ([130 x i8], [130 x i8]* @.str.41, i64 0, i64 0))
%93 = load i32, i32* @stderr
%94 = call i32 @fprintf(i32 %93, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.42, i64 0, i64 0))
%95 = load i32, i32* @stderr
%96 = call i32 @fprintf(i32 %95, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.43, i64 0, i64 0))
%97 = load i32, i32* @stderr
%98 = call i32 @fprintf(i32 %97, i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.44, i64 0, i64 0))
%99 = load i32, i32* @stderr
%100 = call i32 @fprintf(i32 %99, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.45, i64 0, i64 0))
%101 = load i32, i32* @stderr
%102 = call i32 @fprintf(i32 %101, i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.46, i64 0, i64 0))
%103 = load i32, i32* @stderr
%104 = call i32 @fprintf(i32 %103, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%105 = load i32, i32* @stderr
%106 = call i32 @fprintf(i32 %105, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.47, i64 0, i64 0))
%107 = load i32, i32* @stderr
%108 = call i32 @fprintf(i32 %107, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%109 = load i32, i32* @stderr
%110 = call i32 @fprintf(i32 %109, i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.48, i64 0, i64 0))
%111 = load i32, i32* @stderr
%112 = call i32 @fprintf(i32 %111, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.49, i64 0, i64 0))
%113 = load i32, i32* @stderr
%114 = call i32 @fprintf(i32 %113, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%115 = load i32, i32* @stderr
%116 = call i32 @fprintf(i32 %115, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
%117 = load i32, i32* @stderr
%118 = call i32 @fprintf(i32 %117, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%119 = load i32, i32* @stderr
%120 = call i32 @fprintf(i32 %119, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.51, i64 0, i64 0))
%121 = load i32, i32* @stderr
%122 = call i32 @fprintf(i32 %121, i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.52, i64 0, i64 0))
%123 = load i32, i32* @stderr
%124 = call i32 @fprintf(i32 %123, i8* getelementptr inbounds ([113 x i8], [113 x i8]* @.str.53, i64 0, i64 0))
%125 = load i32, i32* @stderr
%126 = call i32 @fprintf(i32 %125, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.54, i64 0, i64 0))
%127 = load i32, i32* @stderr
%128 = call i32 @fprintf(i32 %127, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.55, i64 0, i64 0))
%129 = load i32, i32* @stderr
%130 = call i32 @fprintf(i32 %129, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.56, i64 0, i64 0))
%131 = load i32, i32* @stderr
%132 = call i32 @fprintf(i32 %131, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.57, i64 0, i64 0))
%133 = load i32, i32* @stderr
%134 = call i32 @fprintf(i32 %133, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.58, i64 0, i64 0))
%135 = load i32, i32* @stderr
%136 = call i32 @fprintf(i32 %135, i8* getelementptr inbounds ([127 x i8], [127 x i8]* @.str.59, i64 0, i64 0))
%137 = load i32, i32* @stderr
%138 = call i32 @fprintf(i32 %137, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.60, i64 0, i64 0))
%139 = load i32, i32* @stderr
%140 = call i32 @fprintf(i32 %139, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.61, i64 0, i64 0))
%141 = load i32, i32* @stderr
%142 = call i32 @fprintf(i32 %141, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.62, i64 0, i64 0))
%143 = load i32, i32* @stderr
%144 = call i32 @fprintf(i32 %143, i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.63, i64 0, i64 0))
%145 = load i32, i32* @stderr
%146 = call i32 @fprintf(i32 %145, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.64, i64 0, i64 0))
%147 = load i32, i32* @stderr
%148 = call i32 @fprintf(i32 %147, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.65, i64 0, i64 0))
%149 = load i32, i32* @stderr
%150 = call i32 @fprintf(i32 %149, i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.66, i64 0, i64 0))
%151 = load i32, i32* @stderr
%152 = call i32 @fprintf(i32 %151, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%153 = load i32, i32* @stderr
%154 = call i32 @fprintf(i32 %153, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.67, i64 0, i64 0))
%155 = load i32, i32* @stderr
%156 = call i32 @fprintf(i32 %155, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%157 = load i32, i32* @stderr
%158 = call i32 @fprintf(i32 %157, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.68, i64 0, i64 0))
%159 = load i32, i32* @stderr
%160 = call i32 @fprintf(i32 %159, i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.69, i64 0, i64 0))
%161 = load i32, i32* @stderr
%162 = call i32 @fprintf(i32 %161, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%163 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [2 x i8] c"\0A\00"
@.str.1 = [42 x i8] c"You can specify the following arguments:\0A\00"
@.str.2 = [23 x i8] c"System specification:\0A\00"
@.str.3 = [92 x i8] c"-bulge : all system parameters after this flag are set for the bulge system\0A\00"
@.str.4 = [91 x i8] c"-halo : all system parameters after this flag are set for the halo system\0A\00"
@.str.5 = [20 x i8] c"System parameters:\0A\00"
@.str.6 = [60 x i8] c"-a <value> : alpha parameter in density profile\0A\00"
@.str.7 = [59 x i8] c"-b <value> : beta parameter in density profile\0A\00"
@.str.8 = [60 x i8] c"-c <value> : gamma parameter in density profile\0A\00"
@.str.9 = [125 x i8] c"-M <value> <unit> : mass within rcutoff or total mass for finite mass models, <unit>: Mo or MU (optional - default: Mo)\0A\00"
@.str.10 = [43 x i8] c"-rs <value> : scale radius [LU]\0A\00"
@.str.11 = [44 x i8] c"-rcutoff <value> : cutoff radius [LU]\0A\00"
@.str.12 = [56 x i8] c"-cvir <value> : virial concentration parameter\0A\00"
@.str.13 = [56 x i8] c"-N0 <value> : number of particles within rsi\0A\00"
@.str.14 = [117 x i8] c"-soft0 <value> <unit> : softening of particles within rsi, <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.15 = [68 x i8] c"-rba_r0 <value> : r0 for axis ratio b/a [LU] (default: 1 LU)\0A\00"
@.str.16 = [59 x i8] c"-rba_at_r0 <value> : axis ratio b/a at r0 (default: 1)\0A\00"
@.str.17 = [71 x i8] c"-rba_slope <value> : slope for axis ratio b/a [1/dex] (default: 0)\0A\00"
@.str.18 = [71 x i8] c"-rba_min <value> : minimum value for axis ratio b/a (default: 0)\0A\00"
@.str.19 = [71 x i8] c"-rba_max <value> : maximum value for axis ratio b/a (default: 1)\0A\00"
@.str.20 = [68 x i8] c"-rca_r0 <value> : r0 for axis ratio c/a [LU] (default: 1 LU)\0A\00"
@.str.21 = [59 x i8] c"-rca_at_r0 <value> : axis ratio c/a at r0 (default: 1)\0A\00"
@.str.22 = [71 x i8] c"-rca_slope <value> : slope for axis ratio c/a [1/dex] (default: 0)\0A\00"
@.str.23 = [71 x i8] c"-rca_min <value> : minimum value for axis ratio c/a (default: 0)\0A\00"
@.str.24 = [71 x i8] c"-rca_max <value> : maximum value for axis ratio c/a (default: 1)\0A\00"
@.str.25 = [65 x i8] c"-alpha_r0 <value> : r0 for angle alpha [LU] (default: 1 LU)\0A\00"
@.str.26 = [89 x i8] c"-alpha_at_r0 <value> : angle alpha for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.27 = [75 x i8] c"-alpha_slope <value> : slope for angle alpha [2*pi rad/dex] (default: 0)\0A\00"
@.str.28 = [79 x i8] c"-alpha_min <value> : minimum value for angle alpha [2*pi rad] (default: 0)\0A\00"
@.str.29 = [79 x i8] c"-alpha_max <value> : maximum value for angle alpha [2*pi rad] (default: 1)\0A\00"
@.str.30 = [64 x i8] c"-beta_r0 <value> : r0 for angle beta [LU] (default: 1 LU)\0A\00"
@.str.31 = [88 x i8] c"-beta_at_r0 <value> : angle beta for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.32 = [74 x i8] c"-beta_slope <value> : slope for angle beta [2*pi rad/dex] (default: 0)\0A\00"
@.str.33 = [78 x i8] c"-beta_min <value> : minimum value for angle beta [2*pi rad] (default: 0)\0A\00"
@.str.34 = [78 x i8] c"-beta_max <value> : maximum value for angle beta [2*pi rad] (default: 1)\0A\00"
@.str.35 = [65 x i8] c"-gamma_r0 <value> : r0 for angle gamma [LU] (default: 1 LU)\0A\00"
@.str.36 = [89 x i8] c"-gamma_at_r0 <value> : angle gamma for z-x'-z'' rotation at r0 [2*pi rad] (default: 0)\0A\00"
@.str.37 = [75 x i8] c"-gamma_slope <value> : slope for angle gamma [2*pi rad/dex] (default: 0)\0A\00"
@.str.38 = [79 x i8] c"-gamma_min <value> : minimum value for angle gamma [2*pi rad] (default: 0)\0A\00"
@.str.39 = [79 x i8] c"-gamma_max <value> : maximum value for angle gamma [2*pi rad] (default: 1)\0A\00"
@.str.40 = [130 x i8] c"-rsi <value> <unit> : inner shell radius (default: rcutoff / router), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.41 = [130 x i8] c"-rso <value> <unit> : outer shell radius (default: rcutoff / router), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.42 = [75 x i8] c"-Nshell <value> : number of shells between rsi and rso (default: 0)\0A\00"
@.str.43 = [89 x i8] c"-DRMmax <value> : maximum mass ratio between two neighbouring shells (default: 1)\0A\00"
@.str.44 = [133 x i8] c"-rmor <value> <unit> : maximum orbital refinement radius (default: 0 LU), <unit>: LU, rs, rvir or rcutoff (optional - default: LU)\0A\00"
@.str.45 = [101 x i8] c"-Ismor <value> : maximum index of shell where orbital refinement is done (default: Nshell+1)\0A\00"
@.str.46 = [76 x i8] c"-dfsf <value> : distribution function split factor (default: 0.01)\0A\00"
@.str.47 = [24 x i8] c"Black hole parameters:\0A\00"
@.str.48 = [87 x i8] c"-MBH <value> <unit> : mass of black hole, <unit>: Mo or MU (optional - default: Mo)\0A\00"
@.str.49 = [54 x i8] c"-softBH <value> : softening of black hole [LU]\0A\00"
@.str.50 = [21 x i8] c"General parameters:\0A\00"
@.str.51 = [49 x i8] c"-name <value> : name of the output file\0A\00"
@.str.52 = [77 x i8] c"-Ngridr <value> : number of grid points for grid in r (default: 2001)\0A\00"
@.str.53 = [113 x i8] c"-Ngriddf <value> : number of grid points for grid for distribution function for each system (default: 101)\0A\00"
@.str.54 = [48 x i8] c"-OmegaM0 <value> : OmegaM0 (default: 0.3)\0A\00"
@.str.55 = [48 x i8] c"-OmegaK0 <value> : OmegaK0 (default: 0.0)\0A\00"
@.str.56 = [48 x i8] c"-OmegaL0 <value> : OmegaL0 (default: 0.7)\0A\00"
@.str.57 = [60 x i8] c"-h0 <value> : Hubble parameter h0 (default: 0.7)\0A\00"
@.str.58 = [49 x i8] c"-z <value> : Redshift z (default: 0)\0A\00"
@.str.59 = [127 x i8] c"-Deltavirz <value> : virial overdensity (default: 178*[OmegaMz^0.45] if OmegaK0 = 0 and 178*[OmegaMz^0.30] if OmegaL0 = 0)\0A\00"
@.str.60 = [64 x i8] c"-ogr : set this flag for outputting grid in r\0A\00"
@.str.61 = [101 x i8] c"-ogdf : set this flag for outputting grid for distribution function for each system\0A\00"
@.str.62 = [93 x i8] c"-ots : set this flag for writing particles in tipsy standard binary format\0A\00"
@.str.63 = [125 x i8] c"-otsdpp : set this flag for writing particles in tipsy standard binary format with double precision positions\0A\00"
@.str.64 = [101 x i8] c"-spherical : set this flag for initialising positions in spherical coordinates (default)\0A\00"
@.str.65 = [93 x i8] c"-ellipsoidal : set this flag for initialising positions in ellipsoidal coordinates\0A\00"
@.str.66 = [90 x i8] c"-po : set this flag for initialising positions only (velocities are 0)\0A\00"
@.str.67 = [16 x i8] c"Other options:\0A\00"
@.str.68 = [52 x i8] c"-h or -help : display this help and exit\0A\00"
@.str.69 = [62 x i8] c"-version : display version information and exit\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = tail call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = tail call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%7 = load i32, i32* @stderr
%8 = tail call i32 @fprintf(i32 %7, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.2, i64 0, i64 0))
%9 = load i32, i32* @stderr
%10 = tail call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%11 = load i32, i32* @stderr
%12 = tail call i32 @fprintf(i32 %11, i8* getelementptr inbounds ([92 x i8], [92 x i8]* @.str.3, i64 0, i64 0))
%13 = load i32, i32* @stderr
%14 = tail call i32 @fprintf(i32 %13, i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.4, i64 0, i64 0))
%15 = load i32, i32* @stderr
%16 = tail call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%17 = load i32, i32* @stderr
%18 = tail call i32 @fprintf(i32 %17, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.5, i64 0, i64 0))
%19 = load i32, i32* @stderr
%20 = tail call i32 @fprintf(i32 %19, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%21 = load i32, i32* @stderr
%22 = tail call i32 @fprintf(i32 %21, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.6, i64 0, i64 0))
%23 = load i32, i32* @stderr
%24 = tail call i32 @fprintf(i32 %23, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.7, i64 0, i64 0))
%25 = load i32, i32* @stderr
%26 = tail call i32 @fprintf(i32 %25, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.8, i64 0, i64 0))
%27 = load i32, i32* @stderr
%28 = tail call i32 @fprintf(i32 %27, i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.9, i64 0, i64 0))
%29 = load i32, i32* @stderr
%30 = tail call i32 @fprintf(i32 %29, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.10, i64 0, i64 0))
%31 = load i32, i32* @stderr
%32 = tail call i32 @fprintf(i32 %31, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.11, i64 0, i64 0))
%33 = load i32, i32* @stderr
%34 = tail call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.12, i64 0, i64 0))
%35 = load i32, i32* @stderr
%36 = tail call i32 @fprintf(i32 %35, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.13, i64 0, i64 0))
%37 = load i32, i32* @stderr
%38 = tail call i32 @fprintf(i32 %37, i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.14, i64 0, i64 0))
%39 = load i32, i32* @stderr
%40 = tail call i32 @fprintf(i32 %39, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.15, i64 0, i64 0))
%41 = load i32, i32* @stderr
%42 = tail call i32 @fprintf(i32 %41, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.16, i64 0, i64 0))
%43 = load i32, i32* @stderr
%44 = tail call i32 @fprintf(i32 %43, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.17, i64 0, i64 0))
%45 = load i32, i32* @stderr
%46 = tail call i32 @fprintf(i32 %45, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.18, i64 0, i64 0))
%47 = load i32, i32* @stderr
%48 = tail call i32 @fprintf(i32 %47, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.19, i64 0, i64 0))
%49 = load i32, i32* @stderr
%50 = tail call i32 @fprintf(i32 %49, i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.20, i64 0, i64 0))
%51 = load i32, i32* @stderr
%52 = tail call i32 @fprintf(i32 %51, i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.21, i64 0, i64 0))
%53 = load i32, i32* @stderr
%54 = tail call i32 @fprintf(i32 %53, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.22, i64 0, i64 0))
%55 = load i32, i32* @stderr
%56 = tail call i32 @fprintf(i32 %55, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.23, i64 0, i64 0))
%57 = load i32, i32* @stderr
%58 = tail call i32 @fprintf(i32 %57, i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.24, i64 0, i64 0))
%59 = load i32, i32* @stderr
%60 = tail call i32 @fprintf(i32 %59, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.25, i64 0, i64 0))
%61 = load i32, i32* @stderr
%62 = tail call i32 @fprintf(i32 %61, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.26, i64 0, i64 0))
%63 = load i32, i32* @stderr
%64 = tail call i32 @fprintf(i32 %63, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.27, i64 0, i64 0))
%65 = load i32, i32* @stderr
%66 = tail call i32 @fprintf(i32 %65, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.28, i64 0, i64 0))
%67 = load i32, i32* @stderr
%68 = tail call i32 @fprintf(i32 %67, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.29, i64 0, i64 0))
%69 = load i32, i32* @stderr
%70 = tail call i32 @fprintf(i32 %69, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.30, i64 0, i64 0))
%71 = load i32, i32* @stderr
%72 = tail call i32 @fprintf(i32 %71, i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.31, i64 0, i64 0))
%73 = load i32, i32* @stderr
%74 = tail call i32 @fprintf(i32 %73, i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.32, i64 0, i64 0))
%75 = load i32, i32* @stderr
%76 = tail call i32 @fprintf(i32 %75, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.33, i64 0, i64 0))
%77 = load i32, i32* @stderr
%78 = tail call i32 @fprintf(i32 %77, i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.34, i64 0, i64 0))
%79 = load i32, i32* @stderr
%80 = tail call i32 @fprintf(i32 %79, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.35, i64 0, i64 0))
%81 = load i32, i32* @stderr
%82 = tail call i32 @fprintf(i32 %81, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.36, i64 0, i64 0))
%83 = load i32, i32* @stderr
%84 = tail call i32 @fprintf(i32 %83, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.37, i64 0, i64 0))
%85 = load i32, i32* @stderr
%86 = tail call i32 @fprintf(i32 %85, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.38, i64 0, i64 0))
%87 = load i32, i32* @stderr
%88 = tail call i32 @fprintf(i32 %87, i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.39, i64 0, i64 0))
%89 = load i32, i32* @stderr
%90 = tail call i32 @fprintf(i32 %89, i8* getelementptr inbounds ([130 x i8], [130 x i8]* @.str.40, i64 0, i64 0))
%91 = load i32, i32* @stderr
%92 = tail call i32 @fprintf(i32 %91, i8* getelementptr inbounds ([130 x i8], [130 x i8]* @.str.41, i64 0, i64 0))
%93 = load i32, i32* @stderr
%94 = tail call i32 @fprintf(i32 %93, i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.42, i64 0, i64 0))
%95 = load i32, i32* @stderr
%96 = tail call i32 @fprintf(i32 %95, i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.43, i64 0, i64 0))
%97 = load i32, i32* @stderr
%98 = tail call i32 @fprintf(i32 %97, i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.44, i64 0, i64 0))
%99 = load i32, i32* @stderr
%100 = tail call i32 @fprintf(i32 %99, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.45, i64 0, i64 0))
%101 = load i32, i32* @stderr
%102 = tail call i32 @fprintf(i32 %101, i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.46, i64 0, i64 0))
%103 = load i32, i32* @stderr
%104 = tail call i32 @fprintf(i32 %103, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%105 = load i32, i32* @stderr
%106 = tail call i32 @fprintf(i32 %105, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.47, i64 0, i64 0))
%107 = load i32, i32* @stderr
%108 = tail call i32 @fprintf(i32 %107, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%109 = load i32, i32* @stderr
%110 = tail call i32 @fprintf(i32 %109, i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.48, i64 0, i64 0))
%111 = load i32, i32* @stderr
%112 = tail call i32 @fprintf(i32 %111, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.49, i64 0, i64 0))
%113 = load i32, i32* @stderr
%114 = tail call i32 @fprintf(i32 %113, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%115 = load i32, i32* @stderr
%116 = tail call i32 @fprintf(i32 %115, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
%117 = load i32, i32* @stderr
%118 = tail call i32 @fprintf(i32 %117, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%119 = load i32, i32* @stderr
%120 = tail call i32 @fprintf(i32 %119, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.51, i64 0, i64 0))
%121 = load i32, i32* @stderr
%122 = tail call i32 @fprintf(i32 %121, i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.52, i64 0, i64 0))
%123 = load i32, i32* @stderr
%124 = tail call i32 @fprintf(i32 %123, i8* getelementptr inbounds ([113 x i8], [113 x i8]* @.str.53, i64 0, i64 0))
%125 = load i32, i32* @stderr
%126 = tail call i32 @fprintf(i32 %125, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.54, i64 0, i64 0))
%127 = load i32, i32* @stderr
%128 = tail call i32 @fprintf(i32 %127, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.55, i64 0, i64 0))
%129 = load i32, i32* @stderr
%130 = tail call i32 @fprintf(i32 %129, i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.56, i64 0, i64 0))
%131 = load i32, i32* @stderr
%132 = tail call i32 @fprintf(i32 %131, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.57, i64 0, i64 0))
%133 = load i32, i32* @stderr
%134 = tail call i32 @fprintf(i32 %133, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.58, i64 0, i64 0))
%135 = load i32, i32* @stderr
%136 = tail call i32 @fprintf(i32 %135, i8* getelementptr inbounds ([127 x i8], [127 x i8]* @.str.59, i64 0, i64 0))
%137 = load i32, i32* @stderr
%138 = tail call i32 @fprintf(i32 %137, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.60, i64 0, i64 0))
%139 = load i32, i32* @stderr
%140 = tail call i32 @fprintf(i32 %139, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.61, i64 0, i64 0))
%141 = load i32, i32* @stderr
%142 = tail call i32 @fprintf(i32 %141, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.62, i64 0, i64 0))
%143 = load i32, i32* @stderr
%144 = tail call i32 @fprintf(i32 %143, i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.63, i64 0, i64 0))
%145 = load i32, i32* @stderr
%146 = tail call i32 @fprintf(i32 %145, i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.64, i64 0, i64 0))
%147 = load i32, i32* @stderr
%148 = tail call i32 @fprintf(i32 %147, i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.65, i64 0, i64 0))
%149 = load i32, i32* @stderr
%150 = tail call i32 @fprintf(i32 %149, i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.66, i64 0, i64 0))
%151 = load i32, i32* @stderr
%152 = tail call i32 @fprintf(i32 %151, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%153 = load i32, i32* @stderr
%154 = tail call i32 @fprintf(i32 %153, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.67, i64 0, i64 0))
%155 = load i32, i32* @stderr
%156 = tail call i32 @fprintf(i32 %155, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%157 = load i32, i32* @stderr
%158 = tail call i32 @fprintf(i32 %157, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.68, i64 0, i64 0))
%159 = load i32, i32* @stderr
%160 = tail call i32 @fprintf(i32 %159, i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.69, i64 0, i64 0))
%161 = load i32, i32* @stderr
%162 = tail call i32 @fprintf(i32 %161, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%163 = tail call i32 @exit(i32 1)
unreachable
}