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

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag)
        {
            case 0x0001:    /* RecordingMode */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("Single Shutter"); break;
                    case 2: chpr += printf("Panorama"); break;
                    case 3: chpr += printf("Night Scene"); break;
                    case 4: chpr += printf("Portrait"); break;
                    case 5: chpr += printf("Landscape"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0002:    /* Quality */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("Economy"); break;
                    case 2: chpr += printf("Normal"); break;
                    case 3: chpr += printf("Fine"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0003:    /* Focusing Mode */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 2: chpr += printf("Macro"); break;
                    case 3: chpr += printf("Auto"); break;
                    case 4: chpr += printf("Manual"); break;
                    case 5: chpr += printf("Infinity"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0004:    /* Flash Mode */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("Auto"); break;
                    case 2: chpr += printf("On"); break;
                    case 3: chpr += printf("Off"); break;
                    case 4: chpr += printf("Redeye"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0005:    /* Flash Intensity */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 11: chpr += printf("Weak"); break;
                    case 13: chpr += printf("Normal"); break;
                    case 15: chpr += printf("Strong"); break;
                    default: printred("undefined"); }
                break;
            case 0x0006:    /* Object Distance */
                PUSHCOLOR(UNCERTAIN_COLOR);
                chpr += printf(" mm");
                POPCOLOR();
                break;
            case 0x0007:    /* White Balance */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("Auto"); break;
                    case 2: chpr += printf("Tungsten"); break;
                    case 3: chpr += printf("Daylight"); break;
                    case 4: chpr += printf("Fluorescent"); break;
                    case 5: chpr += printf("Shade"); break;
                    case 129: chpr += printf("Manual"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x000a:    /* Digital Zoom */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0x10000: chpr += printf("Off"); break;
                    case 0x10001: chpr += printf("On"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x000b:    /* Sharpness */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Soft"); break;
                    case 2: chpr += printf("Hard"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x000c:    /* Contrast */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Low"); break;
                    case 2: chpr += printf("High"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x000d:    /* Saturation */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Low"); break;
                    case 2: chpr += printf("High"); 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 0x30080
leaq 0x273f2(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x30080
movq %rdi, %r14
movzwl (%rdi), %eax
decl %eax
cmpl $0xc, %eax
ja 0x30080
leaq 0x19669(%rip), %rcx     # 0x49418
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x2ffab
cmpq $0x1, %rax
jne 0x2ff7d
leaq 0x1c930(%rip), %rdi     # 0x4c70e
jmp 0x30070
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0xf, %rax
je 0x2ffea
cmpq $0xd, %rax
je 0x2ffde
cmpq $0xb, %rax
jne 0x2fff6
leaq 0x1992b(%rip), %rdi     # 0x4973e
jmp 0x2fe1c
leaq 0x1c899(%rip), %rdi     # 0x4c6b5
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
jmp 0x30080
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
decq %rax
cmpq $0x3, %rax
ja 0x2ff8e
leaq 0x19615(%rip), %rcx     # 0x49460
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x19532(%rip), %rdi     # 0x4938d
jmp 0x30070
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
decq %rax
cmpq $0x4, %rax
ja 0x2ff8e
leaq 0x195ff(%rip), %rcx     # 0x49480
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x19884(%rip), %rdi     # 0x49715
jmp 0x30070
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
addq $-0x2, %rax
cmpq $0x3, %rax
ja 0x2ff8e
leaq 0x195b8(%rip), %rcx     # 0x49470
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x147ff(%rip), %rdi     # 0x446c7
jmp 0x30070
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0x3, %rax
je 0x30006
cmpq $0x2, %rax
je 0x2ff82
cmpq $0x1, %rax
jne 0x2ffcb
leaq 0x19830(%rip), %rdi     # 0x4972d
jmp 0x30070
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x4, %rcx
ja 0x2ffb7
leaq 0x1952a(%rip), %rax     # 0x4944c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x19878(%rip), %rdi     # 0x497aa
jmp 0x30070
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0x10001, %rax          # imm = 0x10001
je 0x2ff9f
cmpq $0x10000, %rax          # imm = 0x10000
jne 0x2ffcb
leaq 0x190f1(%rip), %rdi     # 0x4904a
jmp 0x30070
xorl %eax, %eax
callq 0x8f81
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x30018
cmpq $0x1, %rax
je 0x3000f
testq %rax, %rax
jne 0x2ffcb
leaq 0x19420(%rip), %rdi     # 0x493a9
jmp 0x30070
leaq 0x16e84(%rip), %rdi     # 0x46e19
callq 0x56e2
jmp 0x30079
leaq 0x190ab(%rip), %rdi     # 0x49051
jmp 0x30070
leaq 0x1c767(%rip), %rdi     # 0x4c719
jmp 0x30070
cmpq $0x81, %rax
jne 0x2ffcb
leaq 0x14440(%rip), %rdi     # 0x44406
jmp 0x30070
leaq 0x16e47(%rip), %rdi     # 0x46e19
callq 0x56e2
xorl %ebx, %ebx
jmp 0x30079
leaq 0x193c4(%rip), %rdi     # 0x493a9
jmp 0x2fe1c
leaq 0x19752(%rip), %rdi     # 0x49743
jmp 0x2fe1c
leaq 0x16e1c(%rip), %rdi     # 0x46e19
callq 0x56e2
xorl %ebx, %ebx
jmp 0x30080
leaq 0x19eb9(%rip), %rdi     # 0x49ec6
jmp 0x30070
leaq 0x1c70f(%rip), %rdi     # 0x4c725
jmp 0x30070
leaq 0x1c712(%rip), %rdi     # 0x4c731
jmp 0x30070
leaq 0x1970d(%rip), %rdi     # 0x49735
jmp 0x30070
leaq 0x14645(%rip), %rdi     # 0x44676
jmp 0x30070
leaq 0x14646(%rip), %rdi     # 0x44680
jmp 0x30070
leaq 0x1a02d(%rip), %rdi     # 0x4a070
jmp 0x30070
leaq 0x196d8(%rip), %rdi     # 0x49724
jmp 0x30070
leaq 0x1bfb5(%rip), %rdi     # 0x4c00a
jmp 0x30070
leaq 0x1bead(%rip), %rdi     # 0x4bf0b
jmp 0x30070
leaq 0x1931a(%rip), %rdi     # 0x49381
jmp 0x30070
leaq 0x1bee5(%rip), %rdi     # 0x4bf55
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