// File: /workspace/github_c_makefile_star2_O3/hfiguiere[P]exifprobe/maker_minolta.c
// Function: maker_minolta1_tagname
char *
maker_minolta1_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;

    /* The Minolta MakerNote of TIFF format images have a JPEG        */
    /* thumbnail with a defective SOI marker (0x00f8). In fact,       */
    /* Minolta JPEG_SOI is often missing the high "0xff".             */

    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0000: tagname = "Version"; break;
            case 0x0001: tagname = "CameraSettings"; break;
            case 0x0003: tagname = "CameraSettings"; break;
            case 0x0040: tagname = "ImageByteSize"; break;
            case 0x0081: tagname = "JpegThumbnail"; break;
            case 0x0088: tagname = "JpegThumbnailOffset"; break;
            case 0x0089: tagname = "JpegThumbnailLength"; break;
            case 0x0101: tagname = "ColorMode"; break;
            case 0x0102: tagname = "ImageQuality"; break;
            case 0x0103: if(model == MINOLTA_DIMAGE7Hi)
                              tagname = "ImageQuality";
                         else
                              tagname = "ImageSize";
                         break;
            /* The following tagname appears valid for at least the   */
            /* F200, thanks to Harald Puhl (h.puhl@ki-ag.com)         */
            case 0x0104: tagname = "FlashCompensation"; break;
            case 0x0200: tagname = "SpecialMode"; break;

    /* The following tag names appear valid for the F100 and "X" but  */
    /* do not appear to be used for any other Minolta model. They are */
    /* essentially the Sanyo tag set, used here based upon guesswork; */
    /* some Minolta and Sanyo cameras are said to use the same chip,  */
    /* and some F100 and "X" images I've seen contain almost exactly  */
    /* this set of tags (as described by John Hawkins for Sanyo       */
    /* DSC-MZ2 notes). The Quality, Macro, SpecialMode and PrintIM    */
    /* tags are reasonably certain to be correct (they "decode"       */
    /* properly). The remaining names are less certain, and no        */
    /* attempt is made to decode them in minolta1_interpret_value()/  */

            case 0x0201: tagname = "Quality"; break;
            case 0x0202: tagname = "Macro"; break;
            case 0x0204: tagname = "DigiZoom"; break;
            case 0x0207: tagname = "SoftwareRelease"; break;
            case 0x0208: tagname = "PictInfo"; break;
            case 0x0209: tagname = "CameraID"; break;
            case 0x020e: tagname = "SeqShotMethod"; break;
            case 0x020f: tagname = "WideRange"; break;
            case 0x0210: tagname = "ColorAdjMode"; break;
            case 0x0213: tagname = "QuickShot"; break;
            case 0x0214: tagname = "SelfTimer"; break;
            case 0x0216: tagname = "VoiceMemo"; break;
            case 0x0217: tagname = "RecordShutterRel"; break;
            case 0x0218: tagname = "FlickerReduce"; break;
            case 0x0219: tagname = "OpticalZoom"; break;
            case 0x021b: tagname = "DigitalZoom"; break;
            case 0x021d: tagname = "LightSourceSpecial"; break;
            case 0x021e: tagname = "Resaved"; break;
            case 0x021f: tagname = "SceneSelect"; break;
            case 0x0223: tagname = "ManualFocusDist"; break; /* ###%%% not seen */
            case 0x0224: tagname = "SeqShotIntvl"; break; /* ###%%% not seen */
            case 0x0225: tagname = "FlashMode"; break; /* ###%%% not seen */
            case 0x0e00: tagname = "PrintIM"; break;
            case 0x0f00: tagname = "Data"; break;
            default: break;
        }
    }
    setnotetagset(1);
    return(tagname);
}

