// File: /workspace/github_c_makefile_star2_O2/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 %rbx
leaq 0x3cae6(%rip), %rax     # 0x58468
movq (%rax), %rsi
leaq 0x2a2fb(%rip), %rdi     # 0x45c87
xorl %eax, %eax
callq 0x3120
leaq 0x2a33d(%rip), %rdi     # 0x45cd7
callq 0x30a0
leaq 0x2a34f(%rip), %rdi     # 0x45cf5
callq 0x30a0
pushq $0xa
popq %rbx
movl %ebx, %edi
callq 0x3060
leaq 0x2a363(%rip), %rdi     # 0x45d1f
callq 0x30a0
leaq 0x2a39d(%rip), %rdi     # 0x45d65
callq 0x30a0
leaq 0x2a3d6(%rip), %rdi     # 0x45daa
callq 0x30a0
leaq 0x2a409(%rip), %rdi     # 0x45de9
callq 0x30a0
movl %ebx, %edi
callq 0x3060
leaq 0x2a41d(%rip), %rdi     # 0x45e10
callq 0x30a0
leaq 0x2a441(%rip), %rdi     # 0x45e40
callq 0x30a0
leaq 0x2a482(%rip), %rdi     # 0x45e8d
callq 0x30a0
leaq 0x2a4bf(%rip), %rdi     # 0x45ed6
callq 0x30a0
leaq 0x2a4e9(%rip), %rdi     # 0x45f0c
callq 0x30a0
leaq 0x2a507(%rip), %rdi     # 0x45f36
callq 0x30a0
leaq 0x2a53a(%rip), %rdi     # 0x45f75
callq 0x30a0
leaq 0x2a566(%rip), %rdi     # 0x45fad
callq 0x30a0
movl %ebx, %edi
callq 0x3060
leaq 0x2a57b(%rip), %rdi     # 0x45fd5
callq 0x30a0
leaq 0x2a59a(%rip), %rdi     # 0x46000
callq 0x30a0
leaq 0x2a59d(%rip), %rdi     # 0x4600f
callq 0x30a0
leaq 0x2a5a0(%rip), %rdi     # 0x4601e
callq 0x30a0
leaq 0x2a5a6(%rip), %rdi     # 0x46030
callq 0x30a0
leaq 0x2a5cc(%rip), %rdi     # 0x46062
callq 0x30a0
leaq 0x2a5ec(%rip), %rdi     # 0x4608e
callq 0x30a0
leaq 0x2a60c(%rip), %rdi     # 0x460ba
callq 0x30a0
movl %ebx, %edi
callq 0x3060
leaq 0x2a624(%rip), %rdi     # 0x460e5
callq 0x30a0
leaq 0x2a643(%rip), %rdi     # 0x46110
callq 0x30a0
leaq 0x2a645(%rip), %rdi     # 0x4611e
callq 0x30a0
leaq 0x2a655(%rip), %rdi     # 0x4613a
callq 0x30a0
leaq 0x2a661(%rip), %rdi     # 0x46152
callq 0x30a0
leaq 0x2a666(%rip), %rdi     # 0x46163
callq 0x30a0
leaq 0x2a671(%rip), %rdi     # 0x4617a
callq 0x30a0
leaq 0x2a678(%rip), %rdi     # 0x4618d
callq 0x30a0
leaq 0x2a692(%rip), %rdi     # 0x461b3
callq 0x30a0
leaq 0x2a6a8(%rip), %rdi     # 0x461d5
callq 0x30a0
leaq 0x2a6ca(%rip), %rdi     # 0x46203
callq 0x30a0
leaq 0x2a6fb(%rip), %rdi     # 0x46240
callq 0x30a0
leaq 0x2a72b(%rip), %rdi     # 0x4627c
callq 0x30a0
movl %ebx, %edi
callq 0x3060
leaq 0x2a748(%rip), %rdi     # 0x462ac
callq 0x30a0
leaq 0x2a783(%rip), %rdi     # 0x462f3
callq 0x30a0
leaq 0x2a7c1(%rip), %rdi     # 0x4633d
callq 0x30a0
leaq 0x2a80a(%rip), %rdi     # 0x46392
callq 0x30a0
leaq 0x2a855(%rip), %rdi     # 0x463e9
callq 0x30a0
leaq 0x2a88b(%rip), %rdi     # 0x4642b
callq 0x30a0
leaq 0x2a8d2(%rip), %rdi     # 0x4647e
callq 0x30a0
movl %ebx, %edi
callq 0x3060
leaq 0x2a90d(%rip), %rdi     # 0x464cc
callq 0x30a0
leaq 0x2a93a(%rip), %rdi     # 0x46505
callq 0x30a0
movl %ebx, %edi
callq 0x3060
popq %rbx
jmp 0x1bbdd