LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_casio.c
// Function: print_casio_makervalue
void
print_casio_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                    char *prefix)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 2:
                print_casio1_makervalue(entry_ptr,make,model,prefix);
                casio2_interpret_value(entry_ptr);
                break;
            case 1:
                print_casio1_makervalue(entry_ptr,make,model,prefix);
                casio1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x47807
leaq 0x2f9eb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x47807
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
subl $0x1, %eax
je 0x477d7
jmp 0x477af
movl -0x20(%rbp), %eax
subl $0x2, %eax
jne 0x477f5
jmp 0x477b9
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x47810
movq -0x8(%rbp), %rdi
callq 0x47860
jmp 0x47805
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x47810
movq -0x8(%rbp), %rdi
callq 0x48270
jmp 0x47805
movq -0x8(%rbp), %rdi
leaq 0x22b1a(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x47807
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_casio.c
// Function: maker_casio_tagname
char *
maker_casio_tagname(unsigned short tag,int model)
{
    char *tagname = (char *)0;
    int noteversion = 0;

    if((noteversion = getnoteversion()) == 0)
    {
        noteversion = set_casio_noteversion();
        setnoteversion(noteversion);
    }

    /* Check noteversions first                                       */
    switch(noteversion)
    {
        case 1:
            tagname = maker_casio1_tagname(tag,model);
            break;
        case 2:
            tagname = maker_casio2_tagname(tag,model);
            break;
        default:
            break;
    }

    /* If no version-specific tag is found, check "generic" tags      */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x49490
callq 0x476b0
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x28080
movl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
subl $0x1, %eax
je 0x494a7
jmp 0x4949d
movl -0x18(%rbp), %eax
subl $0x2, %eax
je 0x494bc
jmp 0x494d1
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x49510
movq %rax, -0x10(%rbp)
jmp 0x494d3
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x49610
movq %rax, -0x10(%rbp)
jmp 0x494d3
jmp 0x494d3
cmpq $0x0, -0x10(%rbp)
jne 0x494f7
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x494f3
jmp 0x494e6
leaq 0x1c5dd(%rip), %rax     # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x494f5
jmp 0x494f5
jmp 0x494f7
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_casio.c
// Function: maker_casio1_tagname
char *
maker_casio1_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;

    switch(tag)
    {
        case 0x0001: tagname = "RecordingMode"; break;
        case 0x0002: tagname = "Quality"; break;
        case 0x0003: tagname = "FocusingMode"; break;
        case 0x0004: tagname = "FlashMode"; break;
        case 0x0005: tagname = "FlashIntensity"; break;
        case 0x0006: tagname = "ObjectDistance"; break;
        case 0x0007: tagname = "WhiteBalance"; break;
        case 0x000a: tagname = "DigitalZoom"; break;
        case 0x000b: tagname = "Sharpness"; break;
        case 0x000c: tagname = "Contrast"; break;
        case 0x000d: tagname = "Saturation"; break;
        case 0x0014: tagname = "CCDSensitivity"; break;
        default: break;
    }
    setnotetagset(1);
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movzwl -0x2(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x13, %eax
ja 0x495f5
movq -0x18(%rbp), %rax
leaq 0x24626(%rip), %rcx     # 0x6db70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x246f1(%rip), %rax     # 0x6dc4b
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x24c29(%rip), %rax     # 0x6e193
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x246df(%rip), %rax     # 0x6dc59
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x23bb7(%rip), %rax     # 0x6d13e
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x246d2(%rip), %rax     # 0x6dc66
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x246d4(%rip), %rax     # 0x6dc75
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x1c445(%rip), %rax     # 0x659f3
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x232eb(%rip), %rax     # 0x6c8a6
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x1c6c5(%rip), %rax     # 0x65c8d
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x1c46f(%rip), %rax     # 0x65a44
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x23dd3(%rip), %rax     # 0x6d3b5
movq %rax, -0x10(%rbp)
jmp 0x495f7
leaq 0x22808(%rip), %rax     # 0x6bdf7
movq %rax, -0x10(%rbp)
jmp 0x495f7
jmp 0x495f7
movl $0x1, %edi
callq 0x28100
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_casio.c
// Function: maker_casio_value_is_offset
int
maker_casio_value_is_offset(struct ifd_entry *entry_ptr,int model)
{
    int is_offset = 0;
    int noteversion = 0;

    if(entry_ptr)
    {
        noteversion = getnoteversion();
        switch(noteversion)
        {
            case 2:
                switch(entry_ptr->tag)
                {
                    case 0x0004: is_offset = 1; break;
                    default: break;
                }
                break;
            default:
                break;
        }
    }
    return(is_offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x499d8
xorl %eax, %eax
callq 0x280d0
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
subl $0x2, %eax
jne 0x499d4
jmp 0x499b8
movq -0x8(%rbp), %rax
movw (%rax), %ax
subw $0x4, %ax
jne 0x499d0
jmp 0x499c7
movl $0x1, -0x10(%rbp)
jmp 0x499d2
jmp 0x499d2
jmp 0x499d6
jmp 0x499d6
jmp 0x499d8
movl -0x10(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_minolta.c
// Function: print_minolta_makervalue
void
print_minolta_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                                                            char *prefix)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 1:
                print_minolta1_makervalue(entry_ptr,make,model,prefix);
                minolta1_interpret_value(entry_ptr,model);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x49b0f
leaq 0x2d6bb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x49b0f
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x49afd
jmp 0x49adc
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x49b20
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x49bc0
jmp 0x49b0d
movq -0x8(%rbp), %rdi
leaq 0x20812(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x49b0f
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_minolta.c
// Function: print_minolta1_makervalue
void
print_minolta1_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                                                            char *prefix)
{
    int chpr = 0;
    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag) 
        {
                case 0x0040:    /* ImageByteSize                      */
                    chpr += printf("%lu ",entry_ptr->value);
                    if(entry_ptr->count > 1)
                    {
                        printred("# BAD COUNT");
                        setcharsprinted(chpr);
                    }
                    break;
                default:
                    print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x49bb6
leaq 0x2d635(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x49bb6
movq -0x8(%rbp), %rax
movw (%rax), %ax
subw $0x40, %ax
jne 0x49ba4
jmp 0x49b67
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x212be(%rip), %rdi     # 0x6ae34
movb $0x0, %al
callq 0x3110
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x1, 0x8(%rax)
jbe 0x49ba2
leaq 0x2458b(%rip), %rdi     # 0x6e120
callq 0x6860
movl -0x1c(%rbp), %edi
callq 0x1ff00
jmp 0x49bb4
movq -0x8(%rbp), %rdi
leaq 0x2076b(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x49bb6
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_minolta.c
// Function: print_minolta_offset_makervalue
void
print_minolta_offset_makervalue(FILE *inptr,unsigned short byteorder,
    struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
    struct image_summary *summary_entry,char *parent_name,char*prefix,
    int indent,int make,int model,int at_offset)
{
    int noteversion = 0;


    if(entry_ptr)
    {
        noteversion = getnoteversion();
        switch(noteversion)
        {
            case 1:
                minolta1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                minolta1_interpret_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base);
                break;
            default:
                print_generic_offset_makervalue(inptr,byteorder,entry_ptr,
                                        fileoffset_base,parent_name,prefix,indent,
                                        make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %rsp
movw %si, %ax
movl 0x30(%rbp), %esi
movl 0x28(%rbp), %esi
movl 0x20(%rbp), %esi
movl 0x18(%rbp), %esi
movq 0x10(%rbp), %rsi
movq %rdi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x4a1af
xorl %eax, %eax
callq 0x280d0
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0x4a16e
jmp 0x4a10c
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq 0x10(%rbp), %r14
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x4a1c0
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %ax
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movzwl %ax, %esi
callq 0x4aa90
jmp 0x4a1ad
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
movq 0x10(%rbp), %r9
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x23f60
jmp 0x4a1af
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_minolta.c
// Function: maker_minolta_tagname
char *
maker_minolta_tagname(unsigned short tag,int model)
{
    char *tagname = (char *)0;
    int noteversion = 0;

    /* Should have to do this only once, and only for unrecognized    */
    /* models. If the model is recognized (or the user has forced a   */
    /* noteversion) noteversion will already be set.                  */
    if((noteversion = getnoteversion()) == 0)
    {
        noteversion = 1;
        setnoteversion(1);
    }

    switch(noteversion)
    {
        case 1:
            tagname = maker_minolta1_tagname(tag,model);
            break;
        default:
            break;
    }

    /* If no model-specific tag is found, check "generic" tags        */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x4e291
movl $0x1, -0x14(%rbp)
movl $0x1, %edi
callq 0x28080
movl -0x14(%rbp), %eax
subl $0x1, %eax
jne 0x4e2b0
jmp 0x4e29b
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x4e2e0
movq %rax, -0x10(%rbp)
jmp 0x4e2b2
jmp 0x4e2b2
cmpq $0x0, -0x10(%rbp)
jne 0x4e2d6
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x4e2d2
jmp 0x4e2c5
leaq 0x177fe(%rip), %rax     # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x4e2d4
jmp 0x4e2d4
jmp 0x4e2d6
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_minolta.c
// Function: maker_minolta_value_is_offset
int
maker_minolta_value_is_offset(struct ifd_entry *entry_ptr,int model)
{
    int is_offset = 0;

    if(entry_ptr)
    {
        switch(entry_ptr->tag)
        {
            case 0x0040: is_offset = -1; break; /* cancel */
            case 0x0088: is_offset = 1; break;
            case 0x0089: is_offset = -1; break;
            default: break;
        }
    }
    return(is_offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x4e7f1
movq -0x8(%rbp), %rax
movzwl (%rax), %eax
movl %eax, -0x14(%rbp)
subl $0x40, %eax
je 0x4e7d2
jmp 0x4e7ba
movl -0x14(%rbp), %eax
subl $0x88, %eax
je 0x4e7db
jmp 0x4e7c6
movl -0x14(%rbp), %eax
subl $0x89, %eax
je 0x4e7e4
jmp 0x4e7ed
movl $0xffffffff, -0x10(%rbp) # imm = 0xFFFFFFFF
jmp 0x4e7ef
movl $0x1, -0x10(%rbp)
jmp 0x4e7ef
movl $0xffffffff, -0x10(%rbp) # imm = 0xFFFFFFFF
jmp 0x4e7ef
jmp 0x4e7ef
jmp 0x4e7f1
movl -0x10(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_sanyo.c
// Function: sanyo_model_number
int
sanyo_model_number(char *model,char *software)
{
    struct camera_id *model_id;
    int number = NO_MODEL;

    for(model_id = &sanyo_model_id[0]; model_id && model_id->name; ++model_id)
    {
        if(strncasecmp(model,model_id->name,model_id->namelen) == 0)
        {
            number = model_id->id;
            setnoteversion(model_id->noteversion);
            setnotetagset(model_id->notetagset);    /* info only      */
            break;
        }
    }

    return(number);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x1c(%rbp)
leaq 0x297e2(%rip), %rax     # 0x78000
movq %rax, -0x18(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x18(%rbp)
movb %al, -0x1d(%rbp)
je 0x4e83c
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
setne %al
movb %al, -0x1d(%rbp)
movb -0x1d(%rbp), %al
testb $0x1, %al
jne 0x4e845
jmp 0x4e896
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq (%rax), %rsi
movq -0x18(%rbp), %rax
movslq 0x8(%rax), %rdx
callq 0x31e0
cmpl $0x0, %eax
jne 0x4e886
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movl 0x10(%rax), %edi
callq 0x28080
movq -0x18(%rbp), %rax
movl 0x14(%rax), %edi
callq 0x28100
jmp 0x4e896
jmp 0x4e888
movq -0x18(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x18(%rbp)
jmp 0x4e822
movl -0x1c(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_sanyo.c
// Function: print_sanyo_makervalue
void
print_sanyo_makervalue(struct ifd_entry *entry_ptr,int make,int model,
                    char *prefix)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 1:
                print_sanyo1_makervalue(entry_ptr,make,model,prefix);
                sanyo1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x4e91c
leaq 0x288ab(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x4e91c
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x4e90a
jmp 0x4e8ec
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x4e930
movq -0x8(%rbp), %rdi
callq 0x4e980
jmp 0x4e91a
movq -0x8(%rbp), %rdi
leaq 0x1ba05(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x4e91c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_sanyo.c
// Function: maker_sanyo_tagname
char *
maker_sanyo_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;
    int noteversion = 0;

    if(((noteversion = getnoteversion()) == 0))
    {
        /* Need more model samples before it is safe to assume a      */
        /* default                                                    */
        noteversion = 1;
        setnoteversion(1);
    }

    switch(noteversion)
    {
        case 1:
            tagname = maker_sanyo1_tagname(tag,model);
            break;
        default:
            break;
    }

    /* If no model-specific tag is found, check "generic" tags        */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x4fd51
movl $0x1, -0x14(%rbp)
movl $0x1, %edi
callq 0x28080
movl -0x14(%rbp), %eax
subl $0x1, %eax
jne 0x4fd70
jmp 0x4fd5b
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x4fda0
movq %rax, -0x10(%rbp)
jmp 0x4fd72
jmp 0x4fd72
cmpq $0x0, -0x10(%rbp)
jne 0x4fd96
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x4fd92
jmp 0x4fd85
leaq 0x15d3e(%rip), %rax     # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x4fd94
jmp 0x4fd94
jmp 0x4fd96
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: print_canon_makervalue
void
print_canon_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                    char *prefix)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                print_canon1_makervalue(entry_ptr,make,model,prefix);
                canon1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x5021e
leaq 0x26fab(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x5021e
movl -0x1c(%rbp), %eax
decl %eax
subl $0x4, %eax
ja 0x5020c
jmp 0x501ee
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x50230
movq -0x8(%rbp), %rdi
callq 0x502b0
jmp 0x5021c
movq -0x8(%rbp), %rdi
leaq 0x1a103(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x5021e
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: print_canon1_makervalue
void
print_canon1_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                                                            char *prefix)
{
    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag) 
        {
            case 0x000C:    /* Camera serial number                   */
                print_value(entry_ptr,PREFIX);
                /* ###%%%                                             */
                /* perhaps this should be in canon1_interpret_value() */
                (void)print_canon_serialno(entry_ptr->value);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x502a1
leaq 0x26f2c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x502a1
movq -0x8(%rbp), %rax
movw (%rax), %ax
subw $0xc, %ax
jne 0x5028f
jmp 0x50270
movq -0x8(%rbp), %rdi
leaq 0x1a09f(%rip), %rsi     # 0x6a31a
callq 0x71d0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x502c0
jmp 0x5029f
movq -0x8(%rbp), %rdi
leaq 0x1a080(%rip), %rsi     # 0x6a31a
callq 0x71d0
jmp 0x502a1
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: print_canon_serialno
int
print_canon_serialno(unsigned long value)
{
    unsigned long tmp;
    int chpr = 0;

    print_startvalue();
    tmp = (value & 0xffff0000) >> 16;
    chpr += printf("%04lX",value & 0xffff);
    tmp = value & 0xffff;
    chpr += printf("%05lu",value & 0xffff);
    print_endvalue();
    setcharsprinted(chpr);
    return(chpr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0xb9a0
movabsq $0xffff0000, %rax       # imm = 0xFFFF0000
andq -0x8(%rbp), %rax
shrq $0x10, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rsi
andq $0xffff, %rsi           # imm = 0xFFFF
leaq 0x1f15a(%rip), %rdi     # 0x6f45c
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
andq $0xffff, %rax           # imm = 0xFFFF
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rsi
andq $0xffff, %rsi           # imm = 0xFFFF
leaq 0x1f133(%rip), %rdi     # 0x6f462
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movb $0x0, %al
callq 0xb9d0
movl -0x14(%rbp), %edi
callq 0x1ff00
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: print_canon_offset_makervalue
void
print_canon_offset_makervalue(FILE *inptr,unsigned short byteorder,
                    struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
                    struct image_summary *summary_entry,char *parent_name,
                    char *prefix,int indent,int make,int model,
                    int at_offset)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr)
    {
        switch(noteversion)
        {
            /* noteversion 1 assumes the single known tagset is       */
            /* correct, but imposes a "generic" routine for           */
            /* CustomFunctions (which presents values but interprets  */
            /* nothing) for unrecognized models or those for which no */
            /* information is available.                              */
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                canon1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            default:
                print_generic_offset_makervalue(inptr,byteorder,entry_ptr,fileoffset_base,
                                                parent_name,prefix,indent,
                                                make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %rsp
movw %si, %ax
movl 0x30(%rbp), %esi
movl 0x28(%rbp), %esi
movl 0x20(%rbp), %esi
movl 0x18(%rbp), %esi
movq 0x10(%rbp), %rsi
movq %rdi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x44(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x50449
movl -0x44(%rbp), %eax
decl %eax
subl $0x4, %eax
ja 0x50408
jmp 0x503be
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq 0x10(%rbp), %r14
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x50460
jmp 0x50447
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
movq 0x10(%rbp), %r9
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x23f60
jmp 0x50449
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: canon_customfunctions
unsigned long
canon_customfunctions(FILE *inptr,unsigned short byteorder,
    char *tagprefix,unsigned long offset,
    unsigned long dirlength,int model,int indent)
{
    unsigned long max_offset;
    int noteversion = 0;

    noteversion = getnoteversion();

    switch(noteversion)
    {
    case 5:  /* 20 entries (or 21,22) */
        max_offset = canon_customfunctions1D(inptr,byteorder,tagprefix,offset,dirlength,indent);
        break;
    case 4:  /* 18 entries                                            */
        max_offset = canon_customfunctions20D(inptr,byteorder,tagprefix,offset,dirlength,indent);
        break;
    case 3:  /* 17 entries starting at 1*/
        max_offset = canon_customfunctions10D(inptr,byteorder,tagprefix,offset,dirlength,indent);
        break;
    case 2:  /* 16 entries                                            */
        max_offset = canon_customfunctionsD30(inptr,byteorder,tagprefix,offset,dirlength,indent);
        break;
    case 1:  /* unknown customfuctions                                */
    default:
        max_offset = canon_customfunctions_unk(inptr,byteorder,tagprefix,offset,dirlength,indent);
        break;
    }
    return(max_offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movw %si, %ax
movl 0x10(%rbp), %esi
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movl %r9d, -0x2c(%rbp)
movl $0x0, -0x3c(%rbp)
xorl %eax, %eax
callq 0x280d0
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x48(%rbp)
subl $0x4, %eax
ja 0x5475c
movq -0x48(%rbp), %rax
leaq 0x1a642(%rip), %rcx     # 0x6ecf8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movl 0x10(%rbp), %r9d
movzwl %ax, %esi
callq 0x55a20
movq %rax, -0x38(%rbp)
jmp 0x54780
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movl 0x10(%rbp), %r9d
movzwl %ax, %esi
callq 0x570a0
movq %rax, -0x38(%rbp)
jmp 0x54780
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movl 0x10(%rbp), %r9d
movzwl %ax, %esi
callq 0x58340
movq %rax, -0x38(%rbp)
jmp 0x54780
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movl 0x10(%rbp), %r9d
movzwl %ax, %esi
callq 0x59650
movq %rax, -0x38(%rbp)
jmp 0x54780
jmp 0x5475c
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movl 0x10(%rbp), %r9d
movzwl %ax, %esi
callq 0x5a610
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: maker_canon_tagname
char *
maker_canon_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;
    int noteversion = 0;

    /* Should have to do this only once, and only for unrecognized    */
    /* models. If the model is recognized (or the user has forced a   */
    /* noteversion) noteversion will already be set.                  */
    if(((noteversion = getnoteversion()) == 0))
    {
        /* Assume the tagset is correct, but use the generic          */
        /* CustomFunctions routine if required (some models don't     */
        /* have custom functions)                                     */
        noteversion = 1;
        setnoteversion(1);
    }

    switch(noteversion)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            tagname = maker_canon1_tagname(tag,model);
            break;
        default:
            /* This essentially turns off tagname interpretation; it  */
            /* should happen only if the user has deliberately set a  */
            /* non-existent version (e.g. -1)                         */
            break;
    }

    /* If no model-specific tag is found, check "generic" tags        */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x557e1
movl $0x1, -0x14(%rbp)
movl $0x1, %edi
callq 0x28080
movl -0x14(%rbp), %eax
decl %eax
subl $0x4, %eax
ja 0x55802
jmp 0x557ed
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x55840
movq %rax, -0x10(%rbp)
jmp 0x55804
jmp 0x55804
cmpq $0x0, -0x10(%rbp)
jne 0x55828
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x55824
jmp 0x55817
leaq 0x102ac(%rip), %rax     # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x55826
jmp 0x55826
jmp 0x55828
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_canon.c
// Function: maker_canon_value_is_offset
int
maker_canon_value_is_offset(struct ifd_entry *entry_ptr,int model)
{
    int is_offset = 0;
    int noteversion = 0;

    if(entry_ptr)
    {
        noteversion = getnoteversion();
        switch(noteversion)
        {
            default:
                switch(entry_ptr->tag)
                {
                    case 0x0081: is_offset = 1; break;
                    default: break;
                }
                break;
        }
    }
    return(is_offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x5bacc
xorl %eax, %eax
callq 0x280d0
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
movw (%rax), %ax
subw $0x81, %ax
jne 0x5bac6
jmp 0x5babd
movl $0x1, -0x10(%rbp)
jmp 0x5bac8
jmp 0x5bac8
jmp 0x5baca
jmp 0x5bacc
movl -0x10(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_leica.c
// Function: print_leica_makervalue
void
print_leica_makervalue(struct ifd_entry *entry_ptr,int make,int model,
                    char *prefix)
{
    int noteversion = 0;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 1:
                print_leica1_makervalue(entry_ptr,make,model,PREFIX);
                leica1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x5bbff
leaq 0x1b5cb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x5bbff
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x5bbed
jmp 0x5bbcc
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
leaq 0xe73d(%rip), %rcx      # 0x6a31a
callq 0x5bc10
movq -0x8(%rbp), %rdi
callq 0x5bc60
jmp 0x5bbfd
movq -0x8(%rbp), %rdi
leaq 0xe722(%rip), %rsi      # 0x6a31a
callq 0x71d0
jmp 0x5bbff
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_leica.c
// Function: print_leica_offset_makervalue
void
print_leica_offset_makervalue(FILE *inptr,unsigned short byteorder,
    struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
    struct image_summary *summary_entry,char *parent_name,char *prefix,
    int indent,int make,int model,int at_offset)
{
    int noteversion = 0;

    noteversion = getnoteversion();
    if(entry_ptr)
    {
        switch(noteversion)
        {
            case 1:
                leica1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            default:
                print_generic_offset_makervalue(inptr,byteorder,entry_ptr,
                                    fileoffset_base,parent_name,prefix,
                                    indent,make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %rsp
movw %si, %ax
movl 0x30(%rbp), %esi
movl 0x28(%rbp), %esi
movl 0x20(%rbp), %esi
movl 0x18(%rbp), %esi
movq 0x10(%rbp), %rsi
movq %rdi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x44(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5c6c7
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0x5c686
jmp 0x5c63c
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq 0x10(%rbp), %r14
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x5c6d0
jmp 0x5c6c5
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
movq 0x10(%rbp), %r9
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x23f60
jmp 0x5c6c7
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_leica.c
// Function: leica1_offset_makervalue
void
leica1_offset_makervalue(FILE *inptr,unsigned short byteorder,
    struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
    struct image_summary *summary_entry,char *parent_name,char *prefix,
    int indent,int make,int model,int at_offset)
{
    if(entry_ptr)
    {
        switch(entry_ptr->tag)
        {
            default:
                print_generic_offset_makervalue(inptr,byteorder,entry_ptr,
                                    fileoffset_base,parent_name,prefix,
                                    indent,make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x58, %rsp
movw %si, %ax
movl 0x30(%rbp), %esi
movl 0x28(%rbp), %esi
movl 0x20(%rbp), %esi
movl 0x18(%rbp), %esi
movq 0x10(%rbp), %rsi
movq %rdi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x5c74c
movq -0x10(%rbp), %rdi
movw -0x12(%rbp), %si
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x38(%rbp), %r8
movq 0x10(%rbp), %r9
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x23f60
jmp 0x5c74c
addq $0x58, %rsp
popq %rbx
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_leica.c
// Function: maker_leica_tagname
char *
maker_leica_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;
    int noteversion = 0;

    /* Should have to do this only once, and only for unrecognized    */
    /* models. If the model is recognized (or the user has forced a   */
    /* noteversion) noteversion will already be set.                  */
    if((noteversion = getnoteversion()) == 0)
    {
        /* Need more model samples before it is safe to assume a      */
        /* default                                                    */
        noteversion = 1;
        setnoteversion(1);
    }

    switch(noteversion)
    {
        case 1:
            tagname = maker_leica1_tagname(tag,model);
            break;
        default:
            break;
    }

    /* If no model-specific tag is found, check "generic" tags        */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x5c7a1
movl $0x1, -0x14(%rbp)
movl $0x1, %edi
callq 0x28080
movl -0x14(%rbp), %eax
subl $0x1, %eax
jne 0x5c7c0
jmp 0x5c7ab
movw -0x2(%rbp), %ax
movl -0x8(%rbp), %esi
movzwl %ax, %edi
callq 0x5c7f0
movq %rax, -0x10(%rbp)
jmp 0x5c7c2
jmp 0x5c7c2
cmpq $0x0, -0x10(%rbp)
jne 0x5c7e6
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x5c7e2
jmp 0x5c7d5
leaq 0x92ee(%rip), %rax      # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x5c7e4
jmp 0x5c7e4
jmp 0x5c7e6
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_agfa.c
// Function: print_agfa_makervalue
void
print_agfa_makervalue(struct ifd_entry *entry_ptr,int make, int model,
                    char *prefix)
{
    int noteversion;

    noteversion = getnoteversion();

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(noteversion)
        {
            case 1:
                print_agfa1_makervalue(entry_ptr,make,model,prefix);
                agfa1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x5cb25
leaq 0x1a6a2(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x5cb25
movl -0x1c(%rbp), %eax
subl $0x1, %eax
jne 0x5cb13
jmp 0x5caf5
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x5cb30
movq -0x8(%rbp), %rdi
callq 0x5cb80
jmp 0x5cb23
movq -0x8(%rbp), %rdi
leaq 0xd7fc(%rip), %rsi      # 0x6a31a
callq 0x71d0
jmp 0x5cb25
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_agfa.c
// Function: print_agfa_offset_makervalue
void
print_agfa_offset_makervalue(FILE *inptr,unsigned short byteorder,
    struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
    struct image_summary *summary_entry,char *parent_name,char*prefix,
    int indent,int make,int model,int at_offset)
{
    int noteversion;

    noteversion = getnoteversion();

    if(entry_ptr)
    {
        switch(noteversion)
        {
            case 1:
                agfa1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                agfa1_interpret_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base);
                break;
            default: 
                /* Insufficent information about other models to do   */
                /* anything but generic.                              */
                print_generic_offset_makervalue(inptr,byteorder,entry_ptr,
                                        fileoffset_base,parent_name,prefix,indent,
                                        make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %rsp
movw %si, %ax
movl 0x30(%rbp), %esi
movl 0x28(%rbp), %esi
movl 0x20(%rbp), %esi
movl 0x18(%rbp), %esi
movq 0x10(%rbp), %rsi
movq %rdi, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x44(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5ce28
movl -0x44(%rbp), %eax
subl $0x1, %eax
jne 0x5cde7
jmp 0x5cd85
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
movq 0x10(%rbp), %r14
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x5ce40
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %ax
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movzwl %ax, %esi
callq 0x5d440
jmp 0x5ce26
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
movq 0x10(%rbp), %r9
movl 0x18(%rbp), %ebx
movl 0x20(%rbp), %r11d
movl 0x28(%rbp), %r10d
movl 0x30(%rbp), %eax
movzwl %si, %esi
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
callq 0x23f60
jmp 0x5ce28
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_agfa.c
// Function: maker_agfa_tagname
char *
maker_agfa_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;
    int noteversion = 0;

    /* Should have to do this only once, and only for unrecognized    */
    /* models. If the model is recognized (or the user has forced a   */
    /* noteversion) noteversion will already be set.                  */
    if((noteversion = getnoteversion()) == 0)
    {
        noteversion = 1;
        setnoteversion(1);
    }

    switch(noteversion)
    {
        case 1:
            tagname = maker_agfa1_tagname(tag);
            break;
        default:
            setnotetagset(noteversion); /* for info only              */
            break;
    }

    /* If no model-specific tag is found, check "generic" tags        */
    if(tagname == NULL)
    {
        switch(tag)
        {
            case 0x0e00: tagname = "PrintIM"; break;
            default: break;
        }
    }
    return(tagname);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %di, %ax
movw %ax, -0x2(%rbp)
movl %esi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0x280d0
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jne 0x5d6a1
movl $0x1, -0x14(%rbp)
movl $0x1, %edi
callq 0x28080
movl -0x14(%rbp), %eax
subl $0x1, %eax
jne 0x5d6ba
jmp 0x5d6ab
movzwl -0x2(%rbp), %edi
callq 0x5d6f0
movq %rax, -0x10(%rbp)
jmp 0x5d6c2
movl -0x14(%rbp), %edi
callq 0x28100
cmpq $0x0, -0x10(%rbp)
jne 0x5d6e6
movw -0x2(%rbp), %ax
subw $0xe00, %ax             # imm = 0xE00
jne 0x5d6e2
jmp 0x5d6d5
leaq 0x83ee(%rip), %rax      # 0x65aca
movq %rax, -0x10(%rbp)
jmp 0x5d6e4
jmp 0x5d6e4
jmp 0x5d6e6
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq