LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus_private_2030_tagname
char *
olympus_private_2030_tagname(unsigned short tag)
{
    char *tagname = CNULL;

    switch(tag)
    {
        case 0x0000: tagname = "RawDevVersion"; break;
        case 0x0100: tagname = "RawDevExposureBiasValue"; break;
        case 0x0101: tagname = "RawDevWhiteBalanceValue"; break;
        case 0x0102: tagname = "RawDevWBFineAdjustment"; break;
        case 0x0103: tagname = "RawDevGrayPoint"; break;
        case 0x0104: tagname = "RawDevSaturationEmphasis"; break;
        case 0x0105: tagname = "RawDevMemoryColorEmphasis"; break;
        case 0x0106: tagname = "RawDevContrastValue"; break;
        case 0x0107: tagname = "RawDevSharpnessValue"; break;
        case 0x0108: tagname = "RawDevColorSpace"; break;
        case 0x0109: tagname = "RawDevEngine"; break;
        case 0x010a: tagname = "RawDevNoiseReduction"; break;
        case 0x010b: tagname = "RawDevEditStatus"; break;
        case 0x010c: tagname = "RawDevSettings"; break;
        default:
            break;
    }

    return(tagname);
}

// Assembly:
leal -0x100(%rdi), %eax
cmpl $0xc, %eax
ja 0x2e3ae
leaq 0x1a4fb(%rip), %rcx     # 0x48898
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1a9f9(%rip), %rax     # 0x48da6
retq
testl %edi, %edi
jne 0x2e41a
leaq 0x1a9df(%rip), %rax     # 0x48d98
retq
leaq 0x1aacb(%rip), %rax     # 0x48e8c
retq
leaq 0x1aa34(%rip), %rax     # 0x48dfd
retq
leaq 0x1aacc(%rip), %rax     # 0x48e9d
retq
leaq 0x1aa91(%rip), %rax     # 0x48e6a
retq
leaq 0x1a9f5(%rip), %rax     # 0x48dd6
retq
leaq 0x1aa04(%rip), %rax     # 0x48ded
retq
leaq 0x1aa53(%rip), %rax     # 0x48e44
retq
leaq 0x1a9c5(%rip), %rax     # 0x48dbe
retq
leaq 0x1aa15(%rip), %rax     # 0x48e16
retq
leaq 0x1aa27(%rip), %rax     # 0x48e30
retq
leaq 0x1aa66(%rip), %rax     # 0x48e77
retq
leaq 0x1aa40(%rip), %rax     # 0x48e59
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus_private_2040_tagname
char *
olympus_private_2040_tagname(unsigned short tag)
{
    char *tagname = CNULL;

    switch(tag)
    {
        case 0x0000: tagname = "ImageProcessingVersion"; break;
        case 0x0100: tagname = "RedBlueBias"; break;
        case 0x0200: tagname = "ColorMatrix"; break;
        case 0x0300: tagname = "SmoothingParameter1"; break;
        case 0x0310: tagname = "SmoothingParameter2"; break;
        case 0x0600: tagname = "SmoothingThresholds"; break;
        case 0x0610: tagname = "SmoothingThreshold2"; break;
        case 0x0611: tagname = "ValidBits"; break;
        case 0x0614: tagname = "ImageWidth2"; break;
        case 0x0615: tagname = "ImageHeight2"; break;
        case 0x1010: tagname = "NoiseFilter2"; break;
        case 0x1012: tagname = "ShadingCompensation2"; break;
        default:
            break;
    }

    return(tagname);
}

// Assembly:
xorl %eax, %eax
leal -0x610(%rdi), %ecx
cmpl $0x5, %ecx
jbe 0x2e472
cmpl $0x1012, %edi           # imm = 0x1012
je 0x2e4a2
cmpl $0x100, %edi            # imm = 0x100
je 0x2e4d2
cmpl $0x200, %edi            # imm = 0x200
je 0x2e4b2
cmpl $0x300, %edi            # imm = 0x300
je 0x2e4ca
cmpl $0x310, %edi            # imm = 0x310
je 0x2e4aa
cmpl $0x600, %edi            # imm = 0x600
je 0x2e4ba
cmpl $0x1010, %edi           # imm = 0x1010
je 0x2e4c2
testl %edi, %edi
jne 0x2e4a9
leaq 0x1aa3b(%rip), %rax     # 0x48eac
retq
leaq 0x1a453(%rip), %rdx     # 0x488cc
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x1aa82(%rip), %rax     # 0x48f0b
retq
leaq 0x1a665(%rip), %rax     # 0x48af6
retq
leaq 0x1aa92(%rip), %rax     # 0x48f2b
retq
leaq 0x1aa7e(%rip), %rax     # 0x48f1f
retq
leaq 0x1aa9c(%rip), %rax     # 0x48f45
retq
leaq 0x1aa32(%rip), %rax     # 0x48ee3
retq
leaq 0x1a61a(%rip), %rax     # 0x48ad3
retq
leaq 0x1aa36(%rip), %rax     # 0x48ef7
retq
leaq 0x1aa6f(%rip), %rax     # 0x48f38
retq
leaq 0x1a9fe(%rip), %rax     # 0x48ecf
retq
leaq 0x1a9ea(%rip), %rax     # 0x48ec3
retq
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus_private_2050_tagname
char *
olympus_private_2050_tagname(unsigned short tag)
{
    char *tagname = CNULL;

    switch(tag)
    {
        case 0x0000: tagname = "FocusInfoVersion"; break;
        case 0x0209: tagname = "AutoFocus?"; break; 
        case 0x0300: tagname = "ZoomPosition"; break;
        case 0x0305: tagname = "FocusDistance"; break; 
        case 0x1201: tagname = "ExternalFlash"; break;
        case 0x1208: tagname = "InternalFlash"; break;
        default:
            break;
    }

    return(tagname);
}

