// File: /workspace/github_c_makefile_star2_O3/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 0x3c895(%rip), %rax     # 0x59468
movq (%rax), %rsi
leaq 0x2b0fa(%rip), %rdi     # 0x47cd7
xorl %eax, %eax
callq 0x3120
leaq 0x2b13c(%rip), %rdi     # 0x47d27
callq 0x30a0
leaq 0x2b14e(%rip), %rdi     # 0x47d45
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b162(%rip), %rdi     # 0x47d6f
callq 0x30a0
leaq 0x2b19c(%rip), %rdi     # 0x47db5
callq 0x30a0
leaq 0x2b1d5(%rip), %rdi     # 0x47dfa
callq 0x30a0
leaq 0x2b208(%rip), %rdi     # 0x47e39
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b219(%rip), %rdi     # 0x47e60
callq 0x30a0
leaq 0x2b23d(%rip), %rdi     # 0x47e90
callq 0x30a0
leaq 0x2b27e(%rip), %rdi     # 0x47edd
callq 0x30a0
leaq 0x2b2bb(%rip), %rdi     # 0x47f26
callq 0x30a0
leaq 0x2b2e5(%rip), %rdi     # 0x47f5c
callq 0x30a0
leaq 0x2b303(%rip), %rdi     # 0x47f86
callq 0x30a0
leaq 0x2b336(%rip), %rdi     # 0x47fc5
callq 0x30a0
leaq 0x2b362(%rip), %rdi     # 0x47ffd
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b374(%rip), %rdi     # 0x48025
callq 0x30a0
leaq 0x2b393(%rip), %rdi     # 0x48050
callq 0x30a0
leaq 0x2b396(%rip), %rdi     # 0x4805f
callq 0x30a0
leaq 0x2b399(%rip), %rdi     # 0x4806e
callq 0x30a0
leaq 0x2b39f(%rip), %rdi     # 0x48080
callq 0x30a0
leaq 0x2b3c5(%rip), %rdi     # 0x480b2
callq 0x30a0
leaq 0x2b3e5(%rip), %rdi     # 0x480de
callq 0x30a0
leaq 0x2b405(%rip), %rdi     # 0x4810a
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b41a(%rip), %rdi     # 0x48135
callq 0x30a0
leaq 0x2b439(%rip), %rdi     # 0x48160
callq 0x30a0
leaq 0x2b43b(%rip), %rdi     # 0x4816e
callq 0x30a0
leaq 0x2b44b(%rip), %rdi     # 0x4818a
callq 0x30a0
leaq 0x2b457(%rip), %rdi     # 0x481a2
callq 0x30a0
leaq 0x2b45c(%rip), %rdi     # 0x481b3
callq 0x30a0
leaq 0x2b467(%rip), %rdi     # 0x481ca
callq 0x30a0
leaq 0x2b46e(%rip), %rdi     # 0x481dd
callq 0x30a0
leaq 0x2b488(%rip), %rdi     # 0x48203
callq 0x30a0
leaq 0x2b49e(%rip), %rdi     # 0x48225
callq 0x30a0
leaq 0x2b4c0(%rip), %rdi     # 0x48253
callq 0x30a0
leaq 0x2b4f1(%rip), %rdi     # 0x48290
callq 0x30a0
leaq 0x2b521(%rip), %rdi     # 0x482cc
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b53b(%rip), %rdi     # 0x482fc
callq 0x30a0
leaq 0x2b576(%rip), %rdi     # 0x48343
callq 0x30a0
leaq 0x2b5b4(%rip), %rdi     # 0x4838d
callq 0x30a0
leaq 0x2b5fd(%rip), %rdi     # 0x483e2
callq 0x30a0
leaq 0x2b648(%rip), %rdi     # 0x48439
callq 0x30a0
leaq 0x2b67e(%rip), %rdi     # 0x4847b
callq 0x30a0
leaq 0x2b6c5(%rip), %rdi     # 0x484ce
callq 0x30a0
movl $0xa, %edi
callq 0x3060
leaq 0x2b6fd(%rip), %rdi     # 0x4851c
callq 0x30a0
leaq 0x2b72a(%rip), %rdi     # 0x48555
callq 0x30a0
movl $0xa, %edi
callq 0x3060
popq %rax
jmp 0x1ce40