#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 btk_help_pubkey(void) {
  printf("COMMAND\n");
  printf("\n");
  printf("   pubkey - calculate and format public keys from private keys.\n");
  printf("\n");
  printf("SYNOPSIS\n");
  printf("\n");
  printf("   btk pubkey [INPUT_OPTIONS] [OUTPUT_OPTIONS]\n");
  printf("\n");
  printf("DESCRIPTION");
  printf("\n");
  printf("   The pubkey command generates the corresponding public key from a "
         "given\n");
  printf("   private key. Input data should be a private key, or data from "
         "which a\n");
  printf("   private key can be derived, in the format specified by the input "
         "option.\n");
  printf("\n");
  printf("   The pubkey command will read data from standard input and "
         "interpret the\n");
  printf("   format according to the input option specified. If no input "
         "option is\n");
  printf("   specified, the pubkey command will read data from standard input "
         "and\n");
  printf("   attempt to automatically determine the format if it can be done "
         "with a\n");
  printf("   reasonable degree of certainty.\n");
  printf("\n");
  printf("   The pubkey command will calculate a public key from the provided "
         "input data\n");
  printf("   and print it in the format specified by the output option. If no "
         "output\n");
  printf("   option is specified, the public key will be formatted as a "
         "standard\n");
  printf("   bitcoin address. The public key will be compressed by default, "
         "unless\n");
  printf("   the input data contains a compression flag, in which case it will "
         "remain\n");
  printf("   consistent with the input data. If an output option is specified "
         "for\n");
  printf("   compression, the private key will be compressed in accordance "
         "with that\n");
  printf("   option, which will override any compression flag provided in the "
         "input data.\n");
  printf("\n");
  printf("   See INPUT OPTIONS and OUTPUT OPTIONS for more info.\n");
  printf("\n");
  printf("INPUT OPTIONS\n");
  printf("\n");
  printf("   -w\n");
  printf("      Treat input as a (w)allet import formatted (wif) string.\n");
  printf("\n");
  printf("   -h\n");
  printf("      Treat input as a (h)exadecimal formatted string. The string "
         "must be at\n");
  printf("      least 64 characters long. If a 65th and 66th character exist, "
         "they are\n");
  printf("      interpreted as a compression flag. Any extra characters beyond "
         "that point\n");
  printf("      are ignored.\n");
  printf("\n");
  printf("   -r\n");
  printf("      Treat input as (r)aw binary data. Input must be at least 32 "
         "bytes long.\n");
  printf("      If a 33rd byte exists, it is interpreted as a compression "
         "flag. Any\n");
  printf("      extra data beyond that point is ignored.\n");
  printf("\n");
  printf("   -s\n");
  printf("      Treat input as an arbitrary ASCII (s)tring. ASCII strings are "
         "processed\n");
  printf("      through a SHA256 hash algorithm to generate a 32 byte private "
         "key.\n");
  printf("\n");
  printf("   -d\n");
  printf("      Treat input as an ASCII string containing only (d)ecimal "
         "characters. The\n");
  printf("      decimal value is converted to its 32-byte binary equivalent to "
         "generate\n");
  printf("      a private key.\n");
  printf("\n");
  printf("   -b\n");
  printf("      Treat input as arbitrary (b)inary data. The data is processed "
         "through\n");
  printf("      a SHA256 hash algorithm to generate a 32 byte private key.\n");
  printf("\n");
  printf("OUTPUT OPTIONS\n");
  printf("\n");
  printf("   -A\n");
  printf(
      "      Print public key as a traditional bitcoin (A)ddress. (default)\n");
  printf("\n");
  printf("   -B\n");
  printf("      Print public key as a (B)ech32 address.\n");
  printf("\n");
  printf("   -H\n");
  printf("      Print public key as a (H)exadecimal string. Note that a "
         "compressed\n");
  printf("      public key in hexadecimal format is 66 characters long. An "
         "uncompressed\n");
  printf("      public key is 130 characters long.\n");
  printf("\n");
  printf("   -R\n");
  printf("      Print public key as (R)aw binary data. This will result in 33 "
         "bytes for\n");
  printf("      a compressed public key and 65 bytes for an uncompressed "
         "public key.\n");
  printf("\n");
  printf("   -C\n");
  printf(
      "      (C)ompress the public key. If -P is specified (see below), the\n");
  printf("      corresponding private key will also be compressed.\n");
  printf("\n");
  printf("   -U\n");
  printf("      (U)nompress the public key. If -P is specified (see below), "
         "the\n");
  printf("      corresponding private key will also be uncompressed.\n");
  printf("\n");
  printf("   -P\n");
  printf("      Include the (P)rivate key in the output. This option is most "
         "useful for\n");
  printf("      wrapper programs that want to generate and parse a private and "
         "public\n");
  printf("      key pair in a single command. The private key will be printed "
         "first,\n");
  printf("      followed by a single space, followed by the public key.\n");
  printf("\n");
  printf("   -N\n");
  printf("      Do NOT print a (N)ewline character. This may be a desirable "
         "option if\n");
  printf("      the output is being parsed by a wrapper program.\n");
  printf("\n");
  printf("   -T\n");
  printf("      If the -A or -B option is specified (or assumed by default), "
         "this option\n");
  printf("      sets the (T)ESTNET prefix so the public key is usable on the "
         "TESTNET\n");
  printf("      network. If the -P option is also specified, the private key "
         "will be\n");
  printf("      formatted for TESTNET network.\n");
  printf("\n");
  printf("   -M\n");
  printf("      If the -A or -B option is specified (or assumed by default), "
         "this option\n");
  printf("      sets the (M)AINNET prefix so the public key can be used on the "
         "MAINNET\n");
  printf("      network. Note that if no network flag is specified or included "
         "in the\n");
  printf("      input data, the MAINNET prefix is used by default. This option "
         "is only\n");
  printf("      useful for converting TESTNET keys to MAINNET. If the -P "
         "option is also\n");
  printf("      specified, the private key will be formatted for TESTNET "
         "network.\n");
  printf("\n");
  printf("See https://github.com/bartobri/bitcoin-toolkit for examples.\n");
  printf("See 'btk help' to read about other commands.\n");
  printf("\n");
}


