// File: /workspace/github_c_makefile_star2_O1/hfiguiere[P]exifprobe/options.c
// Function: usage
void
usage()
{
    printf("Usage:\n%s [options] filenames(s)\n",Progname);
    printf("\t-h - print this help message\n");
    printf("\t-V - print program version and copyright\n");
    (void)putchar('\n');
    printf("\t-R - Report mode: only tagnames and decimal values, indented, inline\n");
    printf("\t-S - Structure mode: everything, offset values not inline (default)\n");
    printf("\t-L - List mode: list all tags and values (only); no structure\n");
    printf("\t-Z - Zero (turn off) all output flags\n");
    (void)putchar('\n');
    printf("\t-a - toggle print addresses in hex and decimal\n");
    printf("\t-D - toggle print enabled addresses, tag numbers and values in decimal only\n");
    printf("\t-X - toggle print enabled addresses, tag numbers and values in hex only\n");
    printf("\t-I - toggle indent (after address -> before -> none)\n");
    printf("\t-i - toggle \"inline\" print of IFD values\n");
    printf("\t-n - toggle printing of filename at start of each output line\n");
    printf("\t-c - toggle use of color to highlight certain sections\n");
    printf("\t-u - print all 16 bits of unicode data\n");
    (void)putchar('\n');

    printf("\t-p[items] - toggle print identifiers for:\n");
    printf("\t\ts - sections\n");
    printf("\t\tg - segments\n");
    printf("\t\te - IFD entries\n");
    printf("\t\ta - expand known entries in APP0...APPN segents\n");
    printf("\t\tm - print MakerNote scheme detection info\n");
    printf("\t\tM - debug MakerNote scheme detection info\n");
    printf("\t\tl - long tagnames (default in List mode)\n");
    (void)putchar('\n');

    printf("\t-e[items] - toggle print IFD entry items:\n");
    printf("\t\tt - tagname\n");
    printf("\t\tn - tag number in decimal\n");
    printf("\t\tN - tag number in hex\n");
    printf("\t\tT - entry type\n");
    printf("\t\tv - value in decimal\n");
    printf("\t\tV - value in hex\n");
    printf("\t\to - file offset to value in decimal\n");
    printf("\t\tO - file offset to value in hex\n");
    printf("\t\tr - relative (unadjusted) offset in decimal\n");
    printf("\t\tR - print \"raw\" values where expansion of values is needed\n");
    printf("\t\ta - print ascii strings until null, rather than by length\n");
    printf("\t\tA - print ALL elements of multiple-value tags\n");
    (void)putchar('\n');

    printf("\t-M[len|a] - hex/ascii dump 'len' (or all) bytes of unknown MakerNotes\n");
    printf("\t-A[len|a] - hex/ascii dump 'len' (or all) bytes of unknown APPn segments\n");
    printf("\t-U[len|a] - hex/ascii dump 'len' (or all) bytes of UNDEFINED data of unknown format\n");
    printf("\t-B[len|a] - hex/ascii dump 'len' (or all) bytes of binary images or invalid JPEG data\n");
    printf("\t-N[num]   - force noteversion 'num' for MakerNote interpretation\n");
    printf("\t-m[name]  - force use of maker 'name' to select MakerNote interpretation routines\n");
    printf("\t-l[model] - force use of 'model' to select MakerNote interpretation routines\n");
    (void)putchar('\n');
    printf("\t-O[offset]       - start processing at 'offset' in file\n");
    printf("\t-C[make]+[model] - print makes matching 'make', models matching 'model' (substrings)\n");
    (void)putchar('\n');
    print_version();
}

