// File: /workspace/github_c_makefile_star2_O2/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 0x2d5c2
leaq 0x29c9b(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x2d5c2
movq %rdi, %r14
movzwl (%rdi), %eax
cmpl $0x202, %eax            # imm = 0x202
je 0x2d534
cmpl $0x201, %eax            # imm = 0x201
jne 0x2d5c2
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x5, %rcx
ja 0x2d559
leaq 0x1b18e(%rip), %rax     # 0x486b0
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x1b10e(%rip), %rdi     # 0x48640
jmp 0x2d5b2
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x2d587
cmpq $0x1, %rax
je 0x2d57e
testq %rax, %rax
jne 0x2d56e
leaq 0x1be52(%rip), %rdi     # 0x493a9
jmp 0x2d5b2
cmpq $0x21, %rax
je 0x2d565
cmpq $0x22, %rax
jne 0x2d56e
leaq 0x1b0db(%rip), %rdi     # 0x48647
jmp 0x2d5b2
leaq 0x198a4(%rip), %rdi     # 0x46e19
callq 0x56e2
xorl %ebx, %ebx
jmp 0x2d5bb
leaq 0x17142(%rip), %rdi     # 0x446c7
jmp 0x2d5b2
leaq 0x1b5f4(%rip), %rdi     # 0x48b82
jmp 0x2d5b2
leaq 0x1b0ad(%rip), %rdi     # 0x48644
jmp 0x2d5b2
leaq 0x1b0a3(%rip), %rdi     # 0x48643
jmp 0x2d5b2
leaq 0x1b5cf(%rip), %rdi     # 0x48b78
jmp 0x2d5b2
leaq 0x1b5cb(%rip), %rdi     # 0x48b7d
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
xorl %eax, %eax
callq 0x8fa0
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x16a4f