#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*/ fputc(char, int /*<<< orphan*/);
int /*<<< orphan*/ fputs(char *, int /*<<< orphan*/);
int /*<<< orphan*/ stdout;
void print_usage(void) {
  fputs("Usage: tbd [-p/--path] [path-options] [file-paths] [-o/--output] "
        "[output-options] [output-paths]\n",
        stdout);
  fputs("Main options:\n", stdout);
  fputs("    -h, --help,   Print this message\n", stdout);
  fputs("    -o, --output, Path to an output file (or directory for "
        "recursing/dyld_shared_cache files) to write converted tbd files.\n",
        stdout);
  fputs("                  If provided file(s) already exists, contents will "
        "be overridden.\n",
        stdout);
  fputs("                  Can also provide \"stdout\" to print to stdout\n",
        stdout);
  fputs("    -p, --path,   Path to a mach-o or dyld_shared_cache file to "
        "convert to a tbd file.\n",
        stdout);
  fputs("                  Can also provide \"stdin\" to use standard input.\n",
        stdout);
  fputs("    -u, --usage,  Print this message\n", stdout);
  fputc('\n', stdout);
  fputs("Write options:\n", stdout);
  fputs("Usage: tbd -o [options] path\n", stdout);
  fputs("        --preserve-subdirs,       Preserve the sub-directories of "
        "where files were found\n",
        stdout);
  fputs("                                  when recursing in relation to the "
        "actual provided recurse-path\n",
        stdout);
  fputs("        --no-overwrite,           Prevent overwriting of files when "
        "writing out\n",
        stdout);
  fputs("        --replace-path-extension, Replace the path-extension(s) of "
        "provided file(s) when\n",
        stdout);
  fputs("                                  writing out (Instead of simply "
        "appending .tbd)\n",
        stdout);
  fputs("        --combine-tbds,           Combine all tbds created (when "
        "recursing or with a dyld-shared-cache) into a\n",
        stdout);
  fputs("                                  single .tbd file\n", stdout);
  fputc('\n', stdout);
  fputs("Path options:\n", stdout);
  fputs("Usage: tbd [-p] [options] path\n", stdout);
  fputs("    -r, --recurse, Specify directory to recurse and find all mach-o "
        "library and dyld_shared_cache images\n",
        stdout);
  fputs("                   Two modes exist for recursing:\n", stdout);
  fputs("                       once, Recurse only the top-level directory. "
        "This is the default mode for recursing\n",
        stdout);
  fputs("                       all,  Recurse both the top-level directory and "
        "over all sub-directories\n",
        stdout);
  fputs("        --macho,                         Specify that the file(s) "
        "provided should only be parsed\n",
        stdout);
  fputs("                                         if the file is a mach-o "
        "file.\n",
        stdout);
  fputs("                                         This option can be used to "
        "limit the filetypes parsed\n",
        stdout);
  fputs("                                         while recursing\n", stdout);
  fputs("        --dsc,                           Specify that the file(s) "
        "provided should only be parsed\n",
        stdout);
  fputs("                                         if it is a dyld-shared-cache "
        "file.\n",
        stdout);
  fputs("                                         Providing --macho or --dsc "
        "limits filetypes parsed when recursing\n",
        stdout);
  fputs("               --filter-image-directory, Specify a directory to "
        "filter dyld_shared_cache images from\n",
        stdout);
  fputs("               --filter-image-filename,  Specify a filename to filter "
        "dyld_shared_cache images from\n",
        stdout);
  fputs("               --filter-image-number,    Specify the number of an "
        "dyld_shared_cache image to parse out.\n",
        stdout);
  fputs("                                         To get the numbers of all "
        "available images, use the option --list-dsc-images\n",
        stdout);
  fputs("               --image-path,             Specify the path of an image "
        "to parse out.\n",
        stdout);
  fputs("                                         To get the paths of all "
        "available images, use the option --list-dsc-images\n",
        stdout);
  fputs("        -v, --version,                   Specify version of .tbd "
        "files to convert to (default is v2).\n",
        stdout);
  fputs("                                         This applies to all files "
        "where tbd-version was not explicitly set.\n",
        stdout);
  fputs("                                         To get a list of all "
        "available versions, look at the options below, or use\n",
        stdout);
  fputs("                                         the option "
        "--list-tbd-versions\n",
        stdout);
  fputs("        -v1,                             Set version of .tbd files to "
        "version v1.\n",
        stdout);
  fputs("        -v2,                             Set version of .tbd files to "
        "version v2. (This is the default .tbd version)\n",
        stdout);
  fputs("        -v3,                             Set version of .tbd files to "
        "version v3.\n",
        stdout);
  fputs("        -v4,                             Set version of .tbd files to "
        "version v4.\n",
        stdout);
  fputc('\n', stdout);
  fputs("Ignore options: (Subset of path options)\n", stdout);
  fputs("        --ignore-clients,          Ignore clients field\n", stdout);
  fputs(
      "        --ignore-compat-version,   Ignore compatibility-version field\n",
      stdout);
  fputs("        --ignore-current-version,  Ignore current-version field\n",
        stdout);
  fputs("        --ignore-flags,            Ignore flags field\n", stdout);
  fputs("        --ignore-objc-constraint,  Ignore objc-constraint field\n",
        stdout);
  fputs("        --ignore-parent-umbrellas, Ignore parent-umbrella field\n",
        stdout);
  fputs("        --ignore-reexports,        Ignore re-expotrs field\n", stdout);
  fputs("        --ignore-swift-version,    Ignore swift-version field\n",
        stdout);
  fputs("        --ignore-undefineds,       Ignore undefineds field\n", stdout);
  fputs("        --ignore-uuids,            Ignore uuids field\n", stdout);
  fputc('\n', stdout);
  fputs("Symbol Ignore options: (Subset of path options)\n", stdout);
  fputs("        --ignore-normal-syms,       Ignore normal symbols\n", stdout);
  fputs("        --ignore-objc-class-syms,   Ignore objc-class symbols\n",
        stdout);
  fputs("        --ignore-objc-ivar-syms,    Ignore objc-ivar symbols\n",
        stdout);
  fputs("        --ignore-objc-ehtype-syms,  Ignore objc-ehtype symbols\n",
        stdout);
  fputs("        --ignore-thread-local-syms, Ignore thread-local symbols\n",
        stdout);
  fputs("        --ignore-weak-def-syms,     Ignore weak-def symbols\n",
        stdout);
  fputc('\n', stdout);
  fputs("General ignore options (Subset of path options):\n", stdout);
  fputs(
      "        --ignore-requests,          Ignore any and all user requests\n",
      stdout);
  fputs("        --ignore-warnings,          Ignore any warnings\n", stdout);
  fputs("        --ignore-wrong-filetype,    Ignore any warnings about a "
        "mach-o file\n",
        stdout);
  fputs("                                    having the wrong filetype\n",
        stdout);
  fputc('\n', stdout);
  fputs("Symbol options: (Subset of path options)\n", stdout);
  fputs("        --allow-private-objc-symbols,   Allow all non-external "
        "objc-symbols (classes, ivars, and ehtypes)\n",
        stdout);
  fputs("        --allow-private-objc-classes,   Allow all non-external "
        "objc-classes\n",
        stdout);
  fputs("        --allow-private-objc-ehtypes,   Allow all non-external "
        "objc-ehtypes.\n",
        stdout);
  fputs("                                        objc-ehtype symbols are only "
        "recognized for .tbd version v3 and above\n",
        stdout);
  fputs("        --allow-private-objc-ivars,     Allow all non-external "
        "objc-ivars\n",
        stdout);
  fputs("        --use-export-trie,              Use only the export-trie and "
        "not the symbol-table\n",
        stdout);
  fputs("        --use-symbol-table,             Use the symbol-table over the "
        "export-trie\n",
        stdout);
  fputc('\n', stdout);
  fputs("Field options: (Subset of path options)\n", stdout);
  fputs("        --replace-archs,           Provide a list of architectures to "
        "replace the list found in the provided input file(s)\n",
        stdout);
  fputs("                                   A list of architectures can be "
        "found by using option --list-architectures.\n",
        stdout);
  fputs("                                   Replacing the list of "
        "architectures will automatically remove the uuids field.\n",
        stdout);
  fputs("                                   In addition, each exported symbol "
        "will have the replaced list of architectures.\n",
        stdout);
  fputs("        --replace-current-version, Provide a current-version to "
        "replace the one found in the provided input file(s)\n",
        stdout);
  fputs("        --replace-compat-version,  Provide a compatibility-version to "
        "replace the one found in the provided input file(s)\n",
        stdout);
  fputs("        --replace-flags,           Provide flag(s) to replace flags "
        "found for .tbd files.\n",
        stdout);
  fputs("                                   This option is only supported for "
        ".tbd versions v2 (default version) and above.\n",
        stdout);
  fputs("                                   A list of flags can be found by "
        "using option --list-tbd-flags\n",
        stdout);
  fputs("        --replace-install-name,    Provide an install-name to replace "
        "the one found in the provided input file(s)\n",
        stdout);
  fputs("        --replace-objc-constraint, Provide an objc-constraint to "
        "replace the one found in the provided input file(s)\n",
        stdout);
  fputs("                                   A list of objc-constraints can be "
        "found by using option --list-objc-constraints.\n",
        stdout);
  fputs("                                   This option is only supported for "
        ".tbd versions v2 and v3.\n",
        stdout);
  fputs("                                   All other .tbd versions do not "
        "support objc-constraint\n",
        stdout);
  fputs("        --replace-platform,        Provide a platform to replace the "
        "one found for in the provided input file(s)\n",
        stdout);
  fputs("        --replace-swift-version,   Provide a swift-version to replace "
        "the one found for in the provided input file(s)\n",
        stdout);
  fputs("        --replace-targets,         Provide a list of targets to "
        "replace the list found in the provided input file(s).\n",
        stdout);
  fputs("                                   A target is in the form of "
        "arch-platform pair (ex. arm64-ios).\n",
        stdout);
  fputs("                                   A list of architectures can be "
        "found by using option --list-architectures.\n",
        stdout);
  fputs("                                   A list of platforms can be found "
        "by using option --list-platforms.\n",
        stdout);
  fputs("                                   --replace-targets is only "
        "supported tbd-version v4\n",
        stdout);
  fputc('\n', stdout);
  fputs("Ignore field warning options: (Subset of path options)\n", stdout);
  fputs("        --ignore-missing-exports,  Ignore error for when no symbols "
        "or reexpors to write out\n",
        stdout);
  fputs("                                   are found\n", stdout);
  fputs("        --ignore-missing-uuids,    Ignore error for when uuids are "
        "not found\n",
        stdout);
  fputs("        --ignore-non-unique-uuids, Ignore error for when uuids found "
        "are not unique among one another\n",
        stdout);
  fputc('\n', stdout);
  fputs("List options:\n", stdout);
  fputs("        --list-architectures,    List all valid architectures for "
        ".tbd files.\n",
        stdout);
  fputs("                                 Also able to list architectures of a "
        "single mach-o file from a provided path\n",
        stdout);
  fputs("        --list-dsc-images,       List all images of a "
        "dyld_shared_cache from a path to a single dyld_shared_cache file\n",
        stdout);
  fputs("                                 One option exists for listing "
        "dsc-images:\n",
        stdout);
  fputs("                                     --ordered\n", stdout);
  fputs("                                         Order image-paths "
        "alphabetically before printing them.\n",
        stdout);
  fputs("                                         An image-path's listed "
        "number from the ordered list should not be provided\n",
        stdout);
  fputs("                                         for option "
        "--filter-image-number\n",
        stdout);
  fputs("        --list-objc-constraints, List all valid objc-constraints\n",
        stdout);
  fputs("        --list-platforms,        List all valid platforms\n", stdout);
  fputs(
      "        --list-tbd-flags,        List all valid flags for .tbd files\n",
      stdout);
  fputs("        --list-tbd-versions,     List all valid versions for .tbd "
        "files\n",
        stdout);
}


x86 assembly (clang, -O0):
<print_usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x4eb5(%rip),%rax
mov    (%rax),%esi
lea    0xecc(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4ea0(%rip),%rax
mov    (%rax),%esi
lea    0xf19(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e8b(%rip),%rax
mov    (%rax),%esi
lea    0xf13(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e76(%rip),%rax
mov    (%rax),%esi
lea    0xf24(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e61(%rip),%rax
mov    (%rax),%esi
lea    0xf8c(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e4c(%rip),%rax
mov    (%rax),%esi
lea    0xfcb(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e37(%rip),%rax
mov    (%rax),%esi
lea    0xff6(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e22(%rip),%rax
mov    (%rax),%esi
lea    0x1039(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4e0d(%rip),%rax
mov    (%rax),%esi
lea    0x1067(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4df8(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x4de5(%rip),%rax
mov    (%rax),%esi
lea    0x1065(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4dd0(%rip),%rax
mov    (%rax),%esi
lea    0x1060(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4dbb(%rip),%rax
mov    (%rax),%esi
lea    0x1069(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4da6(%rip),%rax
mov    (%rax),%esi
lea    0x10ae(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d91(%rip),%rax
mov    (%rax),%esi
lea    0x10fb(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d7c(%rip),%rax
mov    (%rax),%esi
lea    0x1137(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d67(%rip),%rax
mov    (%rax),%esi
lea    0x117c(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d52(%rip),%rax
mov    (%rax),%esi
lea    0x11b9(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d3d(%rip),%rax
mov    (%rax),%esi
lea    0x1214(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d28(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x4d15(%rip),%rax
mov    (%rax),%esi
lea    0x1220(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4d00(%rip),%rax
mov    (%rax),%esi
lea    0x121a(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4ceb(%rip),%rax
mov    (%rax),%esi
lea    0x1225(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4cd6(%rip),%rax
mov    (%rax),%esi
lea    0x127a(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4cc1(%rip),%rax
mov    (%rax),%esi
lea    0x1298(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4cac(%rip),%rax
mov    (%rax),%esi
lea    0x12ee(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c97(%rip),%rax
mov    (%rax),%esi
lea    0x1339(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c82(%rip),%rax
mov    (%rax),%esi
lea    0x1386(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c6d(%rip),%rax
mov    (%rax),%esi
lea    0x13b9(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c58(%rip),%rax
mov    (%rax),%esi
lea    0x1404(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c43(%rip),%rax
mov    (%rax),%esi
lea    0x1429(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c2e(%rip),%rax
mov    (%rax),%esi
lea    0x1476(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c19(%rip),%rax
mov    (%rax),%esi
lea    0x14ae(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4c04(%rip),%rax
mov    (%rax),%esi
lea    0x1505(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4bef(%rip),%rax
mov    (%rax),%esi
lea    0x1556(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4bda(%rip),%rax
mov    (%rax),%esi
lea    0x15a6(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4bc5(%rip),%rax
mov    (%rax),%esi
lea    0x15fa(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4bb0(%rip),%rax
mov    (%rax),%esi
lea    0x165c(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b9b(%rip),%rax
mov    (%rax),%esi
lea    0x169c(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b86(%rip),%rax
mov    (%rax),%esi
lea    0x16fc(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b71(%rip),%rax
mov    (%rax),%esi
lea    0x174e(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b5c(%rip),%rax
mov    (%rax),%esi
lea    0x17a7(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b47(%rip),%rax
mov    (%rax),%esi
lea    0x1807(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b32(%rip),%rax
mov    (%rax),%esi
lea    0x183b(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b1d(%rip),%rax
mov    (%rax),%esi
lea    0x1879(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4b08(%rip),%rax
mov    (%rax),%esi
lea    0x18da(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4af3(%rip),%rax
mov    (%rax),%esi
lea    0x1918(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4ade(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x4acb(%rip),%rax
mov    (%rax),%esi
lea    0x1bb2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4ab6(%rip),%rax
mov    (%rax),%esi
lea    0x192e(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4aa1(%rip),%rax
mov    (%rax),%esi
lea    0x1952(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a8c(%rip),%rax
mov    (%rax),%esi
lea    0x1984(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a77(%rip),%rax
mov    (%rax),%esi
lea    0x19b0(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a62(%rip),%rax
mov    (%rax),%esi
lea    0x19d2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a4d(%rip),%rax
mov    (%rax),%esi
lea    0x19fe(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a38(%rip),%rax
mov    (%rax),%esi
lea    0x1a2a(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a23(%rip),%rax
mov    (%rax),%esi
lea    0x1a51(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4a0e(%rip),%rax
mov    (%rax),%esi
lea    0x1a7b(%rip),%rdi
call   1030 <fputs@plt>
mov    0x49f9(%rip),%rax
mov    (%rax),%esi
lea    0x1aa2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x49e4(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x49d1(%rip),%rax
mov    (%rax),%esi
lea    0x1ab1(%rip),%rdi
call   1030 <fputs@plt>
mov    0x49bc(%rip),%rax
mov    (%rax),%esi
lea    0x1acd(%rip),%rdi
call   1030 <fputs@plt>
mov    0x49a7(%rip),%rax
mov    (%rax),%esi
lea    0x1af3(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4992(%rip),%rax
mov    (%rax),%esi
lea    0x1b1d(%rip),%rdi
call   1030 <fputs@plt>
mov    0x497d(%rip),%rax
mov    (%rax),%esi
lea    0x1b46(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4968(%rip),%rax
mov    (%rax),%esi
lea    0x1b71(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4953(%rip),%rax
mov    (%rax),%esi
lea    0x1b9d(%rip),%rdi
call   1030 <fputs@plt>
mov    0x493e(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x492b(%rip),%rax
mov    (%rax),%esi
lea    0x1bb2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4916(%rip),%rax
mov    (%rax),%esi
lea    0x1bcf(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4901(%rip),%rax
mov    (%rax),%esi
lea    0x1c00(%rip),%rdi
call   1030 <fputs@plt>
mov    0x48ec(%rip),%rax
mov    (%rax),%esi
lea    0x1c24(%rip),%rdi
call   1030 <fputs@plt>
mov    0x48d7(%rip),%rax
mov    (%rax),%esi
lea    0x1c5c(%rip),%rdi
call   1030 <fputs@plt>
mov    0x48c2(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x48af(%rip),%rax
mov    (%rax),%esi
lea    0x1c73(%rip),%rdi
call   1030 <fputs@plt>
mov    0x489a(%rip),%rax
mov    (%rax),%esi
lea    0x1c88(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4885(%rip),%rax
mov    (%rax),%esi
lea    0x1cde(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4870(%rip),%rax
mov    (%rax),%esi
lea    0x1d16(%rip),%rdi
call   1030 <fputs@plt>
mov    0x485b(%rip),%rax
mov    (%rax),%esi
lea    0x1d4f(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4846(%rip),%rax
mov    (%rax),%esi
lea    0x1da9(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4831(%rip),%rax
mov    (%rax),%esi
lea    0x1ddf(%rip),%rdi
call   1030 <fputs@plt>
mov    0x481c(%rip),%rax
mov    (%rax),%esi
lea    0x1e25(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4807(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x47f4(%rip),%rax
mov    (%rax),%esi
lea    0x1e50(%rip),%rdi
call   1030 <fputs@plt>
mov    0x47df(%rip),%rax
mov    (%rax),%esi
lea    0x1e64(%rip),%rdi
call   1030 <fputs@plt>
mov    0x47ca(%rip),%rax
mov    (%rax),%esi
lea    0x1ecb(%rip),%rdi
call   1030 <fputs@plt>
mov    0x47b5(%rip),%rax
mov    (%rax),%esi
lea    0x1f25(%rip),%rdi
call   1030 <fputs@plt>
mov    0x47a0(%rip),%rax
mov    (%rax),%esi
lea    0x1f83(%rip),%rdi
call   1030 <fputs@plt>
mov    0x478b(%rip),%rax
mov    (%rax),%esi
lea    0x1fe2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4776(%rip),%rax
mov    (%rax),%esi
lea    0x2042(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4761(%rip),%rax
mov    (%rax),%esi
lea    0x20a8(%rip),%rdi
call   1030 <fputs@plt>
mov    0x474c(%rip),%rax
mov    (%rax),%esi
lea    0x20ee(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4737(%rip),%rax
mov    (%rax),%esi
lea    0x214d(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4722(%rip),%rax
mov    (%rax),%esi
lea    0x219a(%rip),%rdi
call   1030 <fputs@plt>
mov    0x470d(%rip),%rax
mov    (%rax),%esi
lea    0x21f8(%rip),%rdi
call   1030 <fputs@plt>
mov    0x46f8(%rip),%rax
mov    (%rax),%esi
lea    0x2259(%rip),%rdi
call   1030 <fputs@plt>
mov    0x46e3(%rip),%rax
mov    (%rax),%esi
lea    0x22b9(%rip),%rdi
call   1030 <fputs@plt>
mov    0x46ce(%rip),%rax
mov    (%rax),%esi
lea    0x2303(%rip),%rdi
call   1030 <fputs@plt>
mov    0x46b9(%rip),%rax
mov    (%rax),%esi
lea    0x2349(%rip),%rdi
call   1030 <fputs@plt>
mov    0x46a4(%rip),%rax
mov    (%rax),%esi
lea    0x23a6(%rip),%rdi
call   1030 <fputs@plt>
mov    0x468f(%rip),%rax
mov    (%rax),%esi
lea    0x2408(%rip),%rdi
call   1030 <fputs@plt>
mov    0x467a(%rip),%rax
mov    (%rax),%esi
lea    0x246a(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4665(%rip),%rax
mov    (%rax),%esi
lea    0x1d66(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4650(%rip),%rax
mov    (%rax),%esi
lea    0x24a3(%rip),%rdi
call   1030 <fputs@plt>
mov    0x463b(%rip),%rax
mov    (%rax),%esi
lea    0x24f5(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4626(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x4613(%rip),%rax
mov    (%rax),%esi
lea    0x2524(%rip),%rdi
call   1030 <fputs@plt>
mov    0x45fe(%rip),%rax
mov    (%rax),%esi
lea    0x2547(%rip),%rdi
call   1030 <fputs@plt>
mov    0x45e9(%rip),%rax
mov    (%rax),%esi
lea    0x2590(%rip),%rdi
call   1030 <fputs@plt>
mov    0x45d4(%rip),%rax
mov    (%rax),%esi
lea    0x25a9(%rip),%rdi
call   1030 <fputs@plt>
mov    0x45bf(%rip),%rax
mov    (%rax),%esi
lea    0x25e2(%rip),%rdi
call   1030 <fputs@plt>
mov    0x45aa(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    0x4597(%rip),%rax
mov    (%rax),%esi
lea    0x2621(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4582(%rip),%rax
mov    (%rax),%esi
lea    0x261b(%rip),%rdi
call   1030 <fputs@plt>
mov    0x456d(%rip),%rax
mov    (%rax),%esi
lea    0x2655(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4558(%rip),%rax
mov    (%rax),%esi
lea    0x26af(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4543(%rip),%rax
mov    (%rax),%esi
lea    0x2712(%rip),%rdi
call   1030 <fputs@plt>
mov    0x452e(%rip),%rax
mov    (%rax),%esi
lea    0x2749(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4519(%rip),%rax
mov    (%rax),%esi
lea    0x2764(%rip),%rdi
call   1030 <fputs@plt>
mov    0x4504(%rip),%rax
mov    (%rax),%esi
lea    0x27b0(%rip),%rdi
call   1030 <fputs@plt>
mov    0x44ef(%rip),%rax
mov    (%rax),%esi
lea    0x2810(%rip),%rdi
call   1030 <fputs@plt>
mov    0x44da(%rip),%rax
mov    (%rax),%esi
lea    0x2846(%rip),%rdi
call   1030 <fputs@plt>
mov    0x44c5(%rip),%rax
mov    (%rax),%esi
lea    0x2873(%rip),%rdi
call   1030 <fputs@plt>
mov    0x44b0(%rip),%rax
mov    (%rax),%esi
lea    0x2899(%rip),%rdi
call   1030 <fputs@plt>
mov    0x449b(%rip),%rax
mov    (%rax),%esi
lea    0x28ca(%rip),%rdi
call   1030 <fputs@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_usage>:
push   %r14
push   %rbx
push   %rax
mov    0x4eb5(%rip),%rbx
mov    (%rbx),%esi
lea    0xecc(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0xf20(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0xf21(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0xf39(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0xfa8(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0xfee(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1020(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x106a(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x109f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x10ab(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x10ad(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x10bd(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1109(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x115d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x11a0(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x11ec(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1230(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1292(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x12ac(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x12ad(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x12bf(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x131b(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1340(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x139d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x13ef(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1443(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x147d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x14cf(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x14fb(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x154f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x158e(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x15ec(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1644(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x169b(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x16f6(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x175f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x17a6(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x180d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1866(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x18c6(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x192d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1968(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x19ad(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1a15(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1a5a(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x1d02(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1a85(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1ab0(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1ae9(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1b1c(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1b45(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1b78(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1bab(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1bd9(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1c0a(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1c38(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x1c55(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1c78(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1ca5(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1cd6(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1d06(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1d38(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1d6b(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x1d8e(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1db2(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1dea(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1e15(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1e54(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x1e79(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1e95(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1ef2(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1f31(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1f71(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x1fd2(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x200f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x205c(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x2095(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x20b0(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x211e(%rip),%r14
mov    %r14,%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x217c(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x21e1(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2247(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x22ae(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x231b(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2368(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x23ce(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2422(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2487(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x24ef(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2556(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x25a7(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x25f4(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2658(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x26c1(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x272a(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    %r14,%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2775(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x27ce(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x280b(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2835(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2885(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x28a5(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x28e5(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
mov    $0xa,%edi
call   1040 <fputc@plt>
mov    (%rbx),%esi
lea    0x2932(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2933(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2974(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x29d5(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2a3f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2a7d(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2a9f(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2af2(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2b59(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2b96(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2bca(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2bf7(%rip),%rdi
call   1030 <fputs@plt>
mov    (%rbx),%esi
lea    0x2c2f(%rip),%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1030 <fputs@plt>

LLVM IR (-O0):
@.str = [98 x i8] c"Usage: tbd [-p/--path] [path-options] [file-paths] [-o/--output] [output-options] [output-paths]\0A\00"
@stdout = global i32 0
@.str.1 = [15 x i8] c"Main options:\0A\00"
@.str.2 = [38 x i8] c" -h, --help, Print this message\0A\00"
@.str.3 = [125 x i8] c" -o, --output, Path to an output file (or directory for recursing/dyld_shared_cache files) to write converted tbd files.\0A\00"
@.str.4 = [84 x i8] c" If provided file(s) already exists, contents will be overridden.\0A\00"
@.str.5 = [64 x i8] c" Can also provide \22stdout\22 to print to stdout\0A\00"
@.str.6 = [88 x i8] c" -p, --path, Path to a mach-o or dyld_shared_cache file to convert to a tbd file.\0A\00"
@.str.7 = [67 x i8] c" Can also provide \22stdin\22 to use standard input.\0A\00"
@.str.8 = [38 x i8] c" -u, --usage, Print this message\0A\00"
@.str.9 = [16 x i8] c"Write options:\0A\00"
@.str.10 = [30 x i8] c"Usage: tbd -o [options] path\0A\00"
@.str.11 = [90 x i8] c" --preserve-subdirs, Preserve the sub-directories of where files were found\0A\00"
@.str.12 = [98 x i8] c" when recursing in relation to the actual provided recurse-path\0A\00"
@.str.13 = [81 x i8] c" --no-overwrite, Prevent overwriting of files when writing out\0A\00"
@.str.14 = [90 x i8] c" --replace-path-extension, Replace the path-extension(s) of provided file(s) when\0A\00"
@.str.15 = [82 x i8] c" writing out (Instead of simply appending .tbd)\0A\00"
@.str.16 = [112 x i8] c" --combine-tbds, Combine all tbds created (when recursing or with a dyld-shared-cache) into a\0A\00"
@.str.17 = [52 x i8] c" single .tbd file\0A\00"
@.str.18 = [15 x i8] c"Path options:\0A\00"
@.str.19 = [32 x i8] c"Usage: tbd [-p] [options] path\0A\00"
@.str.20 = [106 x i8] c" -r, --recurse, Specify directory to recurse and find all mach-o library and dyld_shared_cache images\0A\00"
@.str.21 = [51 x i8] c" Two modes exist for recursing:\0A\00"
@.str.22 = [107 x i8] c" once, Recurse only the top-level directory. This is the default mode for recursing\0A\00"
@.str.23 = [96 x i8] c" all, Recurse both the top-level directory and over all sub-directories\0A\00"
@.str.24 = [98 x i8] c" --macho, Specify that the file(s) provided should only be parsed\0A\00"
@.str.25 = [72 x i8] c" if the file is a mach-o file.\0A\00"
@.str.26 = [96 x i8] c" This option can be used to limit the filetypes parsed\0A\00"
@.str.27 = [58 x i8] c" while recursing\0A\00"
@.str.28 = [98 x i8] c" --dsc, Specify that the file(s) provided should only be parsed\0A\00"
@.str.29 = [77 x i8] c" if it is a dyld-shared-cache file.\0A\00"
@.str.30 = [108 x i8] c" Providing --macho or --dsc limits filetypes parsed when recursing\0A\00"
@.str.31 = [102 x i8] c" --filter-image-directory, Specify a directory to filter dyld_shared_cache images from\0A\00"
@.str.32 = [101 x i8] c" --filter-image-filename, Specify a filename to filter dyld_shared_cache images from\0A\00"
@.str.33 = [105 x i8] c" --filter-image-number, Specify the number of an dyld_shared_cache image to parse out.\0A\00"
@.str.34 = [119 x i8] c" To get the numbers of all available images, use the option --list-dsc-images\0A\00"
@.str.35 = [85 x i8] c" --image-path, Specify the path of an image to parse out.\0A\00"
@.str.36 = [117 x i8] c" To get the paths of all available images, use the option --list-dsc-images\0A\00"
@.str.37 = [103 x i8] c" -v, --version, Specify version of .tbd files to convert to (default is v2).\0A\00"
@.str.38 = [110 x i8] c" This applies to all files where tbd-version was not explicitly set.\0A\00"
@.str.39 = [117 x i8] c" To get a list of all available versions, look at the options below, or use\0A\00"
@.str.40 = [73 x i8] c" the option --list-tbd-versions\0A\00"
@.str.41 = [83 x i8] c" -v1, Set version of .tbd files to version v1.\0A\00"
@.str.42 = [118 x i8] c" -v2, Set version of .tbd files to version v2. (This is the default .tbd version)\0A\00"
@.str.43 = [83 x i8] c" -v3, Set version of .tbd files to version v3.\0A\00"
@.str.44 = [83 x i8] c" -v4, Set version of .tbd files to version v4.\0A\00"
@.str.45 = [42 x i8] c"Ignore options: (Subset of path options)\0A\00"
@.str.46 = [57 x i8] c" --ignore-clients, Ignore clients field\0A\00"
@.str.47 = [71 x i8] c" --ignore-compat-version, Ignore compatibility-version field\0A\00"
@.str.48 = [65 x i8] c" --ignore-current-version, Ignore current-version field\0A\00"
@.str.49 = [55 x i8] c" --ignore-flags, Ignore flags field\0A\00"
@.str.50 = [65 x i8] c" --ignore-objc-constraint, Ignore objc-constraint field\0A\00"
@.str.51 = [65 x i8] c" --ignore-parent-umbrellas, Ignore parent-umbrella field\0A\00"
@.str.52 = [60 x i8] c" --ignore-reexports, Ignore re-expotrs field\0A\00"
@.str.53 = [63 x i8] c" --ignore-swift-version, Ignore swift-version field\0A\00"
@.str.54 = [60 x i8] c" --ignore-undefineds, Ignore undefineds field\0A\00"
@.str.55 = [55 x i8] c" --ignore-uuids, Ignore uuids field\0A\00"
@.str.56 = [49 x i8] c"Symbol Ignore options: (Subset of path options)\0A\00"
@.str.57 = [59 x i8] c" --ignore-normal-syms, Ignore normal symbols\0A\00"
@.str.58 = [63 x i8] c" --ignore-objc-class-syms, Ignore objc-class symbols\0A\00"
@.str.59 = [62 x i8] c" --ignore-objc-ivar-syms, Ignore objc-ivar symbols\0A\00"
@.str.60 = [64 x i8] c" --ignore-objc-ehtype-syms, Ignore objc-ehtype symbols\0A\00"
@.str.61 = [65 x i8] c" --ignore-thread-local-syms, Ignore thread-local symbols\0A\00"
@.str.62 = [61 x i8] c" --ignore-weak-def-syms, Ignore weak-def symbols\0A\00"
@.str.63 = [50 x i8] c"General ignore options (Subset of path options):\0A\00"
@.str.64 = [70 x i8] c" --ignore-requests, Ignore any and all user requests\0A\00"
@.str.65 = [57 x i8] c" --ignore-warnings, Ignore any warnings\0A\00"
@.str.66 = [77 x i8] c" --ignore-wrong-filetype, Ignore any warnings about a mach-o file\0A\00"
@.str.67 = [63 x i8] c" having the wrong filetype\0A\00"
@.str.68 = [42 x i8] c"Symbol options: (Subset of path options)\0A\00"
@.str.69 = [107 x i8] c" --allow-private-objc-symbols, Allow all non-external objc-symbols (classes, ivars, and ehtypes)\0A\00"
@.str.70 = [77 x i8] c" --allow-private-objc-classes, Allow all non-external objc-classes\0A\00"
@.str.71 = [78 x i8] c" --allow-private-objc-ehtypes, Allow all non-external objc-ehtypes.\0A\00"
@.str.72 = [111 x i8] c" objc-ehtype symbols are only recognized for .tbd version v3 and above\0A\00"
@.str.73 = [75 x i8] c" --allow-private-objc-ivars, Allow all non-external objc-ivars\0A\00"
@.str.74 = [91 x i8] c" --use-export-trie, Use only the export-trie and not the symbol-table\0A\00"
@.str.75 = [83 x i8] c" --use-symbol-table, Use the symbol-table over the export-trie\0A\00"
@.str.76 = [41 x i8] c"Field options: (Subset of path options)\0A\00"
@.str.77 = [124 x i8] c" --replace-archs, Provide a list of architectures to replace the list found in the provided input file(s)\0A\00"
@.str.78 = [111 x i8] c" A list of architectures can be found by using option --list-architectures.\0A\00"
@.str.79 = [115 x i8] c" Replacing the list of architectures will automatically remove the uuids field.\0A\00"
@.str.80 = [116 x i8] c" In addition, each exported symbol will have the replaced list of architectures.\0A\00"
@.str.81 = [117 x i8] c" --replace-current-version, Provide a current-version to replace the one found in the provided input file(s)\0A\00"
@.str.82 = [123 x i8] c" --replace-compat-version, Provide a compatibility-version to replace the one found in the provided input file(s)\0A\00"
@.str.83 = [91 x i8] c" --replace-flags, Provide flag(s) to replace flags found for .tbd files.\0A\00"
@.str.84 = [116 x i8] c" This option is only supported for .tbd versions v2 (default version) and above.\0A\00"
@.str.85 = [98 x i8] c" A list of flags can be found by using option --list-tbd-flags\0A\00"
@.str.86 = [115 x i8] c" --replace-install-name, Provide an install-name to replace the one found in the provided input file(s)\0A\00"
@.str.87 = [118 x i8] c" --replace-objc-constraint, Provide an objc-constraint to replace the one found in the provided input file(s)\0A\00"
@.str.88 = [117 x i8] c" A list of objc-constraints can be found by using option --list-objc-constraints.\0A\00"
@.str.89 = [95 x i8] c" This option is only supported for .tbd versions v2 and v3.\0A\00"
@.str.90 = [91 x i8] c" All other .tbd versions do not support objc-constraint\0A\00"
@.str.91 = [114 x i8] c" --replace-platform, Provide a platform to replace the one found for in the provided input file(s)\0A\00"
@.str.92 = [119 x i8] c" --replace-swift-version, Provide a swift-version to replace the one found for in the provided input file(s)\0A\00"
@.str.93 = [119 x i8] c" --replace-targets, Provide a list of targets to replace the list found in the provided input file(s).\0A\00"
@.str.94 = [99 x i8] c" A target is in the form of arch-platform pair (ex. arm64-ios).\0A\00"
@.str.95 = [103 x i8] c" A list of platforms can be found by using option --list-platforms.\0A\00"
@.str.96 = [87 x i8] c" --replace-targets is only supported tbd-version v4\0A\00"
@.str.97 = [56 x i8] c"Ignore field warning options: (Subset of path options)\0A\00"
@.str.98 = [94 x i8] c" --ignore-missing-exports, Ignore error for when no symbols or reexpors to write out\0A\00"
@.str.99 = [46 x i8] c" are found\0A\00"
@.str.100 = [78 x i8] c" --ignore-missing-uuids, Ignore error for when uuids are not found\0A\00"
@.str.101 = [103 x i8] c" --ignore-non-unique-uuids, Ignore error for when uuids found are not unique among one another\0A\00"
@.str.102 = [15 x i8] c"List options:\0A\00"
@.str.103 = [79 x i8] c" --list-architectures, List all valid architectures for .tbd files.\0A\00"
@.str.104 = [111 x i8] c" Also able to list architectures of a single mach-o file from a provided path\0A\00"
@.str.105 = [120 x i8] c" --list-dsc-images, List all images of a dyld_shared_cache from a path to a single dyld_shared_cache file\0A\00"
@.str.106 = [76 x i8] c" One option exists for listing dsc-images:\0A\00"
@.str.107 = [48 x i8] c" --ordered\0A\00"
@.str.108 = [97 x i8] c" Order image-paths alphabetically before printing them.\0A\00"
@.str.109 = [117 x i8] c" An image-path's listed number from the ordered list should not be provided\0A\00"
@.str.110 = [75 x i8] c" for option --filter-image-number\0A\00"
@.str.111 = [66 x i8] c" --list-objc-constraints, List all valid objc-constraints\0A\00"
@.str.112 = [59 x i8] c" --list-platforms, List all valid platforms\0A\00"
@.str.113 = [70 x i8] c" --list-tbd-flags, List all valid flags for .tbd files\0A\00"
@.str.114 = [73 x i8] c" --list-tbd-versions, List all valid versions for .tbd files\0A\00"
define void @print_usage() {
%1 = load i32, i32* @stdout
%2 = call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str, i64 0, i64 0), i32 %1)
%3 = load i32, i32* @stdout
%4 = call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), i32 %3)
%5 = load i32, i32* @stdout
%6 = call i32 @fputs(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.2, i64 0, i64 0), i32 %5)
%7 = load i32, i32* @stdout
%8 = call i32 @fputs(i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.3, i64 0, i64 0), i32 %7)
%9 = load i32, i32* @stdout
%10 = call i32 @fputs(i8* getelementptr inbounds ([84 x i8], [84 x i8]* @.str.4, i64 0, i64 0), i32 %9)
%11 = load i32, i32* @stdout
%12 = call i32 @fputs(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.5, i64 0, i64 0), i32 %11)
%13 = load i32, i32* @stdout
%14 = call i32 @fputs(i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.6, i64 0, i64 0), i32 %13)
%15 = load i32, i32* @stdout
%16 = call i32 @fputs(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.7, i64 0, i64 0), i32 %15)
%17 = load i32, i32* @stdout
%18 = call i32 @fputs(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.8, i64 0, i64 0), i32 %17)
%19 = load i32, i32* @stdout
%20 = call i32 @fputc(i8 signext 10, i32 %19)
%21 = load i32, i32* @stdout
%22 = call i32 @fputs(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), i32 %21)
%23 = load i32, i32* @stdout
%24 = call i32 @fputs(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.10, i64 0, i64 0), i32 %23)
%25 = load i32, i32* @stdout
%26 = call i32 @fputs(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.11, i64 0, i64 0), i32 %25)
%27 = load i32, i32* @stdout
%28 = call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.12, i64 0, i64 0), i32 %27)
%29 = load i32, i32* @stdout
%30 = call i32 @fputs(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.13, i64 0, i64 0), i32 %29)
%31 = load i32, i32* @stdout
%32 = call i32 @fputs(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.14, i64 0, i64 0), i32 %31)
%33 = load i32, i32* @stdout
%34 = call i32 @fputs(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.15, i64 0, i64 0), i32 %33)
%35 = load i32, i32* @stdout
%36 = call i32 @fputs(i8* getelementptr inbounds ([112 x i8], [112 x i8]* @.str.16, i64 0, i64 0), i32 %35)
%37 = load i32, i32* @stdout
%38 = call i32 @fputs(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.17, i64 0, i64 0), i32 %37)
%39 = load i32, i32* @stdout
%40 = call i32 @fputc(i8 signext 10, i32 %39)
%41 = load i32, i32* @stdout
%42 = call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.18, i64 0, i64 0), i32 %41)
%43 = load i32, i32* @stdout
%44 = call i32 @fputs(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.19, i64 0, i64 0), i32 %43)
%45 = load i32, i32* @stdout
%46 = call i32 @fputs(i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.20, i64 0, i64 0), i32 %45)
%47 = load i32, i32* @stdout
%48 = call i32 @fputs(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0), i32 %47)
%49 = load i32, i32* @stdout
%50 = call i32 @fputs(i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str.22, i64 0, i64 0), i32 %49)
%51 = load i32, i32* @stdout
%52 = call i32 @fputs(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.23, i64 0, i64 0), i32 %51)
%53 = load i32, i32* @stdout
%54 = call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.24, i64 0, i64 0), i32 %53)
%55 = load i32, i32* @stdout
%56 = call i32 @fputs(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.25, i64 0, i64 0), i32 %55)
%57 = load i32, i32* @stdout
%58 = call i32 @fputs(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.26, i64 0, i64 0), i32 %57)
%59 = load i32, i32* @stdout
%60 = call i32 @fputs(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.27, i64 0, i64 0), i32 %59)
%61 = load i32, i32* @stdout
%62 = call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.28, i64 0, i64 0), i32 %61)
%63 = load i32, i32* @stdout
%64 = call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.29, i64 0, i64 0), i32 %63)
%65 = load i32, i32* @stdout
%66 = call i32 @fputs(i8* getelementptr inbounds ([108 x i8], [108 x i8]* @.str.30, i64 0, i64 0), i32 %65)
%67 = load i32, i32* @stdout
%68 = call i32 @fputs(i8* getelementptr inbounds ([102 x i8], [102 x i8]* @.str.31, i64 0, i64 0), i32 %67)
%69 = load i32, i32* @stdout
%70 = call i32 @fputs(i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.32, i64 0, i64 0), i32 %69)
%71 = load i32, i32* @stdout
%72 = call i32 @fputs(i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str.33, i64 0, i64 0), i32 %71)
%73 = load i32, i32* @stdout
%74 = call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.34, i64 0, i64 0), i32 %73)
%75 = load i32, i32* @stdout
%76 = call i32 @fputs(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.35, i64 0, i64 0), i32 %75)
%77 = load i32, i32* @stdout
%78 = call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.36, i64 0, i64 0), i32 %77)
%79 = load i32, i32* @stdout
%80 = call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.37, i64 0, i64 0), i32 %79)
%81 = load i32, i32* @stdout
%82 = call i32 @fputs(i8* getelementptr inbounds ([110 x i8], [110 x i8]* @.str.38, i64 0, i64 0), i32 %81)
%83 = load i32, i32* @stdout
%84 = call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.39, i64 0, i64 0), i32 %83)
%85 = load i32, i32* @stdout
%86 = call i32 @fputs(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.40, i64 0, i64 0), i32 %85)
%87 = load i32, i32* @stdout
%88 = call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.41, i64 0, i64 0), i32 %87)
%89 = load i32, i32* @stdout
%90 = call i32 @fputs(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.42, i64 0, i64 0), i32 %89)
%91 = load i32, i32* @stdout
%92 = call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.43, i64 0, i64 0), i32 %91)
%93 = load i32, i32* @stdout
%94 = call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.44, i64 0, i64 0), i32 %93)
%95 = load i32, i32* @stdout
%96 = call i32 @fputc(i8 signext 10, i32 %95)
%97 = load i32, i32* @stdout
%98 = call i32 @fputs(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.45, i64 0, i64 0), i32 %97)
%99 = load i32, i32* @stdout
%100 = call i32 @fputs(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.46, i64 0, i64 0), i32 %99)
%101 = load i32, i32* @stdout
%102 = call i32 @fputs(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.47, i64 0, i64 0), i32 %101)
%103 = load i32, i32* @stdout
%104 = call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.48, i64 0, i64 0), i32 %103)
%105 = load i32, i32* @stdout
%106 = call i32 @fputs(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.49, i64 0, i64 0), i32 %105)
%107 = load i32, i32* @stdout
%108 = call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.50, i64 0, i64 0), i32 %107)
%109 = load i32, i32* @stdout
%110 = call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.51, i64 0, i64 0), i32 %109)
%111 = load i32, i32* @stdout
%112 = call i32 @fputs(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.52, i64 0, i64 0), i32 %111)
%113 = load i32, i32* @stdout
%114 = call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.53, i64 0, i64 0), i32 %113)
%115 = load i32, i32* @stdout
%116 = call i32 @fputs(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.54, i64 0, i64 0), i32 %115)
%117 = load i32, i32* @stdout
%118 = call i32 @fputs(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.55, i64 0, i64 0), i32 %117)
%119 = load i32, i32* @stdout
%120 = call i32 @fputc(i8 signext 10, i32 %119)
%121 = load i32, i32* @stdout
%122 = call i32 @fputs(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.56, i64 0, i64 0), i32 %121)
%123 = load i32, i32* @stdout
%124 = call i32 @fputs(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.57, i64 0, i64 0), i32 %123)
%125 = load i32, i32* @stdout
%126 = call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.58, i64 0, i64 0), i32 %125)
%127 = load i32, i32* @stdout
%128 = call i32 @fputs(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.59, i64 0, i64 0), i32 %127)
%129 = load i32, i32* @stdout
%130 = call i32 @fputs(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.60, i64 0, i64 0), i32 %129)
%131 = load i32, i32* @stdout
%132 = call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.61, i64 0, i64 0), i32 %131)
%133 = load i32, i32* @stdout
%134 = call i32 @fputs(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.62, i64 0, i64 0), i32 %133)
%135 = load i32, i32* @stdout
%136 = call i32 @fputc(i8 signext 10, i32 %135)
%137 = load i32, i32* @stdout
%138 = call i32 @fputs(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.63, i64 0, i64 0), i32 %137)
%139 = load i32, i32* @stdout
%140 = call i32 @fputs(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.64, i64 0, i64 0), i32 %139)
%141 = load i32, i32* @stdout
%142 = call i32 @fputs(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.65, i64 0, i64 0), i32 %141)
%143 = load i32, i32* @stdout
%144 = call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.66, i64 0, i64 0), i32 %143)
%145 = load i32, i32* @stdout
%146 = call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.67, i64 0, i64 0), i32 %145)
%147 = load i32, i32* @stdout
%148 = call i32 @fputc(i8 signext 10, i32 %147)
%149 = load i32, i32* @stdout
%150 = call i32 @fputs(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.68, i64 0, i64 0), i32 %149)
%151 = load i32, i32* @stdout
%152 = call i32 @fputs(i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str.69, i64 0, i64 0), i32 %151)
%153 = load i32, i32* @stdout
%154 = call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.70, i64 0, i64 0), i32 %153)
%155 = load i32, i32* @stdout
%156 = call i32 @fputs(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.71, i64 0, i64 0), i32 %155)
%157 = load i32, i32* @stdout
%158 = call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.72, i64 0, i64 0), i32 %157)
%159 = load i32, i32* @stdout
%160 = call i32 @fputs(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.73, i64 0, i64 0), i32 %159)
%161 = load i32, i32* @stdout
%162 = call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.74, i64 0, i64 0), i32 %161)
%163 = load i32, i32* @stdout
%164 = call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.75, i64 0, i64 0), i32 %163)
%165 = load i32, i32* @stdout
%166 = call i32 @fputc(i8 signext 10, i32 %165)
%167 = load i32, i32* @stdout
%168 = call i32 @fputs(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.76, i64 0, i64 0), i32 %167)
%169 = load i32, i32* @stdout
%170 = call i32 @fputs(i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.77, i64 0, i64 0), i32 %169)
%171 = load i32, i32* @stdout
%172 = call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.78, i64 0, i64 0), i32 %171)
%173 = load i32, i32* @stdout
%174 = call i32 @fputs(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.79, i64 0, i64 0), i32 %173)
%175 = load i32, i32* @stdout
%176 = call i32 @fputs(i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.80, i64 0, i64 0), i32 %175)
%177 = load i32, i32* @stdout
%178 = call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.81, i64 0, i64 0), i32 %177)
%179 = load i32, i32* @stdout
%180 = call i32 @fputs(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.82, i64 0, i64 0), i32 %179)
%181 = load i32, i32* @stdout
%182 = call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.83, i64 0, i64 0), i32 %181)
%183 = load i32, i32* @stdout
%184 = call i32 @fputs(i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.84, i64 0, i64 0), i32 %183)
%185 = load i32, i32* @stdout
%186 = call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.85, i64 0, i64 0), i32 %185)
%187 = load i32, i32* @stdout
%188 = call i32 @fputs(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.86, i64 0, i64 0), i32 %187)
%189 = load i32, i32* @stdout
%190 = call i32 @fputs(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.87, i64 0, i64 0), i32 %189)
%191 = load i32, i32* @stdout
%192 = call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.88, i64 0, i64 0), i32 %191)
%193 = load i32, i32* @stdout
%194 = call i32 @fputs(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.89, i64 0, i64 0), i32 %193)
%195 = load i32, i32* @stdout
%196 = call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.90, i64 0, i64 0), i32 %195)
%197 = load i32, i32* @stdout
%198 = call i32 @fputs(i8* getelementptr inbounds ([114 x i8], [114 x i8]* @.str.91, i64 0, i64 0), i32 %197)
%199 = load i32, i32* @stdout
%200 = call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.92, i64 0, i64 0), i32 %199)
%201 = load i32, i32* @stdout
%202 = call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.93, i64 0, i64 0), i32 %201)
%203 = load i32, i32* @stdout
%204 = call i32 @fputs(i8* getelementptr inbounds ([99 x i8], [99 x i8]* @.str.94, i64 0, i64 0), i32 %203)
%205 = load i32, i32* @stdout
%206 = call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.78, i64 0, i64 0), i32 %205)
%207 = load i32, i32* @stdout
%208 = call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.95, i64 0, i64 0), i32 %207)
%209 = load i32, i32* @stdout
%210 = call i32 @fputs(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.96, i64 0, i64 0), i32 %209)
%211 = load i32, i32* @stdout
%212 = call i32 @fputc(i8 signext 10, i32 %211)
%213 = load i32, i32* @stdout
%214 = call i32 @fputs(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.97, i64 0, i64 0), i32 %213)
%215 = load i32, i32* @stdout
%216 = call i32 @fputs(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.98, i64 0, i64 0), i32 %215)
%217 = load i32, i32* @stdout
%218 = call i32 @fputs(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.99, i64 0, i64 0), i32 %217)
%219 = load i32, i32* @stdout
%220 = call i32 @fputs(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.100, i64 0, i64 0), i32 %219)
%221 = load i32, i32* @stdout
%222 = call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.101, i64 0, i64 0), i32 %221)
%223 = load i32, i32* @stdout
%224 = call i32 @fputc(i8 signext 10, i32 %223)
%225 = load i32, i32* @stdout
%226 = call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.102, i64 0, i64 0), i32 %225)
%227 = load i32, i32* @stdout
%228 = call i32 @fputs(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.103, i64 0, i64 0), i32 %227)
%229 = load i32, i32* @stdout
%230 = call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.104, i64 0, i64 0), i32 %229)
%231 = load i32, i32* @stdout
%232 = call i32 @fputs(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.105, i64 0, i64 0), i32 %231)
%233 = load i32, i32* @stdout
%234 = call i32 @fputs(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.106, i64 0, i64 0), i32 %233)
%235 = load i32, i32* @stdout
%236 = call i32 @fputs(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.107, i64 0, i64 0), i32 %235)
%237 = load i32, i32* @stdout
%238 = call i32 @fputs(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.108, i64 0, i64 0), i32 %237)
%239 = load i32, i32* @stdout
%240 = call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.109, i64 0, i64 0), i32 %239)
%241 = load i32, i32* @stdout
%242 = call i32 @fputs(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.110, i64 0, i64 0), i32 %241)
%243 = load i32, i32* @stdout
%244 = call i32 @fputs(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.111, i64 0, i64 0), i32 %243)
%245 = load i32, i32* @stdout
%246 = call i32 @fputs(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.112, i64 0, i64 0), i32 %245)
%247 = load i32, i32* @stdout
%248 = call i32 @fputs(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.113, i64 0, i64 0), i32 %247)
%249 = load i32, i32* @stdout
%250 = call i32 @fputs(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.114, i64 0, i64 0), i32 %249)
ret void
}

LLVM IR (-O2):
@.str = [98 x i8] c"Usage: tbd [-p/--path] [path-options] [file-paths] [-o/--output] [output-options] [output-paths]\0A\00"
@stdout = global i32 0
@.str.1 = [15 x i8] c"Main options:\0A\00"
@.str.2 = [38 x i8] c" -h, --help, Print this message\0A\00"
@.str.3 = [125 x i8] c" -o, --output, Path to an output file (or directory for recursing/dyld_shared_cache files) to write converted tbd files.\0A\00"
@.str.4 = [84 x i8] c" If provided file(s) already exists, contents will be overridden.\0A\00"
@.str.5 = [64 x i8] c" Can also provide \22stdout\22 to print to stdout\0A\00"
@.str.6 = [88 x i8] c" -p, --path, Path to a mach-o or dyld_shared_cache file to convert to a tbd file.\0A\00"
@.str.7 = [67 x i8] c" Can also provide \22stdin\22 to use standard input.\0A\00"
@.str.8 = [38 x i8] c" -u, --usage, Print this message\0A\00"
@.str.9 = [16 x i8] c"Write options:\0A\00"
@.str.10 = [30 x i8] c"Usage: tbd -o [options] path\0A\00"
@.str.11 = [90 x i8] c" --preserve-subdirs, Preserve the sub-directories of where files were found\0A\00"
@.str.12 = [98 x i8] c" when recursing in relation to the actual provided recurse-path\0A\00"
@.str.13 = [81 x i8] c" --no-overwrite, Prevent overwriting of files when writing out\0A\00"
@.str.14 = [90 x i8] c" --replace-path-extension, Replace the path-extension(s) of provided file(s) when\0A\00"
@.str.15 = [82 x i8] c" writing out (Instead of simply appending .tbd)\0A\00"
@.str.16 = [112 x i8] c" --combine-tbds, Combine all tbds created (when recursing or with a dyld-shared-cache) into a\0A\00"
@.str.17 = [52 x i8] c" single .tbd file\0A\00"
@.str.18 = [15 x i8] c"Path options:\0A\00"
@.str.19 = [32 x i8] c"Usage: tbd [-p] [options] path\0A\00"
@.str.20 = [106 x i8] c" -r, --recurse, Specify directory to recurse and find all mach-o library and dyld_shared_cache images\0A\00"
@.str.21 = [51 x i8] c" Two modes exist for recursing:\0A\00"
@.str.22 = [107 x i8] c" once, Recurse only the top-level directory. This is the default mode for recursing\0A\00"
@.str.23 = [96 x i8] c" all, Recurse both the top-level directory and over all sub-directories\0A\00"
@.str.24 = [98 x i8] c" --macho, Specify that the file(s) provided should only be parsed\0A\00"
@.str.25 = [72 x i8] c" if the file is a mach-o file.\0A\00"
@.str.26 = [96 x i8] c" This option can be used to limit the filetypes parsed\0A\00"
@.str.27 = [58 x i8] c" while recursing\0A\00"
@.str.28 = [98 x i8] c" --dsc, Specify that the file(s) provided should only be parsed\0A\00"
@.str.29 = [77 x i8] c" if it is a dyld-shared-cache file.\0A\00"
@.str.30 = [108 x i8] c" Providing --macho or --dsc limits filetypes parsed when recursing\0A\00"
@.str.31 = [102 x i8] c" --filter-image-directory, Specify a directory to filter dyld_shared_cache images from\0A\00"
@.str.32 = [101 x i8] c" --filter-image-filename, Specify a filename to filter dyld_shared_cache images from\0A\00"
@.str.33 = [105 x i8] c" --filter-image-number, Specify the number of an dyld_shared_cache image to parse out.\0A\00"
@.str.34 = [119 x i8] c" To get the numbers of all available images, use the option --list-dsc-images\0A\00"
@.str.35 = [85 x i8] c" --image-path, Specify the path of an image to parse out.\0A\00"
@.str.36 = [117 x i8] c" To get the paths of all available images, use the option --list-dsc-images\0A\00"
@.str.37 = [103 x i8] c" -v, --version, Specify version of .tbd files to convert to (default is v2).\0A\00"
@.str.38 = [110 x i8] c" This applies to all files where tbd-version was not explicitly set.\0A\00"
@.str.39 = [117 x i8] c" To get a list of all available versions, look at the options below, or use\0A\00"
@.str.40 = [73 x i8] c" the option --list-tbd-versions\0A\00"
@.str.41 = [83 x i8] c" -v1, Set version of .tbd files to version v1.\0A\00"
@.str.42 = [118 x i8] c" -v2, Set version of .tbd files to version v2. (This is the default .tbd version)\0A\00"
@.str.43 = [83 x i8] c" -v3, Set version of .tbd files to version v3.\0A\00"
@.str.44 = [83 x i8] c" -v4, Set version of .tbd files to version v4.\0A\00"
@.str.45 = [42 x i8] c"Ignore options: (Subset of path options)\0A\00"
@.str.46 = [57 x i8] c" --ignore-clients, Ignore clients field\0A\00"
@.str.47 = [71 x i8] c" --ignore-compat-version, Ignore compatibility-version field\0A\00"
@.str.48 = [65 x i8] c" --ignore-current-version, Ignore current-version field\0A\00"
@.str.49 = [55 x i8] c" --ignore-flags, Ignore flags field\0A\00"
@.str.50 = [65 x i8] c" --ignore-objc-constraint, Ignore objc-constraint field\0A\00"
@.str.51 = [65 x i8] c" --ignore-parent-umbrellas, Ignore parent-umbrella field\0A\00"
@.str.52 = [60 x i8] c" --ignore-reexports, Ignore re-expotrs field\0A\00"
@.str.53 = [63 x i8] c" --ignore-swift-version, Ignore swift-version field\0A\00"
@.str.54 = [60 x i8] c" --ignore-undefineds, Ignore undefineds field\0A\00"
@.str.55 = [55 x i8] c" --ignore-uuids, Ignore uuids field\0A\00"
@.str.56 = [49 x i8] c"Symbol Ignore options: (Subset of path options)\0A\00"
@.str.57 = [59 x i8] c" --ignore-normal-syms, Ignore normal symbols\0A\00"
@.str.58 = [63 x i8] c" --ignore-objc-class-syms, Ignore objc-class symbols\0A\00"
@.str.59 = [62 x i8] c" --ignore-objc-ivar-syms, Ignore objc-ivar symbols\0A\00"
@.str.60 = [64 x i8] c" --ignore-objc-ehtype-syms, Ignore objc-ehtype symbols\0A\00"
@.str.61 = [65 x i8] c" --ignore-thread-local-syms, Ignore thread-local symbols\0A\00"
@.str.62 = [61 x i8] c" --ignore-weak-def-syms, Ignore weak-def symbols\0A\00"
@.str.63 = [50 x i8] c"General ignore options (Subset of path options):\0A\00"
@.str.64 = [70 x i8] c" --ignore-requests, Ignore any and all user requests\0A\00"
@.str.65 = [57 x i8] c" --ignore-warnings, Ignore any warnings\0A\00"
@.str.66 = [77 x i8] c" --ignore-wrong-filetype, Ignore any warnings about a mach-o file\0A\00"
@.str.67 = [63 x i8] c" having the wrong filetype\0A\00"
@.str.68 = [42 x i8] c"Symbol options: (Subset of path options)\0A\00"
@.str.69 = [107 x i8] c" --allow-private-objc-symbols, Allow all non-external objc-symbols (classes, ivars, and ehtypes)\0A\00"
@.str.70 = [77 x i8] c" --allow-private-objc-classes, Allow all non-external objc-classes\0A\00"
@.str.71 = [78 x i8] c" --allow-private-objc-ehtypes, Allow all non-external objc-ehtypes.\0A\00"
@.str.72 = [111 x i8] c" objc-ehtype symbols are only recognized for .tbd version v3 and above\0A\00"
@.str.73 = [75 x i8] c" --allow-private-objc-ivars, Allow all non-external objc-ivars\0A\00"
@.str.74 = [91 x i8] c" --use-export-trie, Use only the export-trie and not the symbol-table\0A\00"
@.str.75 = [83 x i8] c" --use-symbol-table, Use the symbol-table over the export-trie\0A\00"
@.str.76 = [41 x i8] c"Field options: (Subset of path options)\0A\00"
@.str.77 = [124 x i8] c" --replace-archs, Provide a list of architectures to replace the list found in the provided input file(s)\0A\00"
@.str.78 = [111 x i8] c" A list of architectures can be found by using option --list-architectures.\0A\00"
@.str.79 = [115 x i8] c" Replacing the list of architectures will automatically remove the uuids field.\0A\00"
@.str.80 = [116 x i8] c" In addition, each exported symbol will have the replaced list of architectures.\0A\00"
@.str.81 = [117 x i8] c" --replace-current-version, Provide a current-version to replace the one found in the provided input file(s)\0A\00"
@.str.82 = [123 x i8] c" --replace-compat-version, Provide a compatibility-version to replace the one found in the provided input file(s)\0A\00"
@.str.83 = [91 x i8] c" --replace-flags, Provide flag(s) to replace flags found for .tbd files.\0A\00"
@.str.84 = [116 x i8] c" This option is only supported for .tbd versions v2 (default version) and above.\0A\00"
@.str.85 = [98 x i8] c" A list of flags can be found by using option --list-tbd-flags\0A\00"
@.str.86 = [115 x i8] c" --replace-install-name, Provide an install-name to replace the one found in the provided input file(s)\0A\00"
@.str.87 = [118 x i8] c" --replace-objc-constraint, Provide an objc-constraint to replace the one found in the provided input file(s)\0A\00"
@.str.88 = [117 x i8] c" A list of objc-constraints can be found by using option --list-objc-constraints.\0A\00"
@.str.89 = [95 x i8] c" This option is only supported for .tbd versions v2 and v3.\0A\00"
@.str.90 = [91 x i8] c" All other .tbd versions do not support objc-constraint\0A\00"
@.str.91 = [114 x i8] c" --replace-platform, Provide a platform to replace the one found for in the provided input file(s)\0A\00"
@.str.92 = [119 x i8] c" --replace-swift-version, Provide a swift-version to replace the one found for in the provided input file(s)\0A\00"
@.str.93 = [119 x i8] c" --replace-targets, Provide a list of targets to replace the list found in the provided input file(s).\0A\00"
@.str.94 = [99 x i8] c" A target is in the form of arch-platform pair (ex. arm64-ios).\0A\00"
@.str.95 = [103 x i8] c" A list of platforms can be found by using option --list-platforms.\0A\00"
@.str.96 = [87 x i8] c" --replace-targets is only supported tbd-version v4\0A\00"
@.str.97 = [56 x i8] c"Ignore field warning options: (Subset of path options)\0A\00"
@.str.98 = [94 x i8] c" --ignore-missing-exports, Ignore error for when no symbols or reexpors to write out\0A\00"
@.str.99 = [46 x i8] c" are found\0A\00"
@.str.100 = [78 x i8] c" --ignore-missing-uuids, Ignore error for when uuids are not found\0A\00"
@.str.101 = [103 x i8] c" --ignore-non-unique-uuids, Ignore error for when uuids found are not unique among one another\0A\00"
@.str.102 = [15 x i8] c"List options:\0A\00"
@.str.103 = [79 x i8] c" --list-architectures, List all valid architectures for .tbd files.\0A\00"
@.str.104 = [111 x i8] c" Also able to list architectures of a single mach-o file from a provided path\0A\00"
@.str.105 = [120 x i8] c" --list-dsc-images, List all images of a dyld_shared_cache from a path to a single dyld_shared_cache file\0A\00"
@.str.106 = [76 x i8] c" One option exists for listing dsc-images:\0A\00"
@.str.107 = [48 x i8] c" --ordered\0A\00"
@.str.108 = [97 x i8] c" Order image-paths alphabetically before printing them.\0A\00"
@.str.109 = [117 x i8] c" An image-path's listed number from the ordered list should not be provided\0A\00"
@.str.110 = [75 x i8] c" for option --filter-image-number\0A\00"
@.str.111 = [66 x i8] c" --list-objc-constraints, List all valid objc-constraints\0A\00"
@.str.112 = [59 x i8] c" --list-platforms, List all valid platforms\0A\00"
@.str.113 = [70 x i8] c" --list-tbd-flags, List all valid flags for .tbd files\0A\00"
@.str.114 = [73 x i8] c" --list-tbd-versions, List all valid versions for .tbd files\0A\00"
define void @print_usage() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str, i64 0, i64 0), i32 %1)
%3 = load i32, i32* @stdout
%4 = tail call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), i32 %3)
%5 = load i32, i32* @stdout
%6 = tail call i32 @fputs(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.2, i64 0, i64 0), i32 %5)
%7 = load i32, i32* @stdout
%8 = tail call i32 @fputs(i8* getelementptr inbounds ([125 x i8], [125 x i8]* @.str.3, i64 0, i64 0), i32 %7)
%9 = load i32, i32* @stdout
%10 = tail call i32 @fputs(i8* getelementptr inbounds ([84 x i8], [84 x i8]* @.str.4, i64 0, i64 0), i32 %9)
%11 = load i32, i32* @stdout
%12 = tail call i32 @fputs(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.5, i64 0, i64 0), i32 %11)
%13 = load i32, i32* @stdout
%14 = tail call i32 @fputs(i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.6, i64 0, i64 0), i32 %13)
%15 = load i32, i32* @stdout
%16 = tail call i32 @fputs(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.7, i64 0, i64 0), i32 %15)
%17 = load i32, i32* @stdout
%18 = tail call i32 @fputs(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.8, i64 0, i64 0), i32 %17)
%19 = load i32, i32* @stdout
%20 = tail call i32 @fputc(i8 signext 10, i32 %19)
%21 = load i32, i32* @stdout
%22 = tail call i32 @fputs(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0), i32 %21)
%23 = load i32, i32* @stdout
%24 = tail call i32 @fputs(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.10, i64 0, i64 0), i32 %23)
%25 = load i32, i32* @stdout
%26 = tail call i32 @fputs(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.11, i64 0, i64 0), i32 %25)
%27 = load i32, i32* @stdout
%28 = tail call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.12, i64 0, i64 0), i32 %27)
%29 = load i32, i32* @stdout
%30 = tail call i32 @fputs(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.13, i64 0, i64 0), i32 %29)
%31 = load i32, i32* @stdout
%32 = tail call i32 @fputs(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.14, i64 0, i64 0), i32 %31)
%33 = load i32, i32* @stdout
%34 = tail call i32 @fputs(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.15, i64 0, i64 0), i32 %33)
%35 = load i32, i32* @stdout
%36 = tail call i32 @fputs(i8* getelementptr inbounds ([112 x i8], [112 x i8]* @.str.16, i64 0, i64 0), i32 %35)
%37 = load i32, i32* @stdout
%38 = tail call i32 @fputs(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.17, i64 0, i64 0), i32 %37)
%39 = load i32, i32* @stdout
%40 = tail call i32 @fputc(i8 signext 10, i32 %39)
%41 = load i32, i32* @stdout
%42 = tail call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.18, i64 0, i64 0), i32 %41)
%43 = load i32, i32* @stdout
%44 = tail call i32 @fputs(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.19, i64 0, i64 0), i32 %43)
%45 = load i32, i32* @stdout
%46 = tail call i32 @fputs(i8* getelementptr inbounds ([106 x i8], [106 x i8]* @.str.20, i64 0, i64 0), i32 %45)
%47 = load i32, i32* @stdout
%48 = tail call i32 @fputs(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0), i32 %47)
%49 = load i32, i32* @stdout
%50 = tail call i32 @fputs(i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str.22, i64 0, i64 0), i32 %49)
%51 = load i32, i32* @stdout
%52 = tail call i32 @fputs(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.23, i64 0, i64 0), i32 %51)
%53 = load i32, i32* @stdout
%54 = tail call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.24, i64 0, i64 0), i32 %53)
%55 = load i32, i32* @stdout
%56 = tail call i32 @fputs(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.25, i64 0, i64 0), i32 %55)
%57 = load i32, i32* @stdout
%58 = tail call i32 @fputs(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.26, i64 0, i64 0), i32 %57)
%59 = load i32, i32* @stdout
%60 = tail call i32 @fputs(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.27, i64 0, i64 0), i32 %59)
%61 = load i32, i32* @stdout
%62 = tail call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.28, i64 0, i64 0), i32 %61)
%63 = load i32, i32* @stdout
%64 = tail call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.29, i64 0, i64 0), i32 %63)
%65 = load i32, i32* @stdout
%66 = tail call i32 @fputs(i8* getelementptr inbounds ([108 x i8], [108 x i8]* @.str.30, i64 0, i64 0), i32 %65)
%67 = load i32, i32* @stdout
%68 = tail call i32 @fputs(i8* getelementptr inbounds ([102 x i8], [102 x i8]* @.str.31, i64 0, i64 0), i32 %67)
%69 = load i32, i32* @stdout
%70 = tail call i32 @fputs(i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.32, i64 0, i64 0), i32 %69)
%71 = load i32, i32* @stdout
%72 = tail call i32 @fputs(i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str.33, i64 0, i64 0), i32 %71)
%73 = load i32, i32* @stdout
%74 = tail call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.34, i64 0, i64 0), i32 %73)
%75 = load i32, i32* @stdout
%76 = tail call i32 @fputs(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.35, i64 0, i64 0), i32 %75)
%77 = load i32, i32* @stdout
%78 = tail call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.36, i64 0, i64 0), i32 %77)
%79 = load i32, i32* @stdout
%80 = tail call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.37, i64 0, i64 0), i32 %79)
%81 = load i32, i32* @stdout
%82 = tail call i32 @fputs(i8* getelementptr inbounds ([110 x i8], [110 x i8]* @.str.38, i64 0, i64 0), i32 %81)
%83 = load i32, i32* @stdout
%84 = tail call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.39, i64 0, i64 0), i32 %83)
%85 = load i32, i32* @stdout
%86 = tail call i32 @fputs(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.40, i64 0, i64 0), i32 %85)
%87 = load i32, i32* @stdout
%88 = tail call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.41, i64 0, i64 0), i32 %87)
%89 = load i32, i32* @stdout
%90 = tail call i32 @fputs(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.42, i64 0, i64 0), i32 %89)
%91 = load i32, i32* @stdout
%92 = tail call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.43, i64 0, i64 0), i32 %91)
%93 = load i32, i32* @stdout
%94 = tail call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.44, i64 0, i64 0), i32 %93)
%95 = load i32, i32* @stdout
%96 = tail call i32 @fputc(i8 signext 10, i32 %95)
%97 = load i32, i32* @stdout
%98 = tail call i32 @fputs(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.45, i64 0, i64 0), i32 %97)
%99 = load i32, i32* @stdout
%100 = tail call i32 @fputs(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.46, i64 0, i64 0), i32 %99)
%101 = load i32, i32* @stdout
%102 = tail call i32 @fputs(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.47, i64 0, i64 0), i32 %101)
%103 = load i32, i32* @stdout
%104 = tail call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.48, i64 0, i64 0), i32 %103)
%105 = load i32, i32* @stdout
%106 = tail call i32 @fputs(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.49, i64 0, i64 0), i32 %105)
%107 = load i32, i32* @stdout
%108 = tail call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.50, i64 0, i64 0), i32 %107)
%109 = load i32, i32* @stdout
%110 = tail call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.51, i64 0, i64 0), i32 %109)
%111 = load i32, i32* @stdout
%112 = tail call i32 @fputs(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.52, i64 0, i64 0), i32 %111)
%113 = load i32, i32* @stdout
%114 = tail call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.53, i64 0, i64 0), i32 %113)
%115 = load i32, i32* @stdout
%116 = tail call i32 @fputs(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.54, i64 0, i64 0), i32 %115)
%117 = load i32, i32* @stdout
%118 = tail call i32 @fputs(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.55, i64 0, i64 0), i32 %117)
%119 = load i32, i32* @stdout
%120 = tail call i32 @fputc(i8 signext 10, i32 %119)
%121 = load i32, i32* @stdout
%122 = tail call i32 @fputs(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.56, i64 0, i64 0), i32 %121)
%123 = load i32, i32* @stdout
%124 = tail call i32 @fputs(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.57, i64 0, i64 0), i32 %123)
%125 = load i32, i32* @stdout
%126 = tail call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.58, i64 0, i64 0), i32 %125)
%127 = load i32, i32* @stdout
%128 = tail call i32 @fputs(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.59, i64 0, i64 0), i32 %127)
%129 = load i32, i32* @stdout
%130 = tail call i32 @fputs(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.60, i64 0, i64 0), i32 %129)
%131 = load i32, i32* @stdout
%132 = tail call i32 @fputs(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.61, i64 0, i64 0), i32 %131)
%133 = load i32, i32* @stdout
%134 = tail call i32 @fputs(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.62, i64 0, i64 0), i32 %133)
%135 = load i32, i32* @stdout
%136 = tail call i32 @fputc(i8 signext 10, i32 %135)
%137 = load i32, i32* @stdout
%138 = tail call i32 @fputs(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.63, i64 0, i64 0), i32 %137)
%139 = load i32, i32* @stdout
%140 = tail call i32 @fputs(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.64, i64 0, i64 0), i32 %139)
%141 = load i32, i32* @stdout
%142 = tail call i32 @fputs(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.65, i64 0, i64 0), i32 %141)
%143 = load i32, i32* @stdout
%144 = tail call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.66, i64 0, i64 0), i32 %143)
%145 = load i32, i32* @stdout
%146 = tail call i32 @fputs(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.67, i64 0, i64 0), i32 %145)
%147 = load i32, i32* @stdout
%148 = tail call i32 @fputc(i8 signext 10, i32 %147)
%149 = load i32, i32* @stdout
%150 = tail call i32 @fputs(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.68, i64 0, i64 0), i32 %149)
%151 = load i32, i32* @stdout
%152 = tail call i32 @fputs(i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str.69, i64 0, i64 0), i32 %151)
%153 = load i32, i32* @stdout
%154 = tail call i32 @fputs(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.70, i64 0, i64 0), i32 %153)
%155 = load i32, i32* @stdout
%156 = tail call i32 @fputs(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.71, i64 0, i64 0), i32 %155)
%157 = load i32, i32* @stdout
%158 = tail call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.72, i64 0, i64 0), i32 %157)
%159 = load i32, i32* @stdout
%160 = tail call i32 @fputs(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.73, i64 0, i64 0), i32 %159)
%161 = load i32, i32* @stdout
%162 = tail call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.74, i64 0, i64 0), i32 %161)
%163 = load i32, i32* @stdout
%164 = tail call i32 @fputs(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.75, i64 0, i64 0), i32 %163)
%165 = load i32, i32* @stdout
%166 = tail call i32 @fputc(i8 signext 10, i32 %165)
%167 = load i32, i32* @stdout
%168 = tail call i32 @fputs(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.76, i64 0, i64 0), i32 %167)
%169 = load i32, i32* @stdout
%170 = tail call i32 @fputs(i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.77, i64 0, i64 0), i32 %169)
%171 = load i32, i32* @stdout
%172 = tail call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.78, i64 0, i64 0), i32 %171)
%173 = load i32, i32* @stdout
%174 = tail call i32 @fputs(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.79, i64 0, i64 0), i32 %173)
%175 = load i32, i32* @stdout
%176 = tail call i32 @fputs(i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.80, i64 0, i64 0), i32 %175)
%177 = load i32, i32* @stdout
%178 = tail call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.81, i64 0, i64 0), i32 %177)
%179 = load i32, i32* @stdout
%180 = tail call i32 @fputs(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.82, i64 0, i64 0), i32 %179)
%181 = load i32, i32* @stdout
%182 = tail call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.83, i64 0, i64 0), i32 %181)
%183 = load i32, i32* @stdout
%184 = tail call i32 @fputs(i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.84, i64 0, i64 0), i32 %183)
%185 = load i32, i32* @stdout
%186 = tail call i32 @fputs(i8* getelementptr inbounds ([98 x i8], [98 x i8]* @.str.85, i64 0, i64 0), i32 %185)
%187 = load i32, i32* @stdout
%188 = tail call i32 @fputs(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.86, i64 0, i64 0), i32 %187)
%189 = load i32, i32* @stdout
%190 = tail call i32 @fputs(i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.87, i64 0, i64 0), i32 %189)
%191 = load i32, i32* @stdout
%192 = tail call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.88, i64 0, i64 0), i32 %191)
%193 = load i32, i32* @stdout
%194 = tail call i32 @fputs(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.89, i64 0, i64 0), i32 %193)
%195 = load i32, i32* @stdout
%196 = tail call i32 @fputs(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.90, i64 0, i64 0), i32 %195)
%197 = load i32, i32* @stdout
%198 = tail call i32 @fputs(i8* getelementptr inbounds ([114 x i8], [114 x i8]* @.str.91, i64 0, i64 0), i32 %197)
%199 = load i32, i32* @stdout
%200 = tail call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.92, i64 0, i64 0), i32 %199)
%201 = load i32, i32* @stdout
%202 = tail call i32 @fputs(i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.93, i64 0, i64 0), i32 %201)
%203 = load i32, i32* @stdout
%204 = tail call i32 @fputs(i8* getelementptr inbounds ([99 x i8], [99 x i8]* @.str.94, i64 0, i64 0), i32 %203)
%205 = load i32, i32* @stdout
%206 = tail call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.78, i64 0, i64 0), i32 %205)
%207 = load i32, i32* @stdout
%208 = tail call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.95, i64 0, i64 0), i32 %207)
%209 = load i32, i32* @stdout
%210 = tail call i32 @fputs(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.96, i64 0, i64 0), i32 %209)
%211 = load i32, i32* @stdout
%212 = tail call i32 @fputc(i8 signext 10, i32 %211)
%213 = load i32, i32* @stdout
%214 = tail call i32 @fputs(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.97, i64 0, i64 0), i32 %213)
%215 = load i32, i32* @stdout
%216 = tail call i32 @fputs(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.98, i64 0, i64 0), i32 %215)
%217 = load i32, i32* @stdout
%218 = tail call i32 @fputs(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.99, i64 0, i64 0), i32 %217)
%219 = load i32, i32* @stdout
%220 = tail call i32 @fputs(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.100, i64 0, i64 0), i32 %219)
%221 = load i32, i32* @stdout
%222 = tail call i32 @fputs(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.101, i64 0, i64 0), i32 %221)
%223 = load i32, i32* @stdout
%224 = tail call i32 @fputc(i8 signext 10, i32 %223)
%225 = load i32, i32* @stdout
%226 = tail call i32 @fputs(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.102, i64 0, i64 0), i32 %225)
%227 = load i32, i32* @stdout
%228 = tail call i32 @fputs(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.103, i64 0, i64 0), i32 %227)
%229 = load i32, i32* @stdout
%230 = tail call i32 @fputs(i8* getelementptr inbounds ([111 x i8], [111 x i8]* @.str.104, i64 0, i64 0), i32 %229)
%231 = load i32, i32* @stdout
%232 = tail call i32 @fputs(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.105, i64 0, i64 0), i32 %231)
%233 = load i32, i32* @stdout
%234 = tail call i32 @fputs(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.106, i64 0, i64 0), i32 %233)
%235 = load i32, i32* @stdout
%236 = tail call i32 @fputs(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.107, i64 0, i64 0), i32 %235)
%237 = load i32, i32* @stdout
%238 = tail call i32 @fputs(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.108, i64 0, i64 0), i32 %237)
%239 = load i32, i32* @stdout
%240 = tail call i32 @fputs(i8* getelementptr inbounds ([117 x i8], [117 x i8]* @.str.109, i64 0, i64 0), i32 %239)
%241 = load i32, i32* @stdout
%242 = tail call i32 @fputs(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.110, i64 0, i64 0), i32 %241)
%243 = load i32, i32* @stdout
%244 = tail call i32 @fputs(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.111, i64 0, i64 0), i32 %243)
%245 = load i32, i32* @stdout
%246 = tail call i32 @fputs(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.112, i64 0, i64 0), i32 %245)
%247 = load i32, i32* @stdout
%248 = tail call i32 @fputs(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.113, i64 0, i64 0), i32 %247)
%249 = load i32, i32* @stdout
%250 = tail call i32 @fputs(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.114, i64 0, i64 0), i32 %249)
ret void
}