// File: /workspace/github_c_makefile_star2_O3/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
movl %edi, %ebx
decl %esi
cmpl $0x14, %esi
ja 0x1c5ff
leaq 0x2b574(%rip), %rax     # 0x47aa4
movslq (%rax,%rsi,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movzwl %bx, %edi
movl %edx, %esi
callq 0x3ef5f
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x2eac7
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x2f5df
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x323fe
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x35dd8
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x3db27
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x310dc
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x3fbe9
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x390ef
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x34f3d
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x3ffc5
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x4051b
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x402d3
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x2da4f
jmp 0x1c5f7
movzwl %bx, %edi
movl %edx, %esi
callq 0x3d0dc
movq %rax, %r14
testq %rax, %rax
jne 0x1c656
xorps %xmm0, %xmm0
movaps %xmm0, 0x41057(%rip)    # 0x5d660
leaq 0x41050(%rip), %r14     # 0x5d660
movzwl %bx, %ebx
leaq 0x2b4de(%rip), %rdx     # 0x47af8
movl $0xb, %esi
movq %r14, %rdi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x3130
cmpl $0xc, %eax
jl 0x1c656
leaq 0x2565c(%rip), %rdi     # 0x41c93
movl %ebx, %esi
xorl %eax, %eax
callq 0x3120
movq 0x3b981(%rip), %rax     # 0x57fc8
movq (%rax), %rdi
callq 0x17ef7
leaq 0x2b4ac(%rip), %r14     # 0x47b02
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nopl (%rax)