// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/print_maker.c
// Function: print_scheme
void
print_scheme(FILE *inptr,struct maker_scheme *maker_scheme)
{
    int chpr = 0;

    PUSHCOLOR(HI_BLACK);
    chpr = newline(1);
    chpr += printf("MakerNote Scheme:");
    chpr += printf(" (at offset %lu, length %lu)",maker_scheme->note_fileoffset,
                maker_scheme->note_length);
    chpr = newline(chpr);
    chpr += printf("\tScheme Type = ");
    switch(maker_scheme->scheme_type)
    {
        case PLAIN_IFD_SCHEME:
            chpr += printf("\"Plain IFD\" (%#lx) at offset %lu",maker_scheme->scheme_type,
                        maker_scheme->note_fileoffset);
            chpr = newline(chpr);
            break;
        case HAS_ID_SCHEME:
            chpr += printf("\"ID\" (%#lx)\n",maker_scheme->scheme_type);
            chpr += printf("\tID = \"%s\";",maker_scheme->id[0] ? maker_scheme->id : "(NONE)");
            chpr += printf(" length = %d, at offset %lu\n",maker_scheme->id_length,
                        maker_scheme->note_fileoffset);
            chpr += printf("\tIFD is offset %d from start of section",maker_scheme->ifd_offset);
            chpr = newline(chpr);
            break;
        case HAS_ID_PLUS_TIFFHDR_SCHEME:
            chpr += printf("\"ID plus TIFF header\" (%#lx)\n",maker_scheme->scheme_type);
            chpr += printf("\tID = \"%s\";",maker_scheme->id[0] ? maker_scheme->id : "(NONE)");
            chpr += printf("\tlength = %d, at offset %lu\n",maker_scheme->id_length,
                        maker_scheme->note_fileoffset);
            chpr += printf("\tTIFF header is offset %d from start of section\n",maker_scheme->tiffhdr_offset);
            chpr += printf("\tIFD is offset %d from start of TIFF header",maker_scheme->ifd_offset);
            chpr = newline(chpr);
            break;
        case UNKNOWN_SCHEME:
        default:
            chpr += printf("\"UNKNOWN\" (%#lx)\n",maker_scheme->scheme_type);
            chpr += printf("\tID = \"%s\";",maker_scheme->id[0] ? maker_scheme->id : "(NONE)");
            chpr += printf(" length = %d, at offset %lu",maker_scheme->id_length,
                        maker_scheme->note_fileoffset);
            chpr = newline(chpr);
            break;
    }
    if(maker_scheme->note_byteorder &&
            (maker_scheme->note_byteorder != maker_scheme->tiff_byteorder))
        PUSHCOLOR(HI_RED);

    chpr += printf("\tNote byteorder = ");
    print_byteorder(maker_scheme->note_byteorder,2);
    if(maker_scheme->note_byteorder &&
            (maker_scheme->note_byteorder != maker_scheme->tiff_byteorder))
    {
        chpr += printf(" != ");
        POPCOLOR();
    }
    else
    {
        chpr = newline(chpr);
        chpr += printf("\t");
    }
    chpr += printf("Tiff byteorder = ");
    print_byteorder(maker_scheme->tiff_byteorder,2);
    chpr += newline(chpr);
    switch(maker_scheme->offsets_relative_to)
    {
        case START_OF_TIFFHEADER:
                    chpr += printf("\tOffsets relative to TIFF header at offset %lu",
                                maker_scheme->fileoffset_base);
                    chpr = newline(chpr);
                    break;
        case START_OF_NOTE:
                    PUSHCOLOR(HI_RED);
                    chpr += printf("\tOffsets relative to start of MakerNote");
                    POPCOLOR();
                    chpr += printf(" at offset %lu",maker_scheme->note_fileoffset);
                    chpr += newline(1);
                    break;
        case START_OF_ENTRY:
                    PUSHCOLOR(HI_RED);
                    chpr += printf("\tOffsets relative to start of entry");
                    POPCOLOR();
                    chpr += newline(1);
                    break;
        default: chpr += printf("(UNKNOWN)\n");
                    break;
    }
    chpr += printf("\tNumber of entries = %d",maker_scheme->num_entries);
    chpr = newline(chpr);
    if((maker_scheme->scheme_type != UNKNOWN_SCHEME) && maker_scheme->no_nextifd_offset)
    {
        putchar('\t'); ++chpr;
        PUSHCOLOR(HI_RED);
        chpr += printf("No next IFD offset");
        POPCOLOR();
        chpr += newline(1);
    }
    if(Make_name)
    {
        putchar('\t'); ++chpr;
        chpr += printf("Make = \"%s\"",Make_name);
        chpr += printf("  (maker id = %d)",maker_scheme->make);
        chpr = newline(1);
    }
    if(Model_name)
    {
        putchar('\t'); ++chpr;
        chpr += printf("Model = \"%s\"",Model_name);
        chpr += printf("  (model id = %d)",maker_scheme->model);
        chpr = newline(1);
    }
    if(Software_name)
    {
        putchar('\t'); ++chpr;
        chpr += printf("Software = \"%s\"",Software_name);
        chpr = newline(1);
    }
    putchar('\t'); ++chpr;
    chpr += printf("Note version = %d (tagset = %d)",maker_scheme->note_version,maker_scheme->tagset);

    POPCOLOR();
    chpr = newline(chpr);
    chpr = newline(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
leaq 0x44a10(%rip), %rdi     # 0x68dfb
xorl %eax, %eax
movb %al, -0x21(%rbp)
callq 0x3110
movl %eax, %edx
movb -0x21(%rbp), %al
movl -0x14(%rbp), %ecx
addl %edx, %ecx
movl %ecx, -0x14(%rbp)
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
leaq 0x449f8(%rip), %rdi     # 0x68e0d
callq 0x3110
movl %eax, %ecx
movl -0x14(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, %ecx
movb -0x21(%rbp), %al
movl %ecx, -0x14(%rbp)
leaq 0x449ef(%rip), %rdi     # 0x68e2a
callq 0x3110
movl %eax, %ecx
movl -0x14(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
subq $0x4, %rax
ja 0x2461b
movq -0x20(%rbp), %rax
leaq 0x448da(%rip), %rcx     # 0x68d44
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x449b1(%rip), %rdi     # 0x68e3a
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
jmp 0x246a7
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x449a7(%rip), %rdi     # 0x68e5b
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x244df
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x244ec
leaq 0x4498e(%rip), %rax     # 0x68e74
movq %rax, -0x30(%rbp)
jmp 0x244ec
movq -0x30(%rbp), %rsi
leaq 0x44971(%rip), %rdi     # 0x68e68
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x44961(%rip), %rdi     # 0x68e7b
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %esi
leaq 0x44963(%rip), %rdi     # 0x68e98
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
jmp 0x246a7
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x44960(%rip), %rdi     # 0x68ec0
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x2458b
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x24598
leaq 0x448e2(%rip), %rax     # 0x68e74
movq %rax, -0x38(%rbp)
jmp 0x24598
movq -0x38(%rbp), %rsi
leaq 0x448c5(%rip), %rdi     # 0x68e68
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x44918(%rip), %rdi     # 0x68ede
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x24(%rax), %esi
leaq 0x4491a(%rip), %rdi     # 0x68efb
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %esi
leaq 0x44930(%rip), %rdi     # 0x68f2c
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
jmp 0x246a7
jmp 0x2461b
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x4492f(%rip), %rdi     # 0x68f58
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x24654
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x24661
leaq 0x44819(%rip), %rax     # 0x68e74
movq %rax, -0x40(%rbp)
jmp 0x24661
movq -0x40(%rbp), %rsi
leaq 0x447fc(%rip), %rdi     # 0x68e68
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x448db(%rip), %rdi     # 0x68f6a
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movzwl 0x52(%rax), %eax
cmpl $0x0, %eax
je 0x246ca
movq -0x10(%rbp), %rax
movzwl 0x52(%rax), %eax
movq -0x10(%rbp), %rcx
movzwl 0x50(%rcx), %ecx
cmpl %ecx, %eax
je 0x246ca
jmp 0x246ca
leaq 0x448b5(%rip), %rdi     # 0x68f86
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl $0x2, %esi
movzwl 0x52(%rax), %edi
callq 0x59e0
movq -0x10(%rbp), %rax
movzwl 0x52(%rax), %eax
cmpl $0x0, %eax
je 0x24727
movq -0x10(%rbp), %rax
movzwl 0x52(%rax), %eax
movq -0x10(%rbp), %rcx
movzwl 0x50(%rcx), %ecx
cmpl %ecx, %eax
je 0x24727
leaq 0x44881(%rip), %rdi     # 0x68f99
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x24746
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
leaq 0x45be0(%rip), %rdi     # 0x6a319
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x44851(%rip), %rdi     # 0x68f9e
xorl %eax, %eax
callq 0x3110
movl %eax, %ecx
movl -0x14(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movzwl 0x50(%rax), %edi
movl $0x2, %esi
callq 0x59e0
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, %ecx
movl -0x14(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x44(%rbp)
testl %eax, %eax
je 0x247a9
jmp 0x24792
movl -0x44(%rbp), %eax
subl $0x1, %eax
je 0x247d2
jmp 0x2479c
movl -0x44(%rbp), %eax
subl $0x2, %eax
je 0x24814
jmp 0x2483a
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rsi
leaq 0x447f8(%rip), %rdi     # 0x68fb0
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
jmp 0x2484e
leaq 0x44806(%rip), %rdi     # 0x68fdf
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x44657(%rip), %rdi     # 0x68e4c
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x2484e
leaq 0x447ec(%rip), %rdi     # 0x69007
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x2484e
leaq 0x447ea(%rip), %rdi     # 0x6902b
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %esi
leaq 0x447da(%rip), %rdi     # 0x69036
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x248bf
movq -0x10(%rbp), %rax
cmpl $0x0, 0x34(%rax)
je 0x248bf
movl $0x9, %edi
callq 0x3050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
leaq 0x447ac(%rip), %rdi     # 0x6904e
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq 0x53b6a(%rip), %rax     # 0x78430
cmpq $0x0, (%rax)
je 0x24925
movl $0x9, %edi
callq 0x3050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
leaq 0x53b4a(%rip), %rax     # 0x78430
movq (%rax), %rsi
leaq 0x44771(%rip), %rdi     # 0x69061
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x38(%rax), %esi
leaq 0x44762(%rip), %rdi     # 0x6906d
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
leaq 0x53b0c(%rip), %rax     # 0x78438
cmpq $0x0, (%rax)
je 0x2498b
movl $0x9, %edi
callq 0x3050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
leaq 0x53aec(%rip), %rax     # 0x78438
movq (%rax), %rsi
leaq 0x44729(%rip), %rdi     # 0x6907f
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %esi
leaq 0x4471b(%rip), %rdi     # 0x6908c
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
leaq 0x53aae(%rip), %rax     # 0x78440
cmpq $0x0, (%rax)
je 0x249d6
movl $0x9, %edi
callq 0x3050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
leaq 0x53a8e(%rip), %rax     # 0x78440
movq (%rax), %rsi
leaq 0x446e2(%rip), %rdi     # 0x6909e
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
movl $0x9, %edi
callq 0x3050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x40(%rax), %esi
movq -0x10(%rbp), %rax
movl 0x44(%rax), %edx
leaq 0x446b0(%rip), %rdi     # 0x690ae
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
movl $0x1, %edi
callq 0x1ef50
movl %eax, -0x14(%rbp)
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)