// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_tagnames.c
// Function: maker_tagname
char *
maker_tagname(unsigned short tag,int make,int model)
{
    static char unknown_buf[16];
    char *tagname = NULL;

    switch(make)
    {
        case MAKER_AGFA:
            tagname = maker_agfa_tagname(tag,model);
            break;
        case MAKER_ASAHI:
        case MAKER_PENTAX:
            tagname = maker_asahi_tagname(tag,model);
            break;
        case MAKER_CANON:
            tagname = maker_canon_tagname(tag,model);
            break;
        case MAKER_CASIO:
            tagname = maker_casio_tagname(tag,model);
            break;
        case MAKER_EPSON:
            tagname = maker_epson_tagname(tag,model);
            break;
        case MAKER_FUJIFILM:
            tagname = maker_fujifilm_tagname(tag,model);
            break;
        case MAKER_KYOCERA:
            tagname = maker_kyocera_tagname(tag,model);
            break;
        case MAKER_LEICA:
            tagname = maker_leica_tagname(tag,model);
            break;
        case MAKER_MINOLTA:
            tagname = maker_minolta_tagname(tag,model);
            break;
        case MAKER_NIKON:
            tagname = maker_nikon_tagname(tag,model);
            break;
        case MAKER_OLYMPUS:
            tagname = maker_olympus_tagname(tag,model);
            break;
        case MAKER_PANASONIC:
            tagname = maker_panasonic_tagname(tag,model);
            break;
        case MAKER_SANYO:
            tagname = maker_sanyo_tagname(tag,model);
            break;
        case MAKER_SIGMA:
            tagname = maker_sigma_tagname(tag,model);
            break;
        case MAKER_TOSHIBA:
            tagname = maker_toshiba_tagname(tag,model);
            break;
        case MAKER_SONY:
        case MAKER_KODAK:
        case MAKER_KONICA:
        case MAKER_HP:
        case MAKER_RICOH:
        case MAKER_TRAVELER:
        default:
            break;
    }

    if(tagname == NULL)
    {
        memset(unknown_buf,'\0',16);
        /* "regular" tags use lower case; use upper case for          */
        /* MakerNote tags                                             */
        if(snprintf(unknown_buf,11,"TAG_%#06X",(int)tag) > 11)
        {
            printf(" bad tag %#x not converted\n",tag);
            why(stdout);
            tagname = "Maker_BADTAG";
        }
        else
            tagname = unknown_buf;
    }
    return(tagname);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
decl %esi
movzwl %di, %ebx
cmpl $0x14, %esi
ja 0x1b3ba
leaq 0x2a757(%rip), %rax     # 0x45a54
movslq (%rax,%rsi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl %ebx, %edi
movl %edx, %esi
callq 0x3cf1a
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x2d307
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x2ddf0
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x309d1
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3436d
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3bb54
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x2f721
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3db45
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x373d0
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x334f4
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3df14
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3e412
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3e1ee
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x2c355
jmp 0x1b3b2
movl %ebx, %edi
movl %edx, %esi
callq 0x3b154
movq %rax, %r14
testq %rax, %rax
jne 0x1b40c
xorps %xmm0, %xmm0
movaps %xmm0, 0x4129c(%rip)    # 0x5c660
leaq 0x41295(%rip), %r14     # 0x5c660
leaq 0x2a6d6(%rip), %rdx     # 0x45aa8
pushq $0xb
popq %rsi
movq %r14, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x3130
cmpl $0xc, %eax
jl 0x1b40c
leaq 0x248a6(%rip), %rdi     # 0x3fc93
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
movq 0x3bbcb(%rip), %rax     # 0x56fc8
movq (%rax), %rdi
callq 0x16e8c
leaq 0x2a6a6(%rip), %r14     # 0x45ab2
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop