// File: chuckwolber[P]Cube/order/cli.cpp
// Function: usage(char*)
void usage(char* progName) {
    std::cerr << "usage: " << progName << " "
              << "[--algstart | -a] "
              << "[--algmath-add | -p] "
              << "[--algbench | -g] "
              << "[--algbenchlite | -e] "
              << "[--count | -c] "
              << "[--heartbeat | -b] "
              << "[--keep-dupes | -k] "
              << "[--skip-nth | -s] "
              << "[--threads | -t] "
              << "[--find-orders | -f] "
              << "[--find-order | -o] "
              << "[--find-all | -i] "
              << "[--help | -h] "
              << std::endl;
    std::cerr << std::endl;
    std::cerr << " [--algstart | -a]     - The algorithm to start with. Default is "
              << "\"F\". Base-12 counting" << std::endl;
    std::cerr << "                         order is F F' U U' R R' D D' L L' B B'"
              << std::endl;
    std::cerr << " [--algmath-add | -p ] - Add arg value to --algstart to get alg end."
              << std::endl;
    std::cerr << " [--algmath-lt | -p ]  - Returns true if --algstart is less than "
              << "arg value, false otherwise." << std::endl;
    std::cerr << " [--algbench | -g]     - Benchmark algorithm calculation." << std::endl;
    std::cerr << " [--algbenchlite | -e] - Lightweight algorithm calculation benchmark." << std::endl;
    std::cerr << " [--count | -c]        - The number of algorithms to calculate. "
              << "Input is interpreted" << std::endl
              << "                         as an unsigned integer. Default is "
              << "1,000,000." << std::endl;
    std::cerr << " [--heartbeat | -b]    - Display a heartbeat during --find-orders,"
              << " equivalent to every" << std::endl;
    std::cerr << "                         arg attempts." << std::endl;
    std::cerr << " [--keep-dupes | -k]   - Keep algorithms that contain duplication."
              << std::endl;
    std::cerr << " [--skip-nth | -s]     - Skip nth algorithm." << std::endl;
    std::cerr << " [--threads | -t]      - The number of threads to deploy. Default "
              << "is one per CPU." << std::endl;
    std::cerr << " [--find-orders | -f]  - Only find orders that are in this list. "
              << "Empty list \"\" to"
              << std::endl;
    std::cerr << "                         find all orders."
              << std::endl;
    std::cerr << " [--find-order]        - Find all algorithms matching the optarg order."
              << std::endl;
    std::cerr << " [--find-all | -i]     - Finds all mathematically possible orders."
              << std::endl;
    std::cerr << " [--help | -h]         - Display this messages."
              << std::endl;
    std::cerr << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x1dc3d(%rip), %rdi     # 0x2aff0
leaq 0xf04b(%rip), %rsi      # 0x1c405
callq 0x4370
movq %rax, %rdi
movq -0x8(%rbp), %rsi
callq 0x4370
movq %rax, %rdi
leaq 0xf6e3(%rip), %rsi      # 0x1cab8
callq 0x4370
movq %rax, %rdi
leaq 0xf029(%rip), %rsi      # 0x1c40d
callq 0x4370
movq %rax, %rdi
leaq 0xf02d(%rip), %rsi      # 0x1c420
callq 0x4370
movq %rax, %rdi
leaq 0xf034(%rip), %rsi      # 0x1c436
callq 0x4370
movq %rax, %rdi
leaq 0xf038(%rip), %rsi      # 0x1c449
callq 0x4370
movq %rax, %rdi
leaq 0xf040(%rip), %rsi      # 0x1c460
callq 0x4370
movq %rax, %rdi
leaq 0xf041(%rip), %rsi      # 0x1c470
callq 0x4370
movq %rax, %rdi
leaq 0xf046(%rip), %rsi      # 0x1c484
callq 0x4370
movq %rax, %rdi
leaq 0xf04c(%rip), %rsi      # 0x1c499
callq 0x4370
movq %rax, %rdi
leaq 0xf050(%rip), %rsi      # 0x1c4ac
callq 0x4370
movq %rax, %rdi
leaq 0xf053(%rip), %rsi      # 0x1c4be
callq 0x4370
movq %rax, %rdi
leaq 0xf05a(%rip), %rsi      # 0x1c4d4
callq 0x4370
movq %rax, %rdi
leaq 0xf060(%rip), %rsi      # 0x1c4e9
callq 0x4370
movq %rax, %rdi
leaq 0xf064(%rip), %rsi      # 0x1c4fc
callq 0x4370
movq %rax, %rdi
movq 0x1dab9(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1db3d(%rip), %rdi     # 0x2aff0
movq 0x1daa6(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1db2a(%rip), %rdi     # 0x2aff0
leaq 0xf03e(%rip), %rsi      # 0x1c50b
callq 0x4370
movq %rax, %rdi
leaq 0xf071(%rip), %rsi      # 0x1c54d
callq 0x4370
movq %rax, %rdi
movq 0x1da75(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1daf9(%rip), %rdi     # 0x2aff0
leaq 0xf065(%rip), %rsi      # 0x1c563
callq 0x4370
movq %rax, %rdi
movq 0x1da53(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1dad7(%rip), %rdi     # 0x2aff0
leaq 0xf083(%rip), %rsi      # 0x1c5a3
callq 0x4370
movq %rax, %rdi
movq 0x1da31(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1dab5(%rip), %rdi     # 0x2aff0
leaq 0xf0a6(%rip), %rsi      # 0x1c5e8
callq 0x4370
movq %rax, %rdi
leaq 0xf0d9(%rip), %rsi      # 0x1c62a
callq 0x4370
movq %rax, %rdi
movq 0x1da00(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1da84(%rip), %rdi     # 0x2aff0
leaq 0xf0d3(%rip), %rsi      # 0x1c646
callq 0x4370
movq %rax, %rdi
movq 0x1d9de(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1da62(%rip), %rdi     # 0x2aff0
leaq 0xf0eb(%rip), %rsi      # 0x1c680
callq 0x4370
movq %rax, %rdi
movq 0x1d9bc(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1da40(%rip), %rdi     # 0x2aff0
leaq 0xf10f(%rip), %rsi      # 0x1c6c6
callq 0x4370
movq %rax, %rdi
leaq 0xf141(%rip), %rsi      # 0x1c707
callq 0x4370
movq %rax, %rdi
movq 0x1d98b(%rip), %rsi     # 0x2af60
callq 0x43b0
movq %rax, %rdi
leaq 0xf138(%rip), %rsi      # 0x1c71c
callq 0x4370
movq %rax, %rdi
leaq 0xf166(%rip), %rsi      # 0x1c759
callq 0x4370
movq %rax, %rdi
movq 0x1d95e(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d9e2(%rip), %rdi     # 0x2aff0
leaq 0xf14f(%rip), %rsi      # 0x1c764
callq 0x4370
movq %rax, %rdi
leaq 0xf183(%rip), %rsi      # 0x1c7a7
callq 0x4370
movq %rax, %rdi
movq 0x1d92d(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d9b1(%rip), %rdi     # 0x2aff0
leaq 0xf176(%rip), %rsi      # 0x1c7bc
callq 0x4370
movq %rax, %rdi
movq 0x1d90b(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d98f(%rip), %rdi     # 0x2aff0
leaq 0xf17b(%rip), %rsi      # 0x1c7e3
callq 0x4370
movq %rax, %rdi
movq 0x1d8e9(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d96d(%rip), %rdi     # 0x2aff0
leaq 0xf19c(%rip), %rsi      # 0x1c826
callq 0x4370
movq %rax, %rdi
movq 0x1d8c7(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d94b(%rip), %rdi     # 0x2aff0
leaq 0xf1a7(%rip), %rsi      # 0x1c853
callq 0x4370
movq %rax, %rdi
leaq 0xf1db(%rip), %rsi      # 0x1c896
callq 0x4370
movq %rax, %rdi
movq 0x1d896(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d91a(%rip), %rdi     # 0x2aff0
leaq 0xf1c9(%rip), %rsi      # 0x1c8a6
callq 0x4370
movq %rax, %rdi
leaq 0xf1fc(%rip), %rsi      # 0x1c8e8
callq 0x4370
movq %rax, %rdi
movq 0x1d865(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d8e9(%rip), %rdi     # 0x2aff0
leaq 0xf1eb(%rip), %rsi      # 0x1c8f9
callq 0x4370
movq %rax, %rdi
movq 0x1d843(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d8c7(%rip), %rdi     # 0x2aff0
leaq 0xf1f3(%rip), %rsi      # 0x1c923
callq 0x4370
movq %rax, %rdi
movq 0x1d821(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d8a5(%rip), %rdi     # 0x2aff0
leaq 0xf219(%rip), %rsi      # 0x1c96b
callq 0x4370
movq %rax, %rdi
movq 0x1d7ff(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d883(%rip), %rdi     # 0x2aff0
leaq 0xf23a(%rip), %rsi      # 0x1c9ae
callq 0x4370
movq %rax, %rdi
movq 0x1d7dd(%rip), %rsi     # 0x2af60
callq 0x43b0
movq 0x1d861(%rip), %rdi     # 0x2aff0
movq 0x1d7ca(%rip), %rsi     # 0x2af60
callq 0x43b0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)