// File: /workspace/github_c_makefile_star2_O1/hfiguiere[P]exifprobe/maker_panasonic.c
// Function: panasonic1_interpret_value
void
panasonic1_interpret_value(struct ifd_entry *entry_ptr)
{
    switch(entry_ptr->tag)
    {
        case 0x0001:    /* Quality */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 2: printf("Fine"); break;
                case 3: printf("Standard"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x0003:    /* White Balance */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("Auto"); break;
                case 2: printf("Daylight"); break;
                case 3: printf("Cloudy"); break;
                case 4: printf("Halogen"); break;
                case 5: printf("Manual"); break;
                case 8: printf("Flash"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x0007:    /* Focus Mode */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("Auto"); break;
                case 2: printf("Manual"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x000f:    /* Spot Mode */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("Spot"); break;
                case 16: printf("1 Area"); break;
                case 256: printf("9 Area/On"); break;
                case 4096: printf("3 Area/Off"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x001a:    /* Stabilizer Mode */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 2: printf("Mode 1"); break;
                case 3: printf("Off"); break;
                case 4: printf("Mode 2"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x001c:    /* Macro */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("On"); break;
                case 2: printf("Off"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x001f:    /* Picture Mode */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 2: printf("Portrait"); break;
                case 3: printf("Scenery"); break;
                case 4: printf("Sports"); break;
                case 5: printf("Night Portrait"); break;
                case 6: printf("Program"); break;
                case 7: printf("Aperture Priority"); break;
                case 8: printf("Shutter Priority"); break;
                case 9: printf("Macro"); break;
                case 11: printf("Manual"); break;
                case 13: printf("Panning"); break;
                case 18: printf("Fireworks"); break;
                case 19: printf("Party"); break;
                case 20: printf("Snow"); break;
                case 21: printf("Night Scenery"); break;
                default: printred("undefined");
            }
            print_endvalue();
            break;
        case 0x0020:    /* Audio */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("Yes"); break;
                case 2: printf("No"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x0023:    /* White Balance Adjust */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 0xfffb: printf("-5"); break;
                case 0xfffc: printf("-4"); break;
                case 0xfffd: printf("-3"); break;
                case 0xfffe: printf("-2"); break;
                case 0xffff: printf("-1"); break;
                case 0x0000: printf("0"); break;
                case 0x0001: printf("+1"); break;
                case 0x0002: printf("+2"); break;
                case 0x0003: printf("+3"); break;
                case 0x0004: printf("+4"); break;
                case 0x0005: printf("+5"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x0024:    /* Flash Strength */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 0xfffa: printf("-2 EV"); break;
                case 0xfffb: printf("-1.67 EV"); break;
                case 0xfffc: printf("-1.33 EV"); break;
                case 0xfffd: printf("-1 EV"); break;
                case 0xfffe: printf("-0.67 EV"); break;
                case 0xffff: printf("-0.33 EV"); break;
                case 0x0000: printf("0 EV"); break;
                case 0x0001: printf("+0.33 EV"); break;
                case 0x0002: printf("+0.67 EV"); break;
                case 0x0003: printf("+1 EV"); break;
                case 0x0004: printf("+1.33 EV"); break;
                case 0x0005: printf("+1.67 EV"); break;
                case 0x0006: printf("+2 EV"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x0028:    /* Color Mode */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 1: printf("Off"); break;
                case 2: printf("Warm"); break;
                case 3: printf("Cool"); break;
                case 4: printf("Black/White"); break;
                case 5: printf("Sepia"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x002c:    /* Contrast */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 0: printf("Standard"); break;
                case 1: printf("Low"); break;
                case 2: printf("High"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        case 0x002d:    /* Noise Reduction */
            print_startvalue();
            switch(entry_ptr->value)
            {
                case 0: printf("Standard"); break;
                case 1: printf("Low"); break;
                case 2: printf("High"); break;
                default: printred("undefined"); break;
            }
            print_endvalue();
            break;
        default:
            break;
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movzwl (%rdi), %eax
cmpl $0xe, %eax
jle 0x3ec09
leal -0x1a(%rax), %ecx
cmpl $0x13, %ecx
ja 0x3ec9b
leaq 0xfb75(%rip), %rax      # 0x4e748
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3ee86
cmpq $0x1, %rax
je 0x3ee7a
testq %rax, %rax
je 0x3ee3a
jmp 0x3eeda
cmpl $0x1, %eax
je 0x3ec3c
cmpl $0x3, %eax
je 0x3ec67
cmpl $0x7, %eax
jne 0x3ecd7
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3ee52
cmpq $0x1, %rax
je 0x3ec8f
jmp 0x3eeda
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x3, %rax
je 0x3ee3a
cmpq $0x2, %rax
jne 0x3eeda
leaq 0xd274(%rip), %rdi      # 0x4bed6
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
decq %rax
cmpq $0x7, %rax
ja 0x3eeda
leaq 0xfbd6(%rip), %rcx      # 0x4e85c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xcb24(%rip), %rdi      # 0x4b7ba
jmp 0x3f0c0
cmpl $0xf, %eax
jne 0x3ecd7
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0xff, %rax
jg 0x3eeba
cmpq $0x1, %rax
je 0x3ef57
cmpq $0x10, %rax
jne 0x3eeda
leaq 0xfc60(%rip), %rdi      # 0x4e932
jmp 0x3f0c0
popq %rbx
retq
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x5, %rax
ja 0x3ee92
leaq 0xfaeb(%rip), %rcx      # 0x4e7e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x30, %edi
callq 0x3060
jmp 0x3f0c7
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
addq $-0x2, %rax
cmpq $0x13, %rax
ja 0x3eeda
leaq 0xfadf(%rip), %rcx      # 0x4e80c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xd343(%rip), %rdi      # 0x4c080
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x6, %rax
jbe 0x3ee5e
addq $-0xfffa, %rax          # imm = 0xFFFF0006
cmpq $0x5, %rax
ja 0x3eeda
leaq 0xfa5a(%rip), %rcx      # 0x4e7c8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xe4a8(%rip), %rdi      # 0x4d226
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3eeeb
cmpq $0x1, %rax
jne 0x3eeda
leaq 0xd21b(%rip), %rdi      # 0x4bfc4
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
decq %rax
cmpq $0x4, %rax
ja 0x3eeda
leaq 0xf9cb(%rip), %rcx      # 0x4e798
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xfbb3(%rip), %rdi      # 0x4e990
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x4, %rax
je 0x3eef7
cmpq $0x3, %rax
je 0x3ee46
cmpq $0x2, %rax
jne 0x3eeda
leaq 0xfb40(%rip), %rdi      # 0x4e94e
jmp 0x3f0c0
xorl %eax, %eax
callq 0x95d2
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3ee46
cmpq $0x1, %rax
jne 0x3eeda
leaq 0xc22c(%rip), %rdi      # 0x4b061
jmp 0x3f0c0
leaq 0x783c(%rip), %rdi      # 0x4667d
jmp 0x3f0c0
leaq 0xc20d(%rip), %rdi      # 0x4b05a
jmp 0x3f0c0
leaq 0x75bd(%rip), %rdi      # 0x46416
jmp 0x3f0c0
leaq 0xf947(%rip), %rcx      # 0x4e7ac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xe400(%rip), %rdi      # 0x4d275
jmp 0x3f0c0
leaq 0xf89d(%rip), %rdi      # 0x4e71e
jmp 0x3f0c0
leaq 0xf89c(%rip), %rdi      # 0x4e729
jmp 0x3f0c0
addq $-0xfffb, %rax          # imm = 0xFFFF0005
cmpq $0x4, %rax
ja 0x3eeda
leaq 0xf953(%rip), %rcx      # 0x4e7f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xfac3(%rip), %rdi      # 0x4e978
jmp 0x3f0c0
cmpq $0x100, %rax            # imm = 0x100
je 0x3ef63
cmpq $0x1000, %rax           # imm = 0x1000
jne 0x3eeda
leaq 0xfa6e(%rip), %rdi      # 0x4e943
jmp 0x3f0c0
leaq 0x9f48(%rip), %rdi      # 0x48e29
callq 0x5c33
jmp 0x3f0c7
leaq 0xde66(%rip), %rdi      # 0x4cd58
jmp 0x3f0c0
leaq 0xfa57(%rip), %rdi      # 0x4e955
jmp 0x3f0c0
leaq 0xf038(%rip), %rdi      # 0x4df42
jmp 0x3f0c0
leaq 0xcf36(%rip), %rdi      # 0x4be4c
jmp 0x3f0c0
leaq 0xeff9(%rip), %rdi      # 0x4df1b
jmp 0x3f0c0
leaq 0xf9fc(%rip), %rdi      # 0x4e92a
jmp 0x3f0c0
leaq 0xe011(%rip), %rdi      # 0x4cf4b
jmp 0x3f0c0
leaq 0xfa4f(%rip), %rdi      # 0x4e995
jmp 0x3f0c0
leaq 0xfa48(%rip), %rdi      # 0x4e99a
jmp 0x3f0c0
leaq 0x73e2(%rip), %rdi      # 0x46340
jmp 0x3f0c0
leaq 0xf9cf(%rip), %rdi      # 0x4e939
jmp 0x3f0c0
leaq 0xfa14(%rip), %rdi      # 0x4e98a
jmp 0x3f0c0
leaq 0xc820(%rip), %rdi      # 0x4b7a2
jmp 0x3f0c0
leaq 0xf9f6(%rip), %rdi      # 0x4e984
jmp 0x3f0c0
leaq 0xf9e4(%rip), %rdi      # 0x4e97e
jmp 0x3f0c0
leaq 0xf9e1(%rip), %rdi      # 0x4e987
jmp 0x3f0c0
leaq 0xc7f3(%rip), %rdi      # 0x4b7a5
jmp 0x3f0c0
leaq 0xf9c3(%rip), %rdi      # 0x4e981
jmp 0x3f0c0
leaq 0xf9b1(%rip), %rdi      # 0x4e97b
jmp 0x3f0c0
leaq 0xf9b7(%rip), %rdi      # 0x4e98d
jmp 0x3f0c0
leaq 0xe26b(%rip), %rdi      # 0x4d24d
jmp 0x3f0c0
leaq 0xe29b(%rip), %rdi      # 0x4d289
jmp 0x3f0c0
leaq 0xe244(%rip), %rdi      # 0x4d23e
jmp 0x3f0c0
leaq 0xe274(%rip), %rdi      # 0x4d27a
jmp 0x3f0c0
leaq 0xe235(%rip), %rdi      # 0x4d247
jmp 0x3f0c0
leaq 0xe265(%rip), %rdi      # 0x4d283
jmp 0x3f0c0
leaq 0xe202(%rip), %rdi      # 0x4d22c
jmp 0x3f0c0
leaq 0xe232(%rip), %rdi      # 0x4d268
jmp 0x3f0c0
leaq 0xe21d(%rip), %rdi      # 0x4d25f
jmp 0x3f0c0
leaq 0xe250(%rip), %rdi      # 0x4d29b
jmp 0x3f0c0
leaq 0xe250(%rip), %rdi      # 0x4d2a4
jmp 0x3f0c0
leaq 0xf90d(%rip), %rdi      # 0x4e96a
jmp 0x3f0c0
leaq 0xc09f(%rip), %rdi      # 0x4b105
jmp 0x3f0c0
leaq 0xd00b(%rip), %rdi      # 0x4c07a
jmp 0x3f0c0
leaq 0xc0b5(%rip), %rdi      # 0x4b12d
jmp 0x3f0c0
leaq 0x73c8(%rip), %rdi      # 0x46449
jmp 0x3f0c0
leaq 0xf8da(%rip), %rdi      # 0x4e964
jmp 0x3f0c0
leaq 0xc311(%rip), %rdi      # 0x4b3a4
jmp 0x3f0c0
leaq 0xf8d4(%rip), %rdi      # 0x4e970
jmp 0x3f0c0
leaq 0x7378(%rip), %rdi      # 0x4641d
jmp 0x3f0c0
leaq 0x7381(%rip), %rdi      # 0x4642f
jmp 0x3f0c0
leaq 0xf8a5(%rip), %rdi      # 0x4e95c
jmp 0x3f0c0
leaq 0x7617(%rip), %rdi      # 0x466d7
xorl %eax, %eax
callq 0x3120
xorl %eax, %eax
popq %rbx
jmp 0x95f3