// Assembly:
pushq %rax
leaq 0x3cda2(%rip), %rax     # 0x59468
movq (%rax), %rsi
leaq 0x2b5c7(%rip), %rdi     # 0x47c97
xorl %eax, %eax
callq 0x3120
leaq 0x2b609(%rip), %rdi     # 0x47ce7
callq 0x30a0
leaq 0x2b61b(%rip), %rdi     # 0x47d05
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b62f(%rip), %rdi     # 0x47d2f
callq 0x30a0
leaq 0x2b669(%rip), %rdi     # 0x47d75
callq 0x30a0
leaq 0x2b6a2(%rip), %rdi     # 0x47dba
callq 0x30a0
leaq 0x2b6d5(%rip), %rdi     # 0x47df9
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b6e6(%rip), %rdi     # 0x47e20
callq 0x30a0
leaq 0x2b70a(%rip), %rdi     # 0x47e50
callq 0x30a0
leaq 0x2b74b(%rip), %rdi     # 0x47e9d
callq 0x30a0
leaq 0x2b788(%rip), %rdi     # 0x47ee6
callq 0x30a0
leaq 0x2b7b2(%rip), %rdi     # 0x47f1c
callq 0x30a0
leaq 0x2b7d0(%rip), %rdi     # 0x47f46
callq 0x30a0
leaq 0x2b803(%rip), %rdi     # 0x47f85
callq 0x30a0
leaq 0x2b82f(%rip), %rdi     # 0x47fbd
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b841(%rip), %rdi     # 0x47fe5
callq 0x30a0
leaq 0x2b860(%rip), %rdi     # 0x48010
callq 0x30a0
leaq 0x2b863(%rip), %rdi     # 0x4801f
callq 0x30a0
leaq 0x2b866(%rip), %rdi     # 0x4802e
callq 0x30a0
leaq 0x2b86c(%rip), %rdi     # 0x48040
callq 0x30a0
leaq 0x2b892(%rip), %rdi     # 0x48072
callq 0x30a0
leaq 0x2b8b2(%rip), %rdi     # 0x4809e
callq 0x30a0
leaq 0x2b8d2(%rip), %rdi     # 0x480ca
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b8e7(%rip), %rdi     # 0x480f5
callq 0x30a0
leaq 0x2b906(%rip), %rdi     # 0x48120
callq 0x30a0
leaq 0x2b908(%rip), %rdi     # 0x4812e
callq 0x30a0
leaq 0x2b918(%rip), %rdi     # 0x4814a
callq 0x30a0
leaq 0x2b924(%rip), %rdi     # 0x48162
callq 0x30a0
leaq 0x2b929(%rip), %rdi     # 0x48173
callq 0x30a0
leaq 0x2b934(%rip), %rdi     # 0x4818a
callq 0x30a0
leaq 0x2b93b(%rip), %rdi     # 0x4819d
callq 0x30a0
leaq 0x2b955(%rip), %rdi     # 0x481c3
callq 0x30a0
leaq 0x2b96b(%rip), %rdi     # 0x481e5
callq 0x30a0
leaq 0x2b98d(%rip), %rdi     # 0x48213
callq 0x30a0
leaq 0x2b9be(%rip), %rdi     # 0x48250
callq 0x30a0
leaq 0x2b9ee(%rip), %rdi     # 0x4828c
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2ba08(%rip), %rdi     # 0x482bc
callq 0x30a0
leaq 0x2ba43(%rip), %rdi     # 0x48303
callq 0x30a0
leaq 0x2ba81(%rip), %rdi     # 0x4834d
callq 0x30a0
leaq 0x2baca(%rip), %rdi     # 0x483a2
callq 0x30a0
leaq 0x2bb15(%rip), %rdi     # 0x483f9
callq 0x30a0
leaq 0x2bb4b(%rip), %rdi     # 0x4843b
callq 0x30a0
leaq 0x2bb92(%rip), %rdi     # 0x4848e
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2bbca(%rip), %rdi     # 0x484dc
callq 0x30a0
leaq 0x2bbf7(%rip), %rdi     # 0x48515
callq 0x30a0
movl $0xa, %edi
callq 0x3060
popq %rax
jmp 0x1c933