// File: /workspace/github_c_makefile_star2_O3/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 0x3f501
leal -0x1a(%rax), %ecx
cmpl $0x13, %ecx
ja 0x3f593
leaq 0xf2bd(%rip), %rax      # 0x4e788
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3f77e
cmpq $0x1, %rax
je 0x3f772
testq %rax, %rax
je 0x3f732
jmp 0x3f7d2
cmpl $0x1, %eax
je 0x3f534
cmpl $0x3, %eax
je 0x3f55f
cmpl $0x7, %eax
jne 0x3f5cf
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3f74a
cmpq $0x1, %rax
je 0x3f587
jmp 0x3f7d2
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x3, %rax
je 0x3f732
cmpq $0x2, %rax
jne 0x3f7d2
leaq 0xc9bc(%rip), %rdi      # 0x4bf16
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
decq %rax
cmpq $0x7, %rax
ja 0x3f7d2
leaq 0xf31e(%rip), %rcx      # 0x4e89c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xc26c(%rip), %rdi      # 0x4b7fa
jmp 0x3f9b8
cmpl $0xf, %eax
jne 0x3f5cf
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0xff, %rax
jg 0x3f7b2
cmpq $0x1, %rax
je 0x3f84f
cmpq $0x10, %rax
jne 0x3f7d2
leaq 0xf3a8(%rip), %rdi      # 0x4e972
jmp 0x3f9b8
popq %rbx
retq
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x5, %rax
ja 0x3f78a
leaq 0xf233(%rip), %rcx      # 0x4e820
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x30, %edi
callq 0x3060
jmp 0x3f9bf
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
addq $-0x2, %rax
cmpq $0x13, %rax
ja 0x3f7d2
leaq 0xf227(%rip), %rcx      # 0x4e84c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xca8b(%rip), %rdi      # 0x4c0c0
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x6, %rax
jbe 0x3f756
addq $-0xfffa, %rax          # imm = 0xFFFF0006
cmpq $0x5, %rax
ja 0x3f7d2
leaq 0xf1a2(%rip), %rcx      # 0x4e808
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xdbf0(%rip), %rdi      # 0x4d266
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3f7e3
cmpq $0x1, %rax
jne 0x3f7d2
leaq 0xc963(%rip), %rdi      # 0x4c004
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
decq %rax
cmpq $0x4, %rax
ja 0x3f7d2
leaq 0xf113(%rip), %rcx      # 0x4e7d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xf2fb(%rip), %rdi      # 0x4e9d0
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x4, %rax
je 0x3f7ef
cmpq $0x3, %rax
je 0x3f73e
cmpq $0x2, %rax
jne 0x3f7d2
leaq 0xf288(%rip), %rdi      # 0x4e98e
jmp 0x3f9b8
xorl %eax, %eax
callq 0x96fd
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3f73e
cmpq $0x1, %rax
jne 0x3f7d2
leaq 0xb974(%rip), %rdi      # 0x4b0a1
jmp 0x3f9b8
leaq 0x6f84(%rip), %rdi      # 0x466bd
jmp 0x3f9b8
leaq 0xb955(%rip), %rdi      # 0x4b09a
jmp 0x3f9b8
leaq 0x6d05(%rip), %rdi      # 0x46456
jmp 0x3f9b8
leaq 0xf08f(%rip), %rcx      # 0x4e7ec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xdb48(%rip), %rdi      # 0x4d2b5
jmp 0x3f9b8
leaq 0xefe5(%rip), %rdi      # 0x4e75e
jmp 0x3f9b8
leaq 0xefe4(%rip), %rdi      # 0x4e769
jmp 0x3f9b8
addq $-0xfffb, %rax          # imm = 0xFFFF0005
cmpq $0x4, %rax
ja 0x3f7d2
leaq 0xf09b(%rip), %rcx      # 0x4e838
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xf20b(%rip), %rdi      # 0x4e9b8
jmp 0x3f9b8
cmpq $0x100, %rax            # imm = 0x100
je 0x3f85b
cmpq $0x1000, %rax           # imm = 0x1000
jne 0x3f7d2
leaq 0xf1b6(%rip), %rdi      # 0x4e983
jmp 0x3f9b8
leaq 0x9690(%rip), %rdi      # 0x48e69
callq 0x5c26
jmp 0x3f9bf
leaq 0xd5ae(%rip), %rdi      # 0x4cd98
jmp 0x3f9b8
leaq 0xf19f(%rip), %rdi      # 0x4e995
jmp 0x3f9b8
leaq 0xe780(%rip), %rdi      # 0x4df82
jmp 0x3f9b8
leaq 0xc67e(%rip), %rdi      # 0x4be8c
jmp 0x3f9b8
leaq 0xe741(%rip), %rdi      # 0x4df5b
jmp 0x3f9b8
leaq 0xf144(%rip), %rdi      # 0x4e96a
jmp 0x3f9b8
leaq 0xd759(%rip), %rdi      # 0x4cf8b
jmp 0x3f9b8
leaq 0xf197(%rip), %rdi      # 0x4e9d5
jmp 0x3f9b8
leaq 0xf190(%rip), %rdi      # 0x4e9da
jmp 0x3f9b8
leaq 0x6b2a(%rip), %rdi      # 0x46380
jmp 0x3f9b8
leaq 0xf117(%rip), %rdi      # 0x4e979
jmp 0x3f9b8
leaq 0xf15c(%rip), %rdi      # 0x4e9ca
jmp 0x3f9b8
leaq 0xbf68(%rip), %rdi      # 0x4b7e2
jmp 0x3f9b8
leaq 0xf13e(%rip), %rdi      # 0x4e9c4
jmp 0x3f9b8
leaq 0xf12c(%rip), %rdi      # 0x4e9be
jmp 0x3f9b8
leaq 0xf129(%rip), %rdi      # 0x4e9c7
jmp 0x3f9b8
leaq 0xbf3b(%rip), %rdi      # 0x4b7e5
jmp 0x3f9b8
leaq 0xf10b(%rip), %rdi      # 0x4e9c1
jmp 0x3f9b8
leaq 0xf0f9(%rip), %rdi      # 0x4e9bb
jmp 0x3f9b8
leaq 0xf0ff(%rip), %rdi      # 0x4e9cd
jmp 0x3f9b8
leaq 0xd9b3(%rip), %rdi      # 0x4d28d
jmp 0x3f9b8
leaq 0xd9e3(%rip), %rdi      # 0x4d2c9
jmp 0x3f9b8
leaq 0xd98c(%rip), %rdi      # 0x4d27e
jmp 0x3f9b8
leaq 0xd9bc(%rip), %rdi      # 0x4d2ba
jmp 0x3f9b8
leaq 0xd97d(%rip), %rdi      # 0x4d287
jmp 0x3f9b8
leaq 0xd9ad(%rip), %rdi      # 0x4d2c3
jmp 0x3f9b8
leaq 0xd94a(%rip), %rdi      # 0x4d26c
jmp 0x3f9b8
leaq 0xd97a(%rip), %rdi      # 0x4d2a8
jmp 0x3f9b8
leaq 0xd965(%rip), %rdi      # 0x4d29f
jmp 0x3f9b8
leaq 0xd998(%rip), %rdi      # 0x4d2db
jmp 0x3f9b8
leaq 0xd998(%rip), %rdi      # 0x4d2e4
jmp 0x3f9b8
leaq 0xf055(%rip), %rdi      # 0x4e9aa
jmp 0x3f9b8
leaq 0xb7e7(%rip), %rdi      # 0x4b145
jmp 0x3f9b8
leaq 0xc753(%rip), %rdi      # 0x4c0ba
jmp 0x3f9b8
leaq 0xb7fd(%rip), %rdi      # 0x4b16d
jmp 0x3f9b8
leaq 0x6b10(%rip), %rdi      # 0x46489
jmp 0x3f9b8
leaq 0xf022(%rip), %rdi      # 0x4e9a4
jmp 0x3f9b8
leaq 0xba59(%rip), %rdi      # 0x4b3e4
jmp 0x3f9b8
leaq 0xf01c(%rip), %rdi      # 0x4e9b0
jmp 0x3f9b8
leaq 0x6ac0(%rip), %rdi      # 0x4645d
jmp 0x3f9b8
leaq 0x6ac9(%rip), %rdi      # 0x4646f
jmp 0x3f9b8
leaq 0xefed(%rip), %rdi      # 0x4e99c
jmp 0x3f9b8
leaq 0x6d5f(%rip), %rdi      # 0x46717
xorl %eax, %eax
callq 0x3120
xorl %eax, %eax
popq %rbx
jmp 0x971e