// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_epson.c
// Function: epson1_interpret_offset_makervalue
void
epson1_interpret_offset_makervalue(FILE *inptr,unsigned short byteorder,
                    struct ifd_entry *entry_ptr,unsigned long fileoffset_base)
{
    unsigned long offset,value;
    int chpr = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        offset = entry_ptr->value + fileoffset_base;
        switch(entry_ptr->tag)
        {
            case 0x0200:    /* SpecialMode                            */
                value = read_ulong(inptr,byteorder,offset);
                print_startvalue();
                /* Don't know what the last 2 values might mean for   */
                /* "normal" or "fast".                                */
                switch(value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Unknown"); break;
                    case 2: chpr += printf("Fast"); break;
                    case 3: chpr += printf("Panorama,");
                            value = read_ulong(inptr,byteorder,HERE);
                            chpr += printf("#%lu,",value);
                            value = read_ulong(inptr,byteorder,HERE);
                            switch(value)
                            {
                                case 1: chpr += printf(" Left to Right"); break;
                                case 2: chpr += printf(" Right to Left"); break;
                                case 3: chpr += printf(" Bottom to Top"); break;
                                case 4: chpr += printf(" Top to Bottom"); break;
                                default: printred(" undefined"); break;
                            }
                            break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            default:
                break;
        }
    }
    setcharsprinted(chpr);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
xorl %ebx, %ebx
testq %rdx, %rdx
je 0x2d2ed
leaq 0x29fa3(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x2d2ed
cmpw $0x200, (%rdx)          # imm = 0x200
jne 0x2d2ed
movq %rdi, %r14
addq 0x10(%rdx), %rcx
movzwl %si, %ebp
movl %ebp, %esi
movq %rcx, %rdx
callq 0x42ba
movq %rax, %r15
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x8f81
cmpq $0x3, %r15
ja 0x2d2b6
leaq 0x1b36e(%rip), %rax     # 0x48590
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x1c177(%rip), %rdi     # 0x493a9
jmp 0x2d2ab
leaq 0x1b423(%rip), %rdi     # 0x4865e
jmp 0x2d2ab
leaq 0x1b41f(%rip), %rdi     # 0x48663
xorl %eax, %eax
callq 0x3120
movl %eax, %r15d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq %r14, %rdi
movl %ebp, %esi
callq 0x42ba
leaq 0x1b409(%rip), %rdi     # 0x4866d
movq %rax, %rsi
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
addl %r15d, %ebx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq %r14, %rdi
movl %ebp, %esi
callq 0x42ba
decq %rax
cmpq $0x3, %rax
ja 0x2d2fe
leaq 0x1b30e(%rip), %rcx     # 0x485a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1b3d1(%rip), %rdi     # 0x48673
jmp 0x2d2dd
leaq 0x1b3ab(%rip), %rdi     # 0x48656
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
jmp 0x2d2e6
leaq 0x19b5c(%rip), %rdi     # 0x46e19
callq 0x56e2
jmp 0x2d2e6
leaq 0x1b3c6(%rip), %rdi     # 0x48691
jmp 0x2d2dd
leaq 0x1b3cc(%rip), %rdi     # 0x486a0
jmp 0x2d2dd
leaq 0x1b3a5(%rip), %rdi     # 0x48682
xorl %eax, %eax
callq 0x3120
addl %eax, %ebx
xorl %eax, %eax
callq 0x8fa0
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x16a4f
leaq 0x19b13(%rip), %rdi     # 0x46e18
jmp 0x2d2bd