// File: /workspace/github_c_makefile_star2_O3/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 0x31a97
leaq 0x269db(%rip), %rax     # 0x58180
testb $0x30, (%rax)
je 0x31a97
movq %rdi, %r14
movzwl (%rdi), %eax
decl %eax
cmpl $0xc, %eax
ja 0x31a97
leaq 0x19ca2(%rip), %rcx     # 0x4b468
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x319c2
cmpq $0x1, %rax
jne 0x31994
leaq 0x1cf69(%rip), %rdi     # 0x4e75e
jmp 0x31a87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0xf, %rax
je 0x31a01
cmpq $0xd, %rax
je 0x319f5
cmpq $0xb, %rax
jne 0x31a0d
leaq 0x19f64(%rip), %rdi     # 0x4b78e
jmp 0x31833
leaq 0x1ced2(%rip), %rdi     # 0x4e705
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
jmp 0x31a97
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
decq %rax
cmpq $0x3, %rax
ja 0x319a5
leaq 0x19c4e(%rip), %rcx     # 0x4b4b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x19b6b(%rip), %rdi     # 0x4b3dd
jmp 0x31a87
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
decq %rax
cmpq $0x4, %rax
ja 0x319a5
leaq 0x19c38(%rip), %rcx     # 0x4b4d0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x19ebd(%rip), %rdi     # 0x4b765
jmp 0x31a87
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
addq $-0x2, %rax
cmpq $0x3, %rax
ja 0x319a5
leaq 0x19bf1(%rip), %rcx     # 0x4b4c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x14e38(%rip), %rdi     # 0x46717
jmp 0x31a87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0x3, %rax
je 0x31a1d
cmpq $0x2, %rax
je 0x31999
cmpq $0x1, %rax
jne 0x319e2
leaq 0x19e69(%rip), %rdi     # 0x4b77d
jmp 0x31a87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
leaq -0x1(%rax), %rcx
cmpq $0x4, %rcx
ja 0x319ce
leaq 0x19b63(%rip), %rax     # 0x4b49c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x19eb1(%rip), %rdi     # 0x4b7fa
jmp 0x31a87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0x10001, %rax          # imm = 0x10001
je 0x319b6
cmpq $0x10000, %rax          # imm = 0x10000
jne 0x319e2
leaq 0x1972a(%rip), %rdi     # 0x4b09a
jmp 0x31a87
xorl %eax, %eax
callq 0x96fd
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x31a2f
cmpq $0x1, %rax
je 0x31a26
testq %rax, %rax
jne 0x319e2
leaq 0x19a59(%rip), %rdi     # 0x4b3f9
jmp 0x31a87
leaq 0x174bd(%rip), %rdi     # 0x48e69
callq 0x5c26
jmp 0x31a90
leaq 0x196e4(%rip), %rdi     # 0x4b0a1
jmp 0x31a87
leaq 0x1cda0(%rip), %rdi     # 0x4e769
jmp 0x31a87
cmpq $0x81, %rax
jne 0x319e2
leaq 0x14a79(%rip), %rdi     # 0x46456
jmp 0x31a87
leaq 0x17480(%rip), %rdi     # 0x48e69
callq 0x5c26
xorl %ebx, %ebx
jmp 0x31a90
leaq 0x199fd(%rip), %rdi     # 0x4b3f9
jmp 0x31833
leaq 0x19d8b(%rip), %rdi     # 0x4b793
jmp 0x31833
leaq 0x17455(%rip), %rdi     # 0x48e69
callq 0x5c26
xorl %ebx, %ebx
jmp 0x31a97
leaq 0x1a4f2(%rip), %rdi     # 0x4bf16
jmp 0x31a87
leaq 0x1cd48(%rip), %rdi     # 0x4e775
jmp 0x31a87
leaq 0x1cd4b(%rip), %rdi     # 0x4e781
jmp 0x31a87
leaq 0x19d46(%rip), %rdi     # 0x4b785
jmp 0x31a87
leaq 0x14c7e(%rip), %rdi     # 0x466c6
jmp 0x31a87
leaq 0x14c7f(%rip), %rdi     # 0x466d0
jmp 0x31a87
leaq 0x1a666(%rip), %rdi     # 0x4c0c0
jmp 0x31a87
leaq 0x19d11(%rip), %rdi     # 0x4b774
jmp 0x31a87
leaq 0x1c5ee(%rip), %rdi     # 0x4e05a
jmp 0x31a87
leaq 0x1c4e6(%rip), %rdi     # 0x4df5b
jmp 0x31a87
leaq 0x19953(%rip), %rdi     # 0x4b3d1
jmp 0x31a87
leaq 0x1c51e(%rip), %rdi     # 0x4dfa5
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
xorl %eax, %eax
callq 0x971e
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x17a82