// Assembly:
cmpl $0x1208, %edi           # imm = 0x1208
je 0x2e531
cmpl $0x209, %edi            # imm = 0x209
je 0x2e529
cmpl $0x300, %edi            # imm = 0x300
je 0x2e50e
cmpl $0x305, %edi            # imm = 0x305
je 0x2e51e
cmpl $0x1201, %edi           # imm = 0x1201
je 0x2e516
testl %edi, %edi
jne 0x2e526
leaq 0x1aa4d(%rip), %rax     # 0x48f5a
retq
leaq 0x1aa61(%rip), %rax     # 0x48f76
retq
leaq 0x1aa66(%rip), %rax     # 0x48f83
retq
leaq 0x19cd5(%rip), %rax     # 0x481fa
retq
xorl %eax, %eax
retq
leaq 0x1aa3b(%rip), %rax     # 0x48f6b
retq
leaq 0x1aa59(%rip), %rax     # 0x48f91
retq
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus2010_interpret_value
void
olympus2010_interpret_value(struct ifd_entry *entry_ptr,char *prefix)
{
    int chpr = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag)
        {
            case 0x1000: 
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("None"); break;
                    case 2: chpr += printf("Simple E-System"); break;
                    case 3: chpr += printf("E-System"); break;
                    default: chpr += printf("unknown"); break;
                }
                print_endvalue();
                break;
            case 0x1001: 
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("FL-20"); break;
                    case 2: chpr += printf("FL-50"); break;
                    case 3: chpr += printf("RF-11"); break;
                    case 4: chpr += printf("TF-22"); break;
                    case 5: chpr += printf("FL-36"); break;
                    default: chpr += printf("unknown"); break;
                }
                print_endvalue();
                break;
            default:
                break;
        }
    }
    setcharsprinted(chpr);
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
xorl %ebp, %ebp
testq %rdi, %rdi
je 0x2e5da
leaq 0x28c14(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x2e5da
movq %rdi, %rbx
movzwl (%rdi), %eax
cmpl $0x1001, %eax           # imm = 0x1001
je 0x2e59f
cmpl $0x1000, %eax           # imm = 0x1000
jne 0x2e5da
xorl %eax, %eax
callq 0x8f81
movq 0x10(%rbx), %rax
cmpq $0x4, %rax
jae 0x2e5c3
leaq 0x285e3(%rip), %rcx     # 0x56b80
jmp 0x2e5ba
xorl %eax, %eax
callq 0x8f81
movq 0x10(%rbx), %rax
decq %rax
cmpq $0x5, %rax
jae 0x2e5c3
leaq 0x285e6(%rip), %rcx     # 0x56ba0
leaq (%rcx,%rax,8), %rax
movq (%rax), %rdi
jmp 0x2e5ca
leaq 0x1539a(%rip), %rdi     # 0x43964
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
xorl %eax, %eax
callq 0x8fa0
movl %ebp, %edi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x16a4f
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus_offset_pe_value
void
olympus_offset_pe_value(FILE *inptr,unsigned short byteorder,
                struct ifd_entry *entry_ptr,unsigned long fileoffset_base,
                unsigned short subifd_ident,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:
                olympus1_offset_pe_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,subifd_ident,
                                            summary_entry,parent_name,prefix,
                                            indent,make,model,at_offset);
                olympus1_interpret_offset_pe_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,subifd_ident);
                break;
            default:
                print_private_offset_value(inptr,byteorder,entry_ptr,
                                        fileoffset_base,subifd_ident,
                                        parent_name,prefix,indent,
                                        make,model,at_offset);
                break;
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %r9, 0x18(%rsp)
movl %r8d, %ebp
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %r13d
movq %rdi, %r12
movl 0x98(%rsp), %eax
movq %rax, 0x8(%rsp)
movl 0x90(%rsp), %eax
movq %rax, 0x10(%rsp)
movl 0x88(%rsp), %eax
movq %rax, 0x20(%rsp)
movl 0x80(%rsp), %eax
movq %rax, 0x28(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x70(%rsp), %r15
xorl %eax, %eax
callq 0x1b2a5
testq %r14, %r14
je 0x2ea3a
cmpl $0x1, %eax
jne 0x2ea40
movzwl %r13w, %esi
movzwl %bp, %r8d
movq %r12, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq 0x18(%rsp), %r9
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2ea80
addq $0x38, %rsp
jmp 0x2ea75
subq $0x8, %rsp
movzwl %r13w, %esi
movzwl %bp, %r8d
movq %r12, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq %r15, %r9
pushq 0x10(%rsp)
pushq 0x20(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
callq 0x9e7b
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus2010_offset_value
void
olympus2010_offset_value(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)
{
    unsigned long value_offset;
    unsigned long count;
    char *nameoftag;
    char *fulldirname = CNULL;
    int chpr = 0;

    if(entry_ptr)
    {
        nameoftag = maker_tagname(entry_ptr->tag,make,model); 
        if((PRINT_LONGNAMES))
        {
            fulldirname = splice(parent_name,".",nameoftag);
            nameoftag = fulldirname;
        }
        value_offset = fileoffset_base + entry_ptr->value;
        count = entry_ptr->count;
        switch(entry_ptr->tag)
        {
            case 0x0100:
            case 0x0101:
            case 0x0102:
            case 0x0202:
            case 0x0301:
            case 0x0302:
            case 0x1003:
            default:
                print_private_offset_value(inptr,byteorder,entry_ptr,
                                        fileoffset_base,0x2010,
                                        fulldirname,prefix,indent,
                                        make,model,at_offset);
                break;
        }
        if(fulldirname)
            free(fulldirname);
    }
    setcharsprinted(chpr);
}

// Assembly:
testq %rdx, %rdx
je 0x2ec42
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %rbx
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %r13
movq %rcx, 0x10(%rsp)
movl 0x80(%rsp), %eax
movq %rax, 0x8(%rsp)
movl 0x78(%rsp), %r12d
movl 0x70(%rsp), %r14d
movl 0x68(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x20(%rsp)
movzwl (%rdx), %edi
movl %r14d, %esi
movl %r12d, %edx
callq 0x1b2e4
leaq 0x285a6(%rip), %rcx     # 0x57180
testb $0x40, (%rcx)
jne 0x2ebe3
xorl %ebx, %ebx
jmp 0x2ebf8
leaq 0x10dad(%rip), %rsi     # 0x3f997
movq %rbx, %rdi
movq %rax, %rdx
callq 0x16f1d
movq %rax, %rbx
subq $0x8, %rsp
movzwl %bp, %esi
movq %r13, %rdi
movq %r15, %rdx
movq 0x18(%rsp), %rcx
movl $0x2010, %r8d           # imm = 0x2010
movq %rbx, %r9
pushq 0x10(%rsp)
pushq %r12
pushq %r14
pushq 0x38(%rsp)
pushq 0x48(%rsp)
callq 0x9e7b
addq $0x30, %rsp
movq %rbx, %rdi
callq 0x3050
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %edi, %edi
jmp 0x16a4f
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus2030_offset_value
void
olympus2030_offset_value(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)
{
    unsigned long value_offset;
    unsigned long count;
    char *nameoftag;
    char *fulldirname = CNULL;
    int chpr = 0;

    if(entry_ptr)
    {
        nameoftag = maker_tagname(entry_ptr->tag,make,model); 
        if((PRINT_LONGNAMES))
        {
            fulldirname = splice(parent_name,".",nameoftag);
            nameoftag = fulldirname;
        }
        value_offset = fileoffset_base + entry_ptr->value;
        count = entry_ptr->count;
        switch(entry_ptr->tag)
        {
            default:
                print_private_offset_value(inptr,byteorder,entry_ptr,
                                        fileoffset_base,0x2030,
                                        fulldirname,prefix,indent,
                                        make,model,at_offset);
                break;
        }
        if(fulldirname)
            free(fulldirname);
    }
    setcharsprinted(chpr);
}

// Assembly:
testq %rdx, %rdx
je 0x2f054
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %rbx
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %r13
movq %rcx, 0x10(%rsp)
movl 0x80(%rsp), %eax
movq %rax, 0x8(%rsp)
movl 0x78(%rsp), %r12d
movl 0x70(%rsp), %r14d
movl 0x68(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x20(%rsp)
movzwl (%rdx), %edi
movl %r14d, %esi
movl %r12d, %edx
callq 0x1b2e4
leaq 0x28194(%rip), %rcx     # 0x57180
testb $0x40, (%rcx)
jne 0x2eff5
xorl %ebx, %ebx
jmp 0x2f00a
leaq 0x1099b(%rip), %rsi     # 0x3f997
movq %rbx, %rdi
movq %rax, %rdx
callq 0x16f1d
movq %rax, %rbx
subq $0x8, %rsp
movzwl %bp, %esi
movq %r13, %rdi
movq %r15, %rdx
movq 0x18(%rsp), %rcx
movl $0x2030, %r8d           # imm = 0x2030
movq %rbx, %r9
pushq 0x10(%rsp)
pushq %r12
pushq %r14
pushq 0x38(%rsp)
pushq 0x48(%rsp)
callq 0x9e7b
addq $0x30, %rsp
movq %rbx, %rdi
callq 0x3050
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
xorl %edi, %edi
jmp 0x16a4f
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_fujifilm.c
// Function: fujifilm_model_number
int
fujifilm_model_number(char *model,char *software)
{
    struct camera_id *model_id;
    int number = NO_MODEL;

    for(model_id = &fujifilm_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 %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x283ba(%rip), %r14     # 0x57610
addq $0x14, %r14
movq -0x14(%r14), %rsi
testq %rsi, %rsi
je 0x2f279
movslq -0xc(%r14), %rdx
movq %rbx, %rdi
callq 0x31f0
testl %eax, %eax
je 0x2f27d
addq $0x18, %r14
jmp 0x2f25a
xorl %ebx, %ebx
jmp 0x2f292
movl -0x8(%r14), %ebx
movl -0x4(%r14), %edi
callq 0x1b28c
movl (%r14), %edi
callq 0x1b2bd
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_fujifilm.c
// Function: print_fujifilm_makervalue
void
print_fujifilm_makervalue(struct ifd_entry *entry_ptr,int make,int model,
                    char *prefix)
{
    int noteversion = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        noteversion = getnoteversion();
        switch(noteversion)
        {
            case 1:
                print_fujifilm1_makervalue(entry_ptr,make,model,prefix);
                fujifilm1_interpret_value(entry_ptr);
                break;
            default:
                print_value(entry_ptr,PREFIX);
                break;
        }
    }
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x2f2ce
leaq 0x27ed7(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x2f2ce
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
cmpl $0x1, %eax
jne 0x2f2d0
movq %rbx, %rdi
callq 0x2f2e0
movq %rbx, %rdi
popq %rbx
jmp 0x2f2fe
popq %rbx
retq
leaq 0x169af(%rip), %rsi     # 0x45c86
movq %rbx, %rdi
popq %rbx
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
testq %rbx, %rbx
je 0x2fa05
leaq 0x2779b(%rip), %rcx     # 0x57180
testb $0x30, (%rcx)
je 0x2fa05
cmpl $0x1, %eax
je 0x2fa07
cmpl $0x2, %eax
jne 0x2fa18
movq %rbx, %rdi
callq 0x2fa28
movq %rbx, %rdi
popq %rbx
jmp 0x2fa46
popq %rbx
retq
movq %rbx, %rdi
callq 0x2fa28
movq %rbx, %rdi
popq %rbx
jmp 0x2fd78
leaq 0x16267(%rip), %rsi     # 0x45c86
movq %rbx, %rdi
popq %rbx
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_casio.c
// Function: print_casio_offset_makervalue
void
print_casio_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:
                casio1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            case 2:
                casio2_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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %rbx
movq %r8, %r14
movq %rcx, %r15
movq %rdx, %r12
movl %esi, %ebp
movq %rdi, %r13
movl 0x80(%rsp), %eax
movq %rax, (%rsp)
movl 0x78(%rsp), %eax
movq %rax, 0x8(%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x18(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x20(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
callq 0x1b2a5
testq %r12, %r12
je 0x30125
cmpl $0x2, %eax
je 0x3012b
cmpl $0x1, %eax
jne 0x30150
subq $0x8, %rsp
movzwl %bp, %esi
movq %r13, %rdi
movq %r12, %rdx
movq %r15, %rcx
movq %rbx, %r9
pushq 0x8(%rsp)
pushq 0x18(%rsp)
pushq 0x30(%rsp)
pushq 0x40(%rsp)
pushq 0x38(%rsp)
callq 0x30187
addq $0x58, %rsp
jmp 0x3017c
addq $0x28, %rsp
jmp 0x3017c
movzwl %bp, %esi
movq %r13, %rdi
movq %r12, %rdx
movq %r15, %rcx
movq %r14, %r8
movq %rbx, %r9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3048a
movzwl %bp, %esi
movq %r13, %rdi
movq %r12, %rdx
movq %r15, %rcx
movq %rbx, %r8
movq 0x10(%rsp), %r9
pushq (%rsp)
pushq 0x10(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
callq 0x185a8
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %rbx
pushq %rax
movl %edx, %ebp
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
testq %rbx, %rbx
je 0x30cad
leaq 0x264f5(%rip), %rcx     # 0x57180
testb $0x30, (%rcx)
je 0x30cad
cmpl $0x1, %eax
jne 0x30cb4
movq %rbx, %rdi
callq 0x30cc9
movq %rbx, %rdi
movl %ebp, %esi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x30d36
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0x14fcb(%rip), %rsi     # 0x45c86
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/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
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x30d1a
leaq 0x264a8(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x30d1a
movq %rdi, %rbx
cmpw $0x40, (%rdi)
jne 0x30d21
movq 0x10(%rbx), %rsi
leaq 0x15b88(%rip), %rdi     # 0x46879
xorl %eax, %eax
callq 0x3120
cmpq $0x2, 0x8(%rbx)
jb 0x30d1a
movl %eax, %ebp
leaq 0x18ed8(%rip), %rdi     # 0x49be0
callq 0x56e2
movl %ebp, %edi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x16a4f
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0x14f5e(%rip), %rsi     # 0x45c86
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
testq %rdx, %rdx
je 0x3104d
movq %r9, %r12
movq %r8, %rbp
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %r13d
movq %rdi, %r15
movl 0x80(%rsp), %eax
movq %rax, (%rsp)
movl 0x78(%rsp), %eax
movq %rax, 0x8(%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x18(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x20(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
callq 0x1b2a5
cmpl $0x1, %eax
jne 0x31053
subq $0x8, %rsp
movzwl %r13w, %r13d
movq %r15, %rdi
movl %r13d, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq %rbp, %r8
movq %r12, %r9
pushq 0x8(%rsp)
pushq 0x18(%rsp)
pushq 0x30(%rsp)
pushq 0x40(%rsp)
pushq 0x38(%rsp)
callq 0x3108b
addq $0x30, %rsp
movq %r15, %rdi
movl %r13d, %esi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3180b
addq $0x28, %rsp
jmp 0x31080
movzwl %r13w, %esi
movq %r15, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq %r12, %r8
movq 0x10(%rsp), %r9
pushq (%rsp)
pushq 0x10(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
callq 0x185a8
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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:
xorl %eax, %eax
testq %rdi, %rdi
je 0x33788
movzwl (%rdi), %ecx
cmpl $0x89, %ecx
je 0x33785
cmpl $0x88, %ecx
je 0x33789
cmpl $0x40, %ecx
jne 0x33788
pushq $-0x1
popq %rax
retq
pushq $0x1
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x24862(%rip), %r14     # 0x58000
addq $0x14, %r14
movq -0x14(%r14), %rsi
testq %rsi, %rsi
je 0x337c1
movslq -0xc(%r14), %rdx
movq %rbx, %rdi
callq 0x31f0
testl %eax, %eax
je 0x337c5
addq $0x18, %r14
jmp 0x337a2
xorl %ebx, %ebx
jmp 0x337da
movl -0x8(%r14), %ebx
movl -0x4(%r14), %edi
callq 0x1b28c
movl (%r14), %edi
callq 0x1b2bd
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
testq %rbx, %rbx
je 0x33816
leaq 0x23985(%rip), %rcx     # 0x57180
testb $0x30, (%rcx)
je 0x33816
cmpl $0x1, %eax
jne 0x33818
movq %rbx, %rdi
callq 0x33828
movq %rbx, %rdi
popq %rbx
jmp 0x33846
popq %rbx
retq
leaq 0x12467(%rip), %rsi     # 0x45c86
movq %rbx, %rdi
popq %rbx
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_sanyo.c
// Function: print_sanyo_offset_makervalue
void
print_sanyo_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:
                sanyo1_offset_makervalue(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                sanyo1_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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %r13
movq %r8, 0x20(%rsp)
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %r15
movl 0x80(%rsp), %r12d
movl 0x78(%rsp), %eax
movq %rax, (%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x10(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x8(%rsp)
xorl %eax, %eax
callq 0x1b2a5
testq %r14, %r14
je 0x33c75
cmpl $0x1, %eax
jne 0x33c7b
subq $0x8, %rsp
movzwl %bp, %ebp
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq 0x28(%rsp), %r8
movq %r13, %r9
pushq %r12
pushq 0x10(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq 0x30(%rsp)
callq 0x33cb1
addq $0x30, %rsp
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3422a
addq $0x28, %rsp
jmp 0x33ca6
movzwl %bp, %esi
movq %r15, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq %r13, %r8
movq 0x8(%rsp), %r9
pushq %r12
pushq 0x8(%rsp)
pushq 0x20(%rsp)
pushq 0x30(%rsp)
callq 0x185a8
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x345dd
leaq 0x22bcf(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x345dd
movq %rdi, %rbx
movzwl (%rdi), %ebp
leaq 0x116c3(%rip), %rsi     # 0x45c86
callq 0x5dd3
cmpw $0xc, %bp
jne 0x345dd
movq 0x10(%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x345e5
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
callq 0x8f81
movzwl %bx, %ebx
leaq 0x166d0(%rip), %rdi     # 0x4accc
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
leaq 0x166c3(%rip), %rdi     # 0x4acd2
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
addl %ebp, %ebx
xorl %eax, %eax
callq 0x8fa0
movl %ebx, %edi
callq 0x16a4f
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %rbx
movq %r8, 0x8(%rsp)
movq %rcx, %r14
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %r13
movl 0x80(%rsp), %eax
movq %rax, (%rsp)
movl 0x78(%rsp), %eax
movq %rax, 0x10(%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x18(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x20(%rsp)
movq 0x60(%rsp), %r12
xorl %eax, %eax
callq 0x1b2a5
testq %r15, %r15
je 0x346ba
decl %eax
movzwl %bp, %esi
movq %r13, %rdi
movq %r15, %rdx
movq %r14, %rcx
cmpl $0x4, %eax
ja 0x346c0
movq 0x8(%rsp), %r8
movq %rbx, %r9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x346e9
addq $0x28, %rsp
jmp 0x346de
movq %rbx, %r8
movq %r12, %r9
pushq (%rsp)
pushq 0x18(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
callq 0x185a8
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %rbx
movq %rcx, %r14
movq %rdx, %r15
movl %esi, %r13d
movq %rdi, %r12
movl 0x40(%rsp), %ebp
xorl %eax, %eax
callq 0x1b2a5
addl $-0x2, %eax
cmpl $0x3, %eax
ja 0x36b53
leaq 0x13de6(%rip), %rcx     # 0x4a898
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzwl %r13w, %esi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
movq %rbx, %r8
movl %ebp, %r9d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3985f
movzwl %r13w, %esi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
movq %rbx, %r8
movl %ebp, %r9d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x382d3
movzwl %r13w, %esi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
movq %rbx, %r8
movl %ebp, %r9d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3759b
movzwl %r13w, %esi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
movq %rbx, %r8
movl %ebp, %r9d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x38d27
movzwl %r13w, %esi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
movq %rbx, %r8
movl %ebp, %r9d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3a144
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
testq %rbx, %rbx
je 0x3acc6
leaq 0x1c4d5(%rip), %rcx     # 0x57180
testb $0x30, (%rcx)
je 0x3acc6
cmpl $0x1, %eax
jne 0x3acc8
movq %rbx, %rdi
callq 0x3acd8
movq %rbx, %rdi
popq %rbx
jmp 0x3acf6
popq %rbx
retq
leaq 0xafb7(%rip), %rsi      # 0x45c86
movq %rbx, %rdi
popq %rbx
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_leica.c
// Function: maker_leica1_tagname
char *
maker_leica1_tagname(unsigned short tag,int model)
{
    char *tagname = CNULL;

    switch(tag)
    {
        case 0x0000: tagname = "Version"; break;
        case 0x1000: tagname = "Quality"; break;
        case 0x1001: tagname = "Sharpness"; break;
        case 0x1002: tagname = "WhiteBalance"; break;
        case 0x1003: tagname = "Color"; break;
        case 0x1004: tagname = "Tone"; break;
        case 0x1010: tagname = "FlashMode"; break;
        case 0x1011: tagname = "FlashStrength"; break;
        case 0x1020: tagname = "Macro"; break;
        case 0x1021: tagname = "FocusMode"; break;
        case 0x1030: tagname = "SlowSync"; break;
        case 0x1031: tagname = "PictureMode"; break;
        case 0x1100: tagname = "ContTake-Bracket"; break;
        case 0x1300: tagname = "BlurWarning"; break;
        case 0x1301: tagname = "FocusWarning"; break;
        case 0x1302: tagname = "AEWarning"; break;
        default: break;
    }
    setnotetagset(1);
    return(tagname);
}

// Assembly:
pushq %rbx
leal -0x1000(%rdi), %eax
cmpl $0x4, %eax
jbe 0x3b22f
cmpl $0x1302, %edi           # imm = 0x1302
je 0x3b24b
cmpl $0x1010, %edi           # imm = 0x1010
je 0x3b2c0
cmpl $0x1011, %edi           # imm = 0x1011
je 0x3b2b7
cmpl $0x1020, %edi           # imm = 0x1020
je 0x3b266
cmpl $0x1021, %edi           # imm = 0x1021
je 0x3b2ae
cmpl $0x1030, %edi           # imm = 0x1030
je 0x3b28a
cmpl $0x1031, %edi           # imm = 0x1031
je 0x3b293
cmpl $0x1100, %edi           # imm = 0x1100
je 0x3b281
cmpl $0x1300, %edi           # imm = 0x1300
je 0x3b254
cmpl $0x1301, %edi           # imm = 0x1301
je 0x3b278
testl %edi, %edi
jne 0x3b2c9
leaq 0x60d0(%rip), %rbx      # 0x412fa
jmp 0x3b2cb
leaq 0x10eee(%rip), %rcx     # 0x4c124
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xea0d(%rip), %rbx      # 0x49c53
jmp 0x3b2cb
leaq 0xe081(%rip), %rbx      # 0x492d3
jmp 0x3b2cb
leaq 0xe05f(%rip), %rbx      # 0x492ba
jmp 0x3b2cb
leaq 0xe01d(%rip), %rbx      # 0x49281
jmp 0x3b2cb
leaq 0x945a(%rip), %rbx      # 0x446c7
jmp 0x3b2cb
leaq 0x5f75(%rip), %rbx      # 0x411eb
jmp 0x3b2cb
leaq 0xe047(%rip), %rbx      # 0x492c6
jmp 0x3b2cb
leaq 0xe021(%rip), %rbx      # 0x492a9
jmp 0x3b2cb
leaq 0xe003(%rip), %rbx      # 0x49294
jmp 0x3b2cb
leaq 0xe003(%rip), %rbx      # 0x4929d
jmp 0x3b2cb
leaq 0xee7c(%rip), %rbx      # 0x4a11f
jmp 0x3b2cb
leaq 0x61d9(%rip), %rbx      # 0x41485
jmp 0x3b2cb
leaq 0xce6f(%rip), %rbx      # 0x48124
jmp 0x3b2cb
leaq 0xdfc8(%rip), %rbx      # 0x49286
jmp 0x3b2cb
leaq 0xd7db(%rip), %rbx      # 0x48aa2
jmp 0x3b2cb
xorl %ebx, %ebx
pushq $0x1
popq %rdi
callq 0x1b2bd
movq %rbx, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O2/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 %rbx
movq %rdi, %rbx
xorl %eax, %eax
callq 0x1b2a5
testq %rbx, %rbx
je 0x3b35e
leaq 0x1be3d(%rip), %rcx     # 0x57180
testb $0x30, (%rcx)
je 0x3b35e
cmpl $0x1, %eax
jne 0x3b360
movq %rbx, %rdi
callq 0x3b370
movq %rbx, %rdi
popq %rbx
jmp 0x3b38e
popq %rbx
retq
leaq 0xa91f(%rip), %rsi      # 0x45c86
movq %rbx, %rdi
popq %rbx
jmp 0x5dd3
// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/maker_agfa.c
// Function: agfa1_interpret_value
void
agfa1_interpret_value(struct ifd_entry *entry_ptr)
{
    int chpr = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        switch(entry_ptr->tag)
        {
            case 0x0201:    /* Compression Mode */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 1: chpr += printf("SQ"); break;
                    case 2: chpr += printf("HQ"); break;
                    case 3: chpr += printf("SHQ"); break;
                    case 33: chpr += printf("not compressed"); break; /* TIFF  */
                    case 34:    /* not sure about this one ###%%%         */
                                chpr += printf("not compressed");
                                break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            case 0x0202:    /* Macro */
                print_startvalue();
                switch(entry_ptr->value)
                {
                    case 0: chpr += printf("Normal"); break;
                    case 1: chpr += printf("Macro"); break;
                    case 2: chpr += printf("View"); break;
                    default: printred("undefined"); break;
                }
                print_endvalue();
                break;
            default:
                break;
        }
    }
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x3b3e6
leaq 0x1bde5(%rip), %rax     # 0x57180
testb $0x30, (%rax)
je 0x3b3e6
movq %rdi, %rbx
movzwl (%rdi), %eax
cmpl $0x202, %eax            # imm = 0x202
je 0x3b3e8
cmpl $0x201, %eax            # imm = 0x201
jne 0x3b3e6
xorl %eax, %eax
callq 0x8f81
movq 0x10(%rbx), %rax
cmpq $0x22, %rax
je 0x3b41b
cmpq $0x2, %rax
je 0x3b436
cmpq $0x3, %rax
je 0x3b43f
cmpq $0x21, %rax
je 0x3b41b
cmpq $0x1, %rax
jne 0x3b40d
leaq 0xd25c(%rip), %rdi      # 0x48640
jmp 0x3b446
popq %rbx
retq
xorl %eax, %eax
callq 0x8f81
movq 0x10(%rbx), %rax
cmpq $0x2, %rax
je 0x3b42d
cmpq $0x1, %rax
je 0x3b424
testq %rax, %rax
jne 0x3b40d
leaq 0xdf9e(%rip), %rdi      # 0x493a9
jmp 0x3b446
leaq 0xba05(%rip), %rdi      # 0x46e19
callq 0x56e2
jmp 0x3b44d
leaq 0xd225(%rip), %rdi      # 0x48647
jmp 0x3b446
leaq 0x929c(%rip), %rdi      # 0x446c7
jmp 0x3b446
leaq 0xd74e(%rip), %rdi      # 0x48b82
jmp 0x3b446
leaq 0xd207(%rip), %rdi      # 0x48644
jmp 0x3b446
leaq 0xd1fd(%rip), %rdi      # 0x48643
xorl %eax, %eax
callq 0x3120
xorl %eax, %eax
popq %rbx
jmp 0x8fa0
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %r13
movq %r8, 0x20(%rsp)
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %r15
movl 0x80(%rsp), %r12d
movl 0x78(%rsp), %eax
movq %rax, (%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x10(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x8(%rsp)
xorl %eax, %eax
callq 0x1b2a5
testq %r14, %r14
je 0x3b506
cmpl $0x1, %eax
jne 0x3b50c
subq $0x8, %rsp
movzwl %bp, %ebp
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq 0x28(%rsp), %r8
movq %r13, %r9
pushq %r12
pushq 0x10(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq 0x30(%rsp)
callq 0x3b542
addq $0x30, %rsp
movq %r15, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3ba11
addq $0x28, %rsp
jmp 0x3b537
movzwl %bp, %esi
movq %r15, %rdi
movq %r14, %rdx
movq %rbx, %rcx
movq %r13, %r8
movq 0x8(%rsp), %r9
pushq %r12
pushq 0x8(%rsp)
pushq 0x20(%rsp)
pushq 0x30(%rsp)
callq 0x185a8
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq