// File: /workspace/github_c_makefile_star2_O1/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 0x2e597
leaq 0x29cc6(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x2e597
movq %rdi, %r14
movzwl (%rdi), %eax
cmpl $0x202, %eax            # imm = 0x202
je 0x2e509
cmpl $0x201, %eax            # imm = 0x201
jne 0x2e597
xorl %eax, %eax
callq 0x95d2
movq 0x10(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x5, %rcx
ja 0x2e52e
leaq 0x1c1c9(%rip), %rax     # 0x4a6c0
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x1c149(%rip), %rdi     # 0x4a650
jmp 0x2e587
xorl %eax, %eax
callq 0x95d2
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x2e55c
cmpq $0x1, %rax
je 0x2e553
testq %rax, %rax
jne 0x2e543
leaq 0x1ce8d(%rip), %rdi     # 0x4b3b9
jmp 0x2e587
cmpq $0x21, %rax
je 0x2e53a
cmpq $0x22, %rax
jne 0x2e543
leaq 0x1c116(%rip), %rdi     # 0x4a657
jmp 0x2e587
leaq 0x1a8df(%rip), %rdi     # 0x48e29
callq 0x5c33
xorl %ebx, %ebx
jmp 0x2e590
leaq 0x1817d(%rip), %rdi     # 0x466d7
jmp 0x2e587
leaq 0x1c62f(%rip), %rdi     # 0x4ab92
jmp 0x2e587
leaq 0x1c0e8(%rip), %rdi     # 0x4a654
jmp 0x2e587
leaq 0x1c0de(%rip), %rdi     # 0x4a653
jmp 0x2e587
leaq 0x1c60a(%rip), %rdi     # 0x4ab88
jmp 0x2e587
leaq 0x1c606(%rip), %rdi     # 0x4ab8d
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
xorl %eax, %eax
callq 0x95f3
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x17530