#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*/ printf(char *);
void usage(void) {
  printf(
      "Usage:\n  ipsec attest "
      "--components|--devices|--sessions|--files|--hashes|--keys [options]\n  "
      "\n  ipsec attest --measurements|--packages|--products|--add|--del "
      "[options]\n  \n  ipsec attest --components [--key <digest>|--kid "
      "<id>]\n    Show a list of components with an AIK digest or\n    its "
      "primary key as an optional selector.\n  \n  ipsec attest --devices "
      "[--utc]\n    Show a list of registered devices and associated collected "
      "information\n  \n  ipsec attest --sessions [--utc]\n    Show a "
      "chronologically sorted list of all TNC sessions\n  \n  ipsec attest "
      "--files [--product <name>|--pid <id>]\n    Show a list of files with a "
      "software product name or\n    its primary key as an optional "
      "selector.\n  \n  ipsec attest --hashes [--sha1|--sha256|--sha384] "
      "[--product <name>|--pid <id>]\n    Show a list of measurement hashes "
      "for a given software product or\n    its primary key as an optional "
      "selector.\n  \n  ipsec attest --hashes "
      "[--sha1|--sha1-ima|--sha256|--sha384] [--file <path>|--fid <id>]\n    "
      "Show a list of measurement hashes for a given file or\n    its primary "
      "key as an optional selector.\n  \n  ipsec attest --keys [--components "
      "<cfn>|--cid <id>]\n    Show a list of AIK key digests with a component "
      "or\n    its primary key as an optional selector.\n  \n  ipsec attest "
      "--measurements --sha1|--sha256|--sha384 [--component <cfn>|--cid "
      "<id>]\n    Show a list of component measurements for a given component "
      "or\n    its primary key as an optional selector.\n  \n  ipsec attest "
      "--measurements --sha1|--sha256|--sha384 [--key <digest>|--kid "
      "<id>|--aik <path>]\n    Show a list of component measurements for a "
      "given AIK or\n    its primary key as an optional selector.\n  \n  ipsec "
      "attest --packages [--product <name>|--pid <id>] [--utc]\n    Show a "
      "list of software packages for a given product or\n    its primary key "
      "as an optional selector.\n  \n  ipsec attest --products [--file "
      "<path>|--fid <id>]\n    Show a list of supported software products with "
      "a file path or\n    its primary key as an optional selector.\n  \n  "
      "ipsec attest --add --file <path>|--dir <path>|--product "
      "<name>|--component <cfn>\n    Add a file, directory, product or "
      "component entry\n    Component <cfn> entries must be of the form "
      "<vendor_id>/<name>-<qualifier>\n  \n  ipsec attest --add [--owner "
      "<name>] --key <digest>|--aik <path>\n    Add an AIK public key digest "
      "entry preceded by an optional owner name\n  \n  ipsec attest --add "
      "--product <name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\n       "
      "       [--relative|--rel] --dir <path>|--file <path>\n    Add hashes of "
      "a single file or all files in a directory under absolute or relative "
      "filenames\n  \n  ipsec attest --add --key <digest|--kid <id> "
      "--component <cfn>|--cid <id> --sequence <no>|--seq <no>\n    Add an "
      "ordered key/component entry\n  \n  ipsec attest --add --package <name> "
      "--version <string> [--security|--blacklist]\n              [--product "
      "<name>|--pid <id>]\n    Add a package version for a given product "
      "optionally with security or blacklist flag\n  \n  ipsec attest --del "
      "--file <path>|--fid <id>|--dir <path>|--did <id>\n    Delete a file or "
      "directory entry referenced either by value or primary key\n  \n  ipsec "
      "attest --del --product <name>|--pid <id>|--component <cfn>|--cid <id>\n "
      "   Delete a product or component entry referenced either by value or "
      "primary key\n  \n  ipsec attest --del --product <name>|--pid <id> "
      "--file <path>|--fid <id>|--dir <path>|--did <id>\n    Delete a "
      "product/file entry referenced either by value or primary key\n  \n  "
      "ipsec attest --del --key <digest>|--kid <id>|--aik <path>\n    Delete "
      "an AIK entry referenced either by value or primary key\n  \n  ipsec "
      "attest --del --key <digest|--kid <id> --component <cfn>|--cid <id>\n    "
      "Delete a key/component entry\n  \n  ipsec attest --del --product "
      "<name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\n               "
      "[--dir <path>|--did <id>] --file <path>|--fid <id>\n    Delete a file "
      "hash given an absolute or relative filename\n  \n");
}


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

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