// Assembly:
pushq %rbx
xorl %ebx, %ebx
cmpl $0x1ff, %edi            # imm = 0x1FF
jle 0x34fc4
leal -0x200(%rdi), %eax
cmpl $0x25, %eax
ja 0x35037
leaq 0x16b75(%rip), %rcx     # 0x4bb24
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x15679(%rip), %rbx     # 0x4a638
jmp 0x351c0
cmpl $0x87, %edi
jg 0x34ff7
cmpl $0x2, %edi
jle 0x3501e
cmpl $0x3, %edi
je 0x3502b
cmpl $0x40, %edi
je 0x3507f
cmpl $0x81, %edi
jne 0x351c0
leaq 0xef73(%rip), %rbx      # 0x43f65
jmp 0x351c0
leal -0x101(%rdi), %eax
cmpl $0x3, %eax
ja 0x3505b
leaq 0x16b0b(%rip), %rcx     # 0x4bb14
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x14626(%rip), %rbx     # 0x4963f
jmp 0x351c0
testl %edi, %edi
je 0x3508b
cmpl $0x1, %edi
jne 0x351c0
leaq 0xee56(%rip), %rbx      # 0x43e88
jmp 0x351c0
cmpl $0xe00, %edi            # imm = 0xE00
je 0x35187
cmpl $0xf00, %edi            # imm = 0xF00
jne 0x351c0
leaq 0xf8ff(%rip), %rbx      # 0x44955
jmp 0x351c0
cmpl $0x88, %edi
je 0x351b9
cmpl $0x89, %edi
jne 0x351c0
leaq 0x16662(%rip), %rbx     # 0x4b6dc
jmp 0x351c0
leaq 0x16c0a(%rip), %rbx     # 0x4bc90
jmp 0x351c0
leaq 0xe268(%rip), %rbx      # 0x432fa
jmp 0x351c0
leaq 0x16c74(%rip), %rbx     # 0x4bd12
jmp 0x351c0
leaq 0x155aa(%rip), %rbx     # 0x4a654
jmp 0x351c0
leaq 0x16c7b(%rip), %rbx     # 0x4bd31
jmp 0x351c0
leaq 0x16c04(%rip), %rbx     # 0x4bcc6
jmp 0x351c0
leaq 0x16c30(%rip), %rbx     # 0x4bcfe
jmp 0x351c0
leaq 0x16c2e(%rip), %rbx     # 0x4bd08
jmp 0x351c0
leaq 0x16c3d(%rip), %rbx     # 0x4bd23
jmp 0x351c0
leaq 0x16beb(%rip), %rbx     # 0x4bcdd
jmp 0x351c0
leaq 0x16c66(%rip), %rbx     # 0x4bd64
jmp 0x351c0
leaq 0x16b99(%rip), %rbx     # 0x4bca3
jmp 0x351c0
leaq 0x16ba7(%rip), %rbx     # 0x4bcbd
jmp 0x351c0
leaq 0x1554c(%rip), %rbx     # 0x4a66e
jmp 0x351c0
leaq 0x115e9(%rip), %rbx     # 0x46717
jmp 0x351c0
leaq 0x16c03(%rip), %rbx     # 0x4bd3d
jmp 0x351c0
leaq 0x16c12(%rip), %rbx     # 0x4bd58
jmp 0x351c0
leaq 0x16b80(%rip), %rbx     # 0x4bccf
jmp 0x351c0
leaq 0x16b8f(%rip), %rbx     # 0x4bce7
jmp 0x351c0
leaq 0x16b93(%rip), %rbx     # 0x4bcf4
jmp 0x351c0
leaq 0x16be6(%rip), %rbx     # 0x4bd50
jmp 0x351c0
leaq 0x14fd7(%rip), %rbx     # 0x4a14a
jmp 0x351c0
leaq 0x15976(%rip), %rbx     # 0x4aaf2
jmp 0x351c0
leaq 0x16bef(%rip), %rbx     # 0x4bd74
jmp 0x351c0
leaq 0xe134(%rip), %rbx      # 0x432c2
jmp 0x351c0
cmpl $0x3, %esi
leaq 0x16b04(%rip), %rax     # 0x4bc9e
leaq 0x194ee(%rip), %rbx     # 0x4e68f
cmoveq %rax, %rbx
jmp 0x351c0
leaq 0x16afd(%rip), %rbx     # 0x4bcab
jmp 0x351c0
leaq 0x16ae7(%rip), %rbx     # 0x4bc9e
jmp 0x351c0
leaq 0x16530(%rip), %rbx     # 0x4b6f0
movl $0x1, %edi
callq 0x1c4f0
movq %rbx, %rax
popq %rbx
retq