x86 assembly (clang, -O0):
<btk_help_pubkey>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0x18ae(%rip),%rdi
call   1030 <printf@plt>
lea    0xed6(%rip),%rdi
call   1030 <printf@plt>
lea    0x1896(%rip),%rdi
call   1030 <printf@plt>
lea    0xeff(%rip),%rdi
call   1030 <printf@plt>
lea    0x187e(%rip),%rdi
call   1030 <printf@plt>
lea    0xef1(%rip),%rdi
call   1030 <printf@plt>
lea    0x1866(%rip),%rdi
call   1030 <printf@plt>
lea    0xf09(%rip),%rdi
call   1030 <printf@plt>
lea    0x184e(%rip),%rdi
call   1030 <printf@plt>
lea    0xefd(%rip),%rdi
call   1030 <printf@plt>
lea    0xf3c(%rip),%rdi
call   1030 <printf@plt>
lea    0xf7a(%rip),%rdi
call   1030 <printf@plt>
lea    0x181e(%rip),%rdi
call   1030 <printf@plt>
lea    0xfaf(%rip),%rdi
call   1030 <printf@plt>
lea    0xfef(%rip),%rdi
call   1030 <printf@plt>
lea    0x102d(%rip),%rdi
call   1030 <printf@plt>
lea    0x106a(%rip),%rdi
call   1030 <printf@plt>
lea    0x10a9(%rip),%rdi
call   1030 <printf@plt>
lea    0x17d6(%rip),%rdi
call   1030 <printf@plt>
lea    0x10b5(%rip),%rdi
call   1030 <printf@plt>
lea    0x10f9(%rip),%rdi
call   1030 <printf@plt>
lea    0x1139(%rip),%rdi
call   1030 <printf@plt>
lea    0x1175(%rip),%rdi
call   1030 <printf@plt>
lea    0x11b3(%rip),%rdi
call   1030 <printf@plt>
lea    0x11f4(%rip),%rdi
call   1030 <printf@plt>
lea    0x1231(%rip),%rdi
call   1030 <printf@plt>
lea    0x1271(%rip),%rdi
call   1030 <printf@plt>
lea    0x176a(%rip),%rdi
call   1030 <printf@plt>
lea    0x12aa(%rip),%rdi
call   1030 <printf@plt>
lea    0x1752(%rip),%rdi
call   1030 <printf@plt>
lea    0x12ca(%rip),%rdi
call   1030 <printf@plt>
lea    0x173a(%rip),%rdi
call   1030 <printf@plt>
lea    0x12c1(%rip),%rdi
call   1030 <printf@plt>
lea    0x12bc(%rip),%rdi
call   1030 <printf@plt>
lea    0x1716(%rip),%rdi
call   1030 <printf@plt>
lea    0x12e4(%rip),%rdi
call   1030 <printf@plt>
lea    0x12df(%rip),%rdi
call   1030 <printf@plt>
lea    0x1321(%rip),%rdi
call   1030 <printf@plt>
lea    0x1363(%rip),%rdi
call   1030 <printf@plt>
lea    0x13a8(%rip),%rdi
call   1030 <printf@plt>
lea    0x16ce(%rip),%rdi
call   1030 <printf@plt>
lea    0x13a4(%rip),%rdi
call   1030 <printf@plt>
lea    0x139f(%rip),%rdi
call   1030 <printf@plt>
lea    0x13e2(%rip),%rdi
call   1030 <printf@plt>
lea    0x1421(%rip),%rdi
call   1030 <printf@plt>
lea    0x1692(%rip),%rdi
call   1030 <printf@plt>
lea    0x1439(%rip),%rdi
call   1030 <printf@plt>
lea    0x1434(%rip),%rdi
call   1030 <printf@plt>
lea    0x1477(%rip),%rdi
call   1030 <printf@plt>
lea    0x1662(%rip),%rdi
call   1030 <printf@plt>
lea    0x14a9(%rip),%rdi
call   1030 <printf@plt>
lea    0x14a4(%rip),%rdi
call   1030 <printf@plt>
lea    0x14e8(%rip),%rdi
call   1030 <printf@plt>
lea    0x152b(%rip),%rdi
call   1030 <printf@plt>
lea    0x1626(%rip),%rdi
call   1030 <printf@plt>
lea    0x1529(%rip),%rdi
call   1030 <printf@plt>
lea    0x1524(%rip),%rdi
call   1030 <printf@plt>
lea    0x1565(%rip),%rdi
call   1030 <printf@plt>
lea    0x15f6(%rip),%rdi
call   1030 <printf@plt>
lea    0x158f(%rip),%rdi
call   1030 <printf@plt>
lea    0x15de(%rip),%rdi
call   1030 <printf@plt>
lea    0x1587(%rip),%rdi
call   1030 <printf@plt>
lea    0x1582(%rip),%rdi
call   1030 <printf@plt>
lea    0x15ba(%rip),%rdi
call   1030 <printf@plt>
lea    0x15b0(%rip),%rdi
call   1030 <printf@plt>
lea    0x15ab(%rip),%rdi
call   1030 <printf@plt>
lea    0x1596(%rip),%rdi
call   1030 <printf@plt>
lea    0x15c2(%rip),%rdi
call   1030 <printf@plt>
lea    0x15bd(%rip),%rdi
call   1030 <printf@plt>
lea    0x15fb(%rip),%rdi
call   1030 <printf@plt>
lea    0x163e(%rip),%rdi
call   1030 <printf@plt>
lea    0x155a(%rip),%rdi
call   1030 <printf@plt>
lea    0x1650(%rip),%rdi
call   1030 <printf@plt>
lea    0x164b(%rip),%rdi
call   1030 <printf@plt>
lea    0x168e(%rip),%rdi
call   1030 <printf@plt>
lea    0x152a(%rip),%rdi
call   1030 <printf@plt>
lea    0x16c2(%rip),%rdi
call   1030 <printf@plt>
lea    0x16bd(%rip),%rdi
call   1030 <printf@plt>
lea    0x16f7(%rip),%rdi
call   1030 <printf@plt>
lea    0x14fa(%rip),%rdi
call   1030 <printf@plt>
lea    0x1719(%rip),%rdi
call   1030 <printf@plt>
lea    0x1714(%rip),%rdi
call   1030 <printf@plt>
lea    0x174f(%rip),%rdi
call   1030 <printf@plt>
lea    0x14ca(%rip),%rdi
call   1030 <printf@plt>
lea    0x1773(%rip),%rdi
call   1030 <printf@plt>
lea    0x176e(%rip),%rdi
call   1030 <printf@plt>
lea    0x17b1(%rip),%rdi
call   1030 <printf@plt>
lea    0x17f2(%rip),%rdi
call   1030 <printf@plt>
lea    0x1832(%rip),%rdi
call   1030 <printf@plt>
lea    0x1482(%rip),%rdi
call   1030 <printf@plt>
lea    0x1859(%rip),%rdi
call   1030 <printf@plt>
lea    0x1854(%rip),%rdi
call   1030 <printf@plt>
lea    0x1895(%rip),%rdi
call   1030 <printf@plt>
lea    0x1452(%rip),%rdi
call   1030 <printf@plt>
lea    0x18b5(%rip),%rdi
call   1030 <printf@plt>
lea    0x18b0(%rip),%rdi
call   1030 <printf@plt>
lea    0x18f4(%rip),%rdi
call   1030 <printf@plt>
lea    0x1934(%rip),%rdi
call   1030 <printf@plt>
lea    0x1974(%rip),%rdi
call   1030 <printf@plt>
lea    0x140a(%rip),%rdi
call   1030 <printf@plt>
lea    0x1982(%rip),%rdi
call   1030 <printf@plt>
lea    0x1868(%rip),%rdi
call   1030 <printf@plt>
lea    0x1971(%rip),%rdi
call   1030 <printf@plt>
lea    0x19b3(%rip),%rdi
call   1030 <printf@plt>
lea    0x19f4(%rip),%rdi
call   1030 <printf@plt>
lea    0x1a36(%rip),%rdi
call   1030 <printf@plt>
lea    0x1a79(%rip),%rdi
call   1030 <printf@plt>
lea    0x13aa(%rip),%rdi
call   1030 <printf@plt>
lea    0x1aaa(%rip),%rdi
call   1030 <printf@plt>
lea    0x1add(%rip),%rdi
call   1030 <printf@plt>
lea    0x1386(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<btk_help_pubkey>:
push   %rbx
lea    0xed4(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xec6(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xef0(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xee3(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xe70(%rip),%rdi
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xee6(%rip),%rdi
call   1040 <puts@plt>
lea    0xf24(%rip),%rdi
call   1040 <puts@plt>
lea    0xf61(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xf97(%rip),%rdi
call   1040 <puts@plt>
lea    0xfd6(%rip),%rdi
call   1040 <puts@plt>
lea    0x1013(%rip),%rdi
call   1040 <puts@plt>
lea    0x104f(%rip),%rdi
call   1040 <puts@plt>
lea    0x108d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x109a(%rip),%rdi
call   1040 <puts@plt>
lea    0x10dd(%rip),%rdi
call   1040 <puts@plt>
lea    0x111c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1157(%rip),%rdi
call   1040 <puts@plt>
lea    0x1194(%rip),%rdi
call   1040 <puts@plt>
lea    0x11d4(%rip),%rdi
call   1040 <puts@plt>
lea    0x1210(%rip),%rdi
call   1040 <puts@plt>
lea    0x124f(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1289(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x12aa(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x12a2(%rip),%rdi
call   1040 <puts@plt>
lea    0x129c(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x12c5(%rip),%rdi
call   1040 <puts@plt>
lea    0x12bf(%rip),%rdi
call   1040 <puts@plt>
lea    0x1300(%rip),%rdi
call   1040 <puts@plt>
lea    0x1341(%rip),%rdi
call   1040 <puts@plt>
lea    0x1385(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1382(%rip),%rdi
call   1040 <puts@plt>
lea    0x137c(%rip),%rdi
call   1040 <puts@plt>
lea    0x13be(%rip),%rdi
call   1040 <puts@plt>
lea    0x13fc(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1415(%rip),%rdi
call   1040 <puts@plt>
lea    0x140f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1451(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1484(%rip),%rdi
call   1040 <puts@plt>
lea    0x147e(%rip),%rdi
call   1040 <puts@plt>
lea    0x14c1(%rip),%rdi
call   1040 <puts@plt>
lea    0x1503(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1502(%rip),%rdi
call   1040 <puts@plt>
lea    0x14fc(%rip),%rdi
call   1040 <puts@plt>
lea    0x153c(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1567(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1560(%rip),%rdi
call   1040 <puts@plt>
lea    0x155a(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1589(%rip),%rdi
call   1040 <puts@plt>
lea    0x1583(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x159b(%rip),%rdi
call   1040 <puts@plt>
lea    0x1595(%rip),%rdi
call   1040 <puts@plt>
lea    0x15d2(%rip),%rdi
call   1040 <puts@plt>
lea    0x1614(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1627(%rip),%rdi
call   1040 <puts@plt>
lea    0x1621(%rip),%rdi
call   1040 <puts@plt>
lea    0x1663(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1698(%rip),%rdi
call   1040 <puts@plt>
lea    0x1692(%rip),%rdi
call   1040 <puts@plt>
lea    0x16cb(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x16ee(%rip),%rdi
call   1040 <puts@plt>
lea    0x16e8(%rip),%rdi
call   1040 <puts@plt>
lea    0x1722(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1747(%rip),%rdi
call   1040 <puts@plt>
lea    0x1741(%rip),%rdi
call   1040 <puts@plt>
lea    0x1783(%rip),%rdi
call   1040 <puts@plt>
lea    0x17c3(%rip),%rdi
call   1040 <puts@plt>
lea    0x1802(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x182a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1824(%rip),%rdi
call   1040 <puts@plt>
lea    0x1864(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1885(%rip),%rdi
call   1040 <puts@plt>
lea    0x1940(%rip),%rbx
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x1870(%rip),%rdi
call   1040 <puts@plt>
lea    0x18af(%rip),%rdi
call   1040 <puts@plt>
lea    0x18ee(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x18fd(%rip),%rdi
call   1040 <puts@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x193e(%rip),%rdi
call   1040 <puts@plt>
lea    0x197f(%rip),%rdi
call   1040 <puts@plt>
lea    0x19bf(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a00(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a42(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1a74(%rip),%rdi
call   1040 <puts@plt>
lea    0x1aa6(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
pop    %rbx
jmp    1030 <putchar@plt>

LLVM IR (-O0):
@.str = [9 x i8] c"COMMAND\0A\00"
@.str.1 = [2 x i8] c"\0A\00"
@.str.2 = [65 x i8] c" pubkey - calculate and format public keys from private keys.\0A\00"
@.str.3 = [10 x i8] c"SYNOPSIS\0A\00"
@.str.4 = [48 x i8] c" btk pubkey [INPUT_OPTIONS] [OUTPUT_OPTIONS]\0A\00"
@.str.5 = [12 x i8] c"DESCRIPTION\00"
@.str.6 = [75 x i8] c" The pubkey command generates the corresponding public key from a given\0A\00"
@.str.7 = [74 x i8] c" private key. Input data should be a private key, or data from which a\0A\00"
@.str.8 = [77 x i8] c" private key can be derived, in the format specified by the input option.\0A\00"
@.str.9 = [76 x i8] c" The pubkey command will read data from standard input and interpret the\0A\00"
@.str.10 = [74 x i8] c" format according to the input option specified. If no input option is\0A\00"
@.str.11 = [73 x i8] c" specified, the pubkey command will read data from standard input and\0A\00"
@.str.12 = [75 x i8] c" attempt to automatically determine the format if it can be done with a\0A\00"
@.str.13 = [36 x i8] c" reasonable degree of certainty.\0A\00"
@.str.14 = [80 x i8] c" The pubkey command will calculate a public key from the provided input data\0A\00"
@.str.15 = [76 x i8] c" and print it in the format specified by the output option. If no output\0A\00"
@.str.16 = [72 x i8] c" option is specified, the public key will be formatted as a standard\0A\00"
@.str.17 = [74 x i8] c" bitcoin address. The public key will be compressed by default, unless\0A\00"
@.str.18 = [77 x i8] c" the input data contains a compression flag, in which case it will remain\0A\00"
@.str.19 = [73 x i8] c" consistent with the input data. If an output option is specified for\0A\00"
@.str.20 = [76 x i8] c" compression, the private key will be compressed in accordance with that\0A\00"
@.str.21 = [81 x i8] c" option, which will override any compression flag provided in the input data.\0A\00"
@.str.22 = [56 x i8] c" See INPUT OPTIONS and OUTPUT OPTIONS for more info.\0A\00"
@.str.23 = [15 x i8] c"INPUT OPTIONS\0A\00"
@.str.24 = [7 x i8] c" -w\0A\00"
@.str.25 = [64 x i8] c" Treat input as a (w)allet import formatted (wif) string.\0A\00"
@.str.26 = [7 x i8] c" -h\0A\00"
@.str.27 = [78 x i8] c" Treat input as a (h)exadecimal formatted string. The string must be at\0A\00"
@.str.28 = [78 x i8] c" least 64 characters long. If a 65th and 66th character exist, they are\0A\00"
@.str.29 = [81 x i8] c" interpreted as a compression flag. Any extra characters beyond that point\0A\00"
@.str.30 = [20 x i8] c" are ignored.\0A\00"
@.str.31 = [7 x i8] c" -r\0A\00"
@.str.32 = [79 x i8] c" Treat input as (r)aw binary data. Input must be at least 32 bytes long.\0A\00"
@.str.33 = [75 x i8] c" If a 33rd byte exists, it is interpreted as a compression flag. Any\0A\00"
@.str.34 = [48 x i8] c" extra data beyond that point is ignored.\0A\00"
@.str.35 = [7 x i8] c" -s\0A\00"
@.str.36 = [79 x i8] c" Treat input as an arbitrary ASCII (s)tring. ASCII strings are processed\0A\00"
@.str.37 = [74 x i8] c" through a SHA256 hash algorithm to generate a 32 byte private key.\0A\00"
@.str.38 = [7 x i8] c" -d\0A\00"
@.str.39 = [80 x i8] c" Treat input as an ASCII string containing only (d)ecimal characters. The\0A\00"
@.str.40 = [79 x i8] c" decimal value is converted to its 32-byte binary equivalent to generate\0A\00"
@.str.41 = [22 x i8] c" a private key.\0A\00"
@.str.42 = [7 x i8] c" -b\0A\00"
@.str.43 = [77 x i8] c" Treat input as arbitrary (b)inary data. The data is processed through\0A\00"
@.str.44 = [66 x i8] c" a SHA256 hash algorithm to generate a 32 byte private key.\0A\00"
@.str.45 = [16 x i8] c"OUTPUT OPTIONS\0A\00"
@.str.46 = [7 x i8] c" -A\0A\00"
@.str.47 = [70 x i8] c" Print public key as a traditional bitcoin (A)ddress. (default)\0A\00"
@.str.48 = [7 x i8] c" -B\0A\00"
@.str.49 = [47 x i8] c" Print public key as a (B)ech32 address.\0A\00"
@.str.50 = [7 x i8] c" -H\0A\00"
@.str.51 = [74 x i8] c" Print public key as a (H)exadecimal string. Note that a compressed\0A\00"
@.str.52 = [79 x i8] c" public key in hexadecimal format is 66 characters long. An uncompressed\0A\00"
@.str.53 = [42 x i8] c" public key is 130 characters long.\0A\00"
@.str.54 = [7 x i8] c" -R\0A\00"
@.str.55 = [79 x i8] c" Print public key as (R)aw binary data. This will result in 33 bytes for\0A\00"
@.str.56 = [76 x i8] c" a compressed public key and 65 bytes for an uncompressed public key.\0A\00"
@.str.57 = [7 x i8] c" -C\0A\00"
@.str.58 = [70 x i8] c" (C)ompress the public key. If -P is specified (see below), the\0A\00"
@.str.59 = [58 x i8] c" corresponding private key will also be compressed.\0A\00"
@.str.60 = [7 x i8] c" -U\0A\00"
@.str.61 = [71 x i8] c" (U)nompress the public key. If -P is specified (see below), the\0A\00"
@.str.62 = [60 x i8] c" corresponding private key will also be uncompressed.\0A\00"
@.str.63 = [7 x i8] c" -P\0A\00"
@.str.64 = [79 x i8] c" Include the (P)rivate key in the output. This option is most useful for\0A\00"
@.str.65 = [77 x i8] c" wrapper programs that want to generate and parse a private and public\0A\00"
@.str.66 = [76 x i8] c" key pair in a single command. The private key will be printed first,\0A\00"
@.str.67 = [63 x i8] c" followed by a single space, followed by the public key.\0A\00"
@.str.68 = [7 x i8] c" -N\0A\00"
@.str.69 = [77 x i8] c" Do NOT print a (N)ewline character. This may be a desirable option if\0A\00"
@.str.70 = [56 x i8] c" the output is being parsed by a wrapper program.\0A\00"
@.str.71 = [7 x i8] c" -T\0A\00"
@.str.72 = [80 x i8] c" If the -A or -B option is specified (or assumed by default), this option\0A\00"
@.str.73 = [76 x i8] c" sets the (T)ESTNET prefix so the public key is usable on the TESTNET\0A\00"
@.str.74 = [76 x i8] c" network. If the -P option is also specified, the private key will be\0A\00"
@.str.75 = [38 x i8] c" formatted for TESTNET network.\0A\00"
@.str.76 = [7 x i8] c" -M\0A\00"
@.str.77 = [78 x i8] c" sets the (M)AINNET prefix so the public key can be used on the MAINNET\0A\00"
@.str.78 = [77 x i8] c" network. Note that if no network flag is specified or included in the\0A\00"
@.str.79 = [78 x i8] c" input data, the MAINNET prefix is used by default. This option is only\0A\00"
@.str.80 = [79 x i8] c" useful for converting TESTNET keys to MAINNET. If the -P option is also\0A\00"
@.str.81 = [73 x i8] c" specified, the private key will be formatted for TESTNET network.\0A\00"
@.str.82 = [63 x i8] c"See https://github.com/bartobri/bitcoin-toolkit for examples.\0A\00"
@.str.83 = [46 x i8] c"See 'btk help' to read about other commands.\0A\00"
define void @btk_help_pubkey() {
%1 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.4, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
%10 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.6, i64 0, i64 0))
%12 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.7, i64 0, i64 0))
%13 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.8, i64 0, i64 0))
%14 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%15 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.9, i64 0, i64 0))
%16 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.10, i64 0, i64 0))
%17 = call i32 @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.11, i64 0, i64 0))
%18 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.12, i64 0, i64 0))
%19 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.13, i64 0, i64 0))
%20 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%21 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.14, i64 0, i64 0))
%22 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.15, i64 0, i64 0))
%23 = call i32 @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.16, i64 0, i64 0))
%24 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.17, i64 0, i64 0))
%25 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.18, i64 0, i64 0))
%26 = call i32 @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.19, i64 0, i64 0))
%27 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.20, i64 0, i64 0))
%28 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.21, i64 0, i64 0))
%29 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%30 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.22, i64 0, i64 0))
%31 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%32 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.23, i64 0, i64 0))
%33 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%34 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0))
%35 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.25, i64 0, i64 0))
%36 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%37 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0))
%38 = call i32 @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.27, i64 0, i64 0))
%39 = call i32 @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.28, i64 0, i64 0))
%40 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.29, i64 0, i64 0))
%41 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.30, i64 0, i64 0))
%42 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%43 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
%44 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.32, i64 0, i64 0))
%45 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.33, i64 0, i64 0))
%46 = call i32 @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.34, i64 0, i64 0))
%47 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%48 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.35, i64 0, i64 0))
%49 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.36, i64 0, i64 0))
%50 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.37, i64 0, i64 0))
%51 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%52 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%53 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.39, i64 0, i64 0))
%54 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.40, i64 0, i64 0))
%55 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.41, i64 0, i64 0))
%56 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%57 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.42, i64 0, i64 0))
%58 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.43, i64 0, i64 0))
%59 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.44, i64 0, i64 0))
%60 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%61 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.45, i64 0, i64 0))
%62 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%63 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.46, i64 0, i64 0))
%64 = call i32 @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.47, i64 0, i64 0))
%65 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%66 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.48, i64 0, i64 0))
%67 = call i32 @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.49, i64 0, i64 0))
%68 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%69 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.50, i64 0, i64 0))
%70 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.51, i64 0, i64 0))
%71 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.52, i64 0, i64 0))
%72 = call i32 @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.53, i64 0, i64 0))
%73 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%74 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.54, i64 0, i64 0))
%75 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.55, i64 0, i64 0))
%76 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.56, i64 0, i64 0))
%77 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%78 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.57, i64 0, i64 0))
%79 = call i32 @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.58, i64 0, i64 0))
%80 = call i32 @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.59, i64 0, i64 0))
%81 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%82 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.60, i64 0, i64 0))
%83 = call i32 @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.61, i64 0, i64 0))
%84 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.62, i64 0, i64 0))
%85 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%86 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.63, i64 0, i64 0))
%87 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.64, i64 0, i64 0))
%88 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.65, i64 0, i64 0))
%89 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.66, i64 0, i64 0))
%90 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.67, i64 0, i64 0))
%91 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%92 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.68, i64 0, i64 0))
%93 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.69, i64 0, i64 0))
%94 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.70, i64 0, i64 0))
%95 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%96 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.71, i64 0, i64 0))
%97 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.72, i64 0, i64 0))
%98 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.73, i64 0, i64 0))
%99 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.74, i64 0, i64 0))
%100 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.75, i64 0, i64 0))
%101 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%102 = call i32 @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.76, i64 0, i64 0))
%103 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.72, i64 0, i64 0))
%104 = call i32 @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.77, i64 0, i64 0))
%105 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.78, i64 0, i64 0))
%106 = call i32 @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.79, i64 0, i64 0))
%107 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.80, i64 0, i64 0))
%108 = call i32 @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.81, i64 0, i64 0))
%109 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%110 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.82, i64 0, i64 0))
%111 = call i32 @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.83, i64 0, i64 0))
%112 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str.5 = [12 x i8] c"DESCRIPTION\00"
@str = [8 x i8] c"COMMAND\00"
@str.84 = [64 x i8] c" pubkey - calculate and format public keys from private keys.\00"
@str.85 = [9 x i8] c"SYNOPSIS\00"
@str.86 = [47 x i8] c" btk pubkey [INPUT_OPTIONS] [OUTPUT_OPTIONS]\00"
@str.87 = [74 x i8] c" The pubkey command generates the corresponding public key from a given\00"
@str.88 = [73 x i8] c" private key. Input data should be a private key, or data from which a\00"
@str.89 = [76 x i8] c" private key can be derived, in the format specified by the input option.\00"
@str.90 = [75 x i8] c" The pubkey command will read data from standard input and interpret the\00"
@str.91 = [73 x i8] c" format according to the input option specified. If no input option is\00"
@str.92 = [72 x i8] c" specified, the pubkey command will read data from standard input and\00"
@str.93 = [74 x i8] c" attempt to automatically determine the format if it can be done with a\00"
@str.94 = [35 x i8] c" reasonable degree of certainty.\00"
@str.95 = [79 x i8] c" The pubkey command will calculate a public key from the provided input data\00"
@str.96 = [75 x i8] c" and print it in the format specified by the output option. If no output\00"
@str.97 = [71 x i8] c" option is specified, the public key will be formatted as a standard\00"
@str.98 = [73 x i8] c" bitcoin address. The public key will be compressed by default, unless\00"
@str.99 = [76 x i8] c" the input data contains a compression flag, in which case it will remain\00"
@str.100 = [72 x i8] c" consistent with the input data. If an output option is specified for\00"
@str.101 = [75 x i8] c" compression, the private key will be compressed in accordance with that\00"
@str.102 = [80 x i8] c" option, which will override any compression flag provided in the input data.\00"
@str.103 = [55 x i8] c" See INPUT OPTIONS and OUTPUT OPTIONS for more info.\00"
@str.104 = [14 x i8] c"INPUT OPTIONS\00"
@str.105 = [6 x i8] c" -w\00"
@str.106 = [63 x i8] c" Treat input as a (w)allet import formatted (wif) string.\00"
@str.107 = [6 x i8] c" -h\00"
@str.108 = [77 x i8] c" Treat input as a (h)exadecimal formatted string. The string must be at\00"
@str.109 = [77 x i8] c" least 64 characters long. If a 65th and 66th character exist, they are\00"
@str.110 = [80 x i8] c" interpreted as a compression flag. Any extra characters beyond that point\00"
@str.111 = [19 x i8] c" are ignored.\00"
@str.112 = [6 x i8] c" -r\00"
@str.113 = [78 x i8] c" Treat input as (r)aw binary data. Input must be at least 32 bytes long.\00"
@str.114 = [74 x i8] c" If a 33rd byte exists, it is interpreted as a compression flag. Any\00"
@str.115 = [47 x i8] c" extra data beyond that point is ignored.\00"
@str.116 = [6 x i8] c" -s\00"
@str.117 = [78 x i8] c" Treat input as an arbitrary ASCII (s)tring. ASCII strings are processed\00"
@str.118 = [73 x i8] c" through a SHA256 hash algorithm to generate a 32 byte private key.\00"
@str.119 = [6 x i8] c" -d\00"
@str.120 = [79 x i8] c" Treat input as an ASCII string containing only (d)ecimal characters. The\00"
@str.121 = [78 x i8] c" decimal value is converted to its 32-byte binary equivalent to generate\00"
@str.122 = [21 x i8] c" a private key.\00"
@str.123 = [6 x i8] c" -b\00"
@str.124 = [76 x i8] c" Treat input as arbitrary (b)inary data. The data is processed through\00"
@str.125 = [65 x i8] c" a SHA256 hash algorithm to generate a 32 byte private key.\00"
@str.126 = [15 x i8] c"OUTPUT OPTIONS\00"
@str.127 = [6 x i8] c" -A\00"
@str.128 = [69 x i8] c" Print public key as a traditional bitcoin (A)ddress. (default)\00"
@str.129 = [6 x i8] c" -B\00"
@str.130 = [46 x i8] c" Print public key as a (B)ech32 address.\00"
@str.131 = [6 x i8] c" -H\00"
@str.132 = [73 x i8] c" Print public key as a (H)exadecimal string. Note that a compressed\00"
@str.133 = [78 x i8] c" public key in hexadecimal format is 66 characters long. An uncompressed\00"
@str.134 = [41 x i8] c" public key is 130 characters long.\00"
@str.135 = [6 x i8] c" -R\00"
@str.136 = [78 x i8] c" Print public key as (R)aw binary data. This will result in 33 bytes for\00"
@str.137 = [75 x i8] c" a compressed public key and 65 bytes for an uncompressed public key.\00"
@str.138 = [6 x i8] c" -C\00"
@str.139 = [69 x i8] c" (C)ompress the public key. If -P is specified (see below), the\00"
@str.140 = [57 x i8] c" corresponding private key will also be compressed.\00"
@str.141 = [6 x i8] c" -U\00"
@str.142 = [70 x i8] c" (U)nompress the public key. If -P is specified (see below), the\00"
@str.143 = [59 x i8] c" corresponding private key will also be uncompressed.\00"
@str.144 = [6 x i8] c" -P\00"
@str.145 = [78 x i8] c" Include the (P)rivate key in the output. This option is most useful for\00"
@str.146 = [76 x i8] c" wrapper programs that want to generate and parse a private and public\00"
@str.147 = [75 x i8] c" key pair in a single command. The private key will be printed first,\00"
@str.148 = [62 x i8] c" followed by a single space, followed by the public key.\00"
@str.149 = [6 x i8] c" -N\00"
@str.150 = [76 x i8] c" Do NOT print a (N)ewline character. This may be a desirable option if\00"
@str.151 = [55 x i8] c" the output is being parsed by a wrapper program.\00"
@str.152 = [6 x i8] c" -T\00"
@str.154 = [75 x i8] c" sets the (T)ESTNET prefix so the public key is usable on the TESTNET\00"
@str.155 = [75 x i8] c" network. If the -P option is also specified, the private key will be\00"
@str.156 = [37 x i8] c" formatted for TESTNET network.\00"
@str.157 = [6 x i8] c" -M\00"
@str.158 = [79 x i8] c" If the -A or -B option is specified (or assumed by default), this option\00"
@str.159 = [77 x i8] c" sets the (M)AINNET prefix so the public key can be used on the MAINNET\00"
@str.160 = [76 x i8] c" network. Note that if no network flag is specified or included in the\00"
@str.161 = [77 x i8] c" input data, the MAINNET prefix is used by default. This option is only\00"
@str.162 = [78 x i8] c" useful for converting TESTNET keys to MAINNET. If the -P option is also\00"
@str.163 = [72 x i8] c" specified, the private key will be formatted for TESTNET network.\00"
@str.164 = [62 x i8] c"See https://github.com/bartobri/bitcoin-toolkit for examples.\00"
@str.165 = [45 x i8] c"See 'btk help' to read about other commands.\00"
define void @btk_help_pubkey() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @putchar(i32 10)
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.84, i64 0, i64 0))
%4 = tail call i32 @putchar(i32 10)
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @str.85, i64 0, i64 0))
%6 = tail call i32 @putchar(i32 10)
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.86, i64 0, i64 0))
%8 = tail call i32 @putchar(i32 10)
%9 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
%10 = tail call i32 @putchar(i32 10)
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.87, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.88, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.89, i64 0, i64 0))
%14 = tail call i32 @putchar(i32 10)
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.90, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.91, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.92, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.93, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.94, i64 0, i64 0))
%20 = tail call i32 @putchar(i32 10)
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.95, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.96, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.97, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.98, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.99, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.100, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.101, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.102, i64 0, i64 0))
%29 = tail call i32 @putchar(i32 10)
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.103, i64 0, i64 0))
%31 = tail call i32 @putchar(i32 10)
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.104, i64 0, i64 0))
%33 = tail call i32 @putchar(i32 10)
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.105, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.106, i64 0, i64 0))
%36 = tail call i32 @putchar(i32 10)
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.107, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.108, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.109, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.110, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.111, i64 0, i64 0))
%42 = tail call i32 @putchar(i32 10)
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.112, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.113, i64 0, i64 0))
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.114, i64 0, i64 0))
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.115, i64 0, i64 0))
%47 = tail call i32 @putchar(i32 10)
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.116, i64 0, i64 0))
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.117, i64 0, i64 0))
%50 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.118, i64 0, i64 0))
%51 = tail call i32 @putchar(i32 10)
%52 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.119, i64 0, i64 0))
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.120, i64 0, i64 0))
%54 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.121, i64 0, i64 0))
%55 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.122, i64 0, i64 0))
%56 = tail call i32 @putchar(i32 10)
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.123, i64 0, i64 0))
%58 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.124, i64 0, i64 0))
%59 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.125, i64 0, i64 0))
%60 = tail call i32 @putchar(i32 10)
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.126, i64 0, i64 0))
%62 = tail call i32 @putchar(i32 10)
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.127, i64 0, i64 0))
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.128, i64 0, i64 0))
%65 = tail call i32 @putchar(i32 10)
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.129, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.130, i64 0, i64 0))
%68 = tail call i32 @putchar(i32 10)
%69 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.131, i64 0, i64 0))
%70 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.132, i64 0, i64 0))
%71 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.133, i64 0, i64 0))
%72 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.134, i64 0, i64 0))
%73 = tail call i32 @putchar(i32 10)
%74 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.135, i64 0, i64 0))
%75 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.136, i64 0, i64 0))
%76 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.137, i64 0, i64 0))
%77 = tail call i32 @putchar(i32 10)
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.138, i64 0, i64 0))
%79 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.139, i64 0, i64 0))
%80 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.140, i64 0, i64 0))
%81 = tail call i32 @putchar(i32 10)
%82 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.141, i64 0, i64 0))
%83 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.142, i64 0, i64 0))
%84 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.143, i64 0, i64 0))
%85 = tail call i32 @putchar(i32 10)
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.144, i64 0, i64 0))
%87 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.145, i64 0, i64 0))
%88 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.146, i64 0, i64 0))
%89 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.147, i64 0, i64 0))
%90 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.148, i64 0, i64 0))
%91 = tail call i32 @putchar(i32 10)
%92 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.149, i64 0, i64 0))
%93 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.150, i64 0, i64 0))
%94 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.151, i64 0, i64 0))
%95 = tail call i32 @putchar(i32 10)
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.152, i64 0, i64 0))
%97 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.158, i64 0, i64 0))
%98 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.154, i64 0, i64 0))
%99 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.155, i64 0, i64 0))
%100 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.156, i64 0, i64 0))
%101 = tail call i32 @putchar(i32 10)
%102 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str.157, i64 0, i64 0))
%103 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.158, i64 0, i64 0))
%104 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.159, i64 0, i64 0))
%105 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.160, i64 0, i64 0))
%106 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.161, i64 0, i64 0))
%107 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.162, i64 0, i64 0))
%108 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.163, i64 0, i64 0))
%109 = tail call i32 @putchar(i32 10)
%110 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.164, i64 0, i64 0))
%111 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.165, i64 0, i64 0))
%112 = tail call i32 @putchar(i32 10)
ret void
}