// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x42b42
leaq 0x347eb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x42b42
movq -0x8(%rbp), %rax
movzwl (%rax), %eax
movl %eax, -0x10(%rbp)
subl $0x201, %eax            # imm = 0x201
je 0x429cc
jmp 0x429b9
movl -0x10(%rbp), %eax
subl $0x202, %eax            # imm = 0x202
je 0x42ab5
jmp 0x42b3e
xorl %eax, %eax
callq 0xb9a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
decq %rax
movq %rax, -0x18(%rbp)
subq $0x21, %rax
ja 0x42a9d
movq -0x18(%rbp), %rax
leaq 0x2a4c9(%rip), %rcx     # 0x6cec0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2a449(%rip), %rdi     # 0x6ce50
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a434(%rip), %rdi     # 0x6ce54
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a41d(%rip), %rdi     # 0x6ce53
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a7c8(%rip), %rdi     # 0x6d214
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a7b7(%rip), %rdi     # 0x6d219
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a3df(%rip), %rdi     # 0x6ce57
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x2a3c9(%rip), %rdi     # 0x6ce57
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42aa9
leaq 0x28b67(%rip), %rdi     # 0x6b60b
callq 0x6860
movb $0x0, %al
callq 0xb9d0
jmp 0x42b40
xorl %eax, %eax
callq 0xb9a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
testq %rax, %rax
je 0x42ae7
jmp 0x42acf
movq -0x20(%rbp), %rax
subq $0x1, %rax
je 0x42afd
jmp 0x42adb
movq -0x20(%rbp), %rax
subq $0x2, %rax
je 0x42b13
jmp 0x42b29
leaq 0x2aefb(%rip), %rdi     # 0x6d9e9
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42b35
leaq 0x26123(%rip), %rdi     # 0x68c27
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42b35
leaq 0x2a704(%rip), %rdi     # 0x6d21e
movb $0x0, %al
callq 0x3110
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x42b35
leaq 0x28adb(%rip), %rdi     # 0x6b60b
callq 0x6860
movb $0x0, %al
callq 0xb9d0
jmp 0x42b40
jmp 0x42b40
jmp 0x42b42
movl -0xc(%rbp), %edi
callq 0x1ff00
addq $0x20, %rsp
popq %rbp
retq