// File: /workspace/github_c_makefile_star2_O3/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus1_interpret_value
void
olympus1_interpret_value(struct ifd_entry *entry_ptr)
{
    int chpr = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag)
        {
            case 0x0201:    /* Compression Mode */
                print_startvalue();
                /* This appears to report "compression" only, while the   */
                /* camera's "quality" setting combines compression and    */
                /* image size in incomprehensible ways.                   */
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("SQ"); break;
                    case 2: chpr += printf("HQ"); break;
                    case 3: chpr += printf("SHQ"); break;
                    case 4: chpr += printf("RAW1"); break;
                    case 6: chpr += printf("RAW2"); break;
                    case 33: chpr += printf("not compressed"); break; /* TIFF  */
                    case 34: /* not sure about this one ###%%%         */
                             chpr += printf("not compressed");
                             break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0202:    /* Macro */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Macro"); break;
                    case 2: chpr += printf("View"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            default:
                break;
        }
    }
    setcharsprinted(chpr);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
xorl %ebx, %ebx
testq %rdi, %rdi
je 0x2ed97
leaq 0x294c6(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x2ed97
movq %rdi, %r14
movzwl (%rdi), %eax
cmpl $0x202, %eax            # imm = 0x202
je 0x2ed09
cmpl $0x201, %eax            # imm = 0x201
jne 0x2ed97
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x5, %rcx
ja 0x2ed2e
leaq 0x1ba09(%rip), %rax     # 0x4a700
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x1b989(%rip), %rdi     # 0x4a690
jmp 0x2ed87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x2ed5c
cmpq $0x1, %rax
je 0x2ed53
testq %rax, %rax
jne 0x2ed43
leaq 0x1c6cd(%rip), %rdi     # 0x4b3f9
jmp 0x2ed87
cmpq $0x21, %rax
je 0x2ed3a
cmpq $0x22, %rax
jne 0x2ed43
leaq 0x1b956(%rip), %rdi     # 0x4a697
jmp 0x2ed87
leaq 0x1a11f(%rip), %rdi     # 0x48e69
callq 0x5c26
xorl %ebx, %ebx
jmp 0x2ed90
leaq 0x179bd(%rip), %rdi     # 0x46717
jmp 0x2ed87
leaq 0x1be6f(%rip), %rdi     # 0x4abd2
jmp 0x2ed87
leaq 0x1b928(%rip), %rdi     # 0x4a694
jmp 0x2ed87
leaq 0x1b91e(%rip), %rdi     # 0x4a693
jmp 0x2ed87
leaq 0x1be4a(%rip), %rdi     # 0x4abc8
jmp 0x2ed87
leaq 0x1be46(%rip), %rdi     # 0x4abcd
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
xorl %eax, %eax
callq 0x971e
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x17a82