LLVM IR (-O0):
@.str = [3904 x i8] c"Usage:\0A ipsec attest --components|--devices|--sessions|--files|--hashes|--keys [options]\0A \0A ipsec attest --measurements|--packages|--products|--add|--del [options]\0A \0A ipsec attest --components [--key <digest>|--kid <id>]\0A Show a list of components with an AIK digest or\0A its primary key as an optional selector.\0A \0A ipsec attest --devices [--utc]\0A Show a list of registered devices and associated collected information\0A \0A ipsec attest --sessions [--utc]\0A Show a chronologically sorted list of all TNC sessions\0A \0A ipsec attest --files [--product <name>|--pid <id>]\0A Show a list of files with a software product name or\0A its primary key as an optional selector.\0A \0A ipsec attest --hashes [--sha1|--sha256|--sha384] [--product <name>|--pid <id>]\0A Show a list of measurement hashes for a given software product or\0A its primary key as an optional selector.\0A \0A ipsec attest --hashes [--sha1|--sha1-ima|--sha256|--sha384] [--file <path>|--fid <id>]\0A Show a list of measurement hashes for a given file or\0A its primary key as an optional selector.\0A \0A ipsec attest --keys [--components <cfn>|--cid <id>]\0A Show a list of AIK key digests with a component or\0A its primary key as an optional selector.\0A \0A ipsec attest --measurements --sha1|--sha256|--sha384 [--component <cfn>|--cid <id>]\0A Show a list of component measurements for a given component or\0A its primary key as an optional selector.\0A \0A ipsec attest --measurements --sha1|--sha256|--sha384 [--key <digest>|--kid <id>|--aik <path>]\0A Show a list of component measurements for a given AIK or\0A its primary key as an optional selector.\0A \0A ipsec attest --packages [--product <name>|--pid <id>] [--utc]\0A Show a list of software packages for a given product or\0A its primary key as an optional selector.\0A \0A ipsec attest --products [--file <path>|--fid <id>]\0A Show a list of supported software products with a file path or\0A its primary key as an optional selector.\0A \0A ipsec attest --add --file <path>|--dir <path>|--product <name>|--component <cfn>\0A Add a file, directory, product or component entry\0A Component <cfn> entries must be of the form <vendor_id>/<name>-<qualifier>\0A \0A ipsec attest --add [--owner <name>] --key <digest>|--aik <path>\0A Add an AIK public key digest entry preceded by an optional owner name\0A \0A ipsec attest --add --product <name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\0A [--relative|--rel] --dir <path>|--file <path>\0A Add hashes of a single file or all files in a directory under absolute or relative filenames\0A \0A ipsec attest --add --key <digest|--kid <id> --component <cfn>|--cid <id> --sequence <no>|--seq <no>\0A Add an ordered key/component entry\0A \0A ipsec attest --add --package <name> --version <string> [--security|--blacklist]\0A [--product <name>|--pid <id>]\0A Add a package version for a given product optionally with security or blacklist flag\0A \0A ipsec attest --del --file <path>|--fid <id>|--dir <path>|--did <id>\0A Delete a file or directory entry referenced either by value or primary key\0A \0A ipsec attest --del --product <name>|--pid <id>|--component <cfn>|--cid <id>\0A Delete a product or component entry referenced either by value or primary key\0A \0A ipsec attest --del --product <name>|--pid <id> --file <path>|--fid <id>|--dir <path>|--did <id>\0A Delete a product/file entry referenced either by value or primary key\0A \0A ipsec attest --del --key <digest>|--kid <id>|--aik <path>\0A Delete an AIK entry referenced either by value or primary key\0A \0A ipsec attest --del --key <digest|--kid <id> --component <cfn>|--cid <id>\0A Delete a key/component entry\0A \0A ipsec attest --del --product <name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\0A [--dir <path>|--did <id>] --file <path>|--fid <id>\0A Delete a file hash given an absolute or relative filename\0A \0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([3904 x i8], [3904 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [3903 x i8] c"Usage:\0A ipsec attest --components|--devices|--sessions|--files|--hashes|--keys [options]\0A \0A ipsec attest --measurements|--packages|--products|--add|--del [options]\0A \0A ipsec attest --components [--key <digest>|--kid <id>]\0A Show a list of components with an AIK digest or\0A its primary key as an optional selector.\0A \0A ipsec attest --devices [--utc]\0A Show a list of registered devices and associated collected information\0A \0A ipsec attest --sessions [--utc]\0A Show a chronologically sorted list of all TNC sessions\0A \0A ipsec attest --files [--product <name>|--pid <id>]\0A Show a list of files with a software product name or\0A its primary key as an optional selector.\0A \0A ipsec attest --hashes [--sha1|--sha256|--sha384] [--product <name>|--pid <id>]\0A Show a list of measurement hashes for a given software product or\0A its primary key as an optional selector.\0A \0A ipsec attest --hashes [--sha1|--sha1-ima|--sha256|--sha384] [--file <path>|--fid <id>]\0A Show a list of measurement hashes for a given file or\0A its primary key as an optional selector.\0A \0A ipsec attest --keys [--components <cfn>|--cid <id>]\0A Show a list of AIK key digests with a component or\0A its primary key as an optional selector.\0A \0A ipsec attest --measurements --sha1|--sha256|--sha384 [--component <cfn>|--cid <id>]\0A Show a list of component measurements for a given component or\0A its primary key as an optional selector.\0A \0A ipsec attest --measurements --sha1|--sha256|--sha384 [--key <digest>|--kid <id>|--aik <path>]\0A Show a list of component measurements for a given AIK or\0A its primary key as an optional selector.\0A \0A ipsec attest --packages [--product <name>|--pid <id>] [--utc]\0A Show a list of software packages for a given product or\0A its primary key as an optional selector.\0A \0A ipsec attest --products [--file <path>|--fid <id>]\0A Show a list of supported software products with a file path or\0A its primary key as an optional selector.\0A \0A ipsec attest --add --file <path>|--dir <path>|--product <name>|--component <cfn>\0A Add a file, directory, product or component entry\0A Component <cfn> entries must be of the form <vendor_id>/<name>-<qualifier>\0A \0A ipsec attest --add [--owner <name>] --key <digest>|--aik <path>\0A Add an AIK public key digest entry preceded by an optional owner name\0A \0A ipsec attest --add --product <name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\0A [--relative|--rel] --dir <path>|--file <path>\0A Add hashes of a single file or all files in a directory under absolute or relative filenames\0A \0A ipsec attest --add --key <digest|--kid <id> --component <cfn>|--cid <id> --sequence <no>|--seq <no>\0A Add an ordered key/component entry\0A \0A ipsec attest --add --package <name> --version <string> [--security|--blacklist]\0A [--product <name>|--pid <id>]\0A Add a package version for a given product optionally with security or blacklist flag\0A \0A ipsec attest --del --file <path>|--fid <id>|--dir <path>|--did <id>\0A Delete a file or directory entry referenced either by value or primary key\0A \0A ipsec attest --del --product <name>|--pid <id>|--component <cfn>|--cid <id>\0A Delete a product or component entry referenced either by value or primary key\0A \0A ipsec attest --del --product <name>|--pid <id> --file <path>|--fid <id>|--dir <path>|--did <id>\0A Delete a product/file entry referenced either by value or primary key\0A \0A ipsec attest --del --key <digest>|--kid <id>|--aik <path>\0A Delete an AIK entry referenced either by value or primary key\0A \0A ipsec attest --del --key <digest|--kid <id> --component <cfn>|--cid <id>\0A Delete a key/component entry\0A \0A ipsec attest --del --product <name>|--pid <id> --sha1|--sha1-ima|--sha256|--sha384\0A [--dir <path>|--did <id>] --file <path>|--fid <id>\0A Delete a file hash given an absolute or relative filename\0A \00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([3903 x i8], [3903 x i8]* @str, i64 0, i64 0))
ret void
}