// File: /workspace/github_c_makefile_star2_O3/hfiguiere[P]exifprobe/x3f.c
// Function: display_x3f_imag_header
unsigned long
display_x3f_imag_header(struct x3f_direntry *direntry,struct x3f_imag_header *header,
                                                char *dirname,int entry_num,int indent)
{
    int chpr = 0;

    print_tag_address(ENTRY,direntry->data_offset,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","SectionId");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 9);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%4.4s",(char *)&header->section_id);
    chpr = newline(chpr);
    
    print_tag_address(ENTRY,direntry->data_offset + 4,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","Version");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 7);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%u.%u",header->version_major,header->version_minor);
    chpr = newline(chpr);

    print_tag_address(ENTRY,direntry->data_offset + 8,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","ImageType");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 9);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
    {
        chpr += printf("%-2lu",header->image_type);
        switch(header->image_type)
        {
            case 2: chpr += printf(" = \"Preview\""); break;
            case 3: chpr += printf(" = \"Primary\""); break;
            default: break;
        }
    }
    chpr = newline(chpr);

    print_tag_address(ENTRY,direntry->data_offset + 12,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","ImageFormat");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 11);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
    {
        chpr += printf("%-2lu",header->image_format);
        switch(header->image_format)
        {
            case 3: chpr += printf(" = \"uncompressed RGB\""); break;
            case 6: chpr += printf(" = \"compressed RAW\""); break;
            case 11: chpr += printf(" = \"Huffman compressed RGB\""); break;
            case 18: chpr += printf(" = \"JPEG compressed RGB\""); break;
            default: break;
        }
    }
    chpr = newline(chpr);

    print_tag_address(ENTRY,direntry->data_offset + 16,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","ImageWidth");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 10);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%lu",header->image_width);
    chpr = newline(chpr);

    print_tag_address(ENTRY,direntry->data_offset + 20,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","ImageHeight");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 11);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%lu",header->image_height);
    chpr = newline(chpr);

    print_tag_address(ENTRY,direntry->data_offset + 24,indent,"@");
    if((PRINT_TAGINFO))
    {
        if((PRINT_LONGNAMES))
            chpr += printf("%s:%d.Header.",dirname,entry_num);
        chpr += printf("%s","RowSize");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 7);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
    {
        chpr += printf("%lu",header->image_rowsize);
        if(header->image_rowsize == 0)
            chpr += printf(" = \"variable length\"");
    }
    chpr = newline(chpr);

    return(direntry->data_offset + 28);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %r8d, %r12d
movl %ecx, 0xc(%rsp)
movq %rdx, 0x10(%rsp)
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rdi), %rsi
leaq 0x16d79(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r8d, %edx
callq 0x55eb
leaq 0x2de09(%rip), %r15     # 0x58180
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a3e2
xorl %ebp, %ebp
testb $0x40, %al
je 0x2a3a0
leaq 0x1f7bb(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
leaq 0x16cf0(%rip), %rdi     # 0x41097
leaq 0x1f7a9(%rip), %rsi     # 0x49b57
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a3e5
movl $0x9, %edi
callq 0x5716
leaq 0x201d5(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
jmp 0x2a3e5
xorl %r13d, %r13d
testb $0x30, %al
je 0x2a3fd
leaq 0x1f771(%rip), %rdi     # 0x49b61
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x4, %rsi
leaq 0x16cc5(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a48f
testb $0x40, %al
je 0x2a44c
leaq 0x1f710(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x16c41(%rip), %rdi     # 0x41097
leaq 0x18e9d(%rip), %rsi     # 0x432fa
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a48f
movl $0xb, %edi
callq 0x5716
leaq 0x20126(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a4ae
movzwl 0xa(%r14), %esi
movzwl 0x8(%r14), %edx
leaq 0x1f6c3(%rip), %rdi     # 0x49b67
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x8, %rsi
leaq 0x16c14(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a540
testb $0x40, %al
je 0x2a4fd
leaq 0x1f65f(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x16b90(%rip), %rdi     # 0x41097
leaq 0x1990b(%rip), %rsi     # 0x43e19
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a540
movl $0x9, %edi
callq 0x5716
leaq 0x20075(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a583
movq 0x10(%r14), %rsi
leaq 0x1f61e(%rip), %rdi     # 0x49b6d
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq 0x10(%r14), %rax
cmpq $0x2, %rax
je 0x2a572
cmpq $0x3, %rax
jne 0x2a583
leaq 0x1f610(%rip), %rdi     # 0x49b80
jmp 0x2a579
leaq 0x1f5fa(%rip), %rdi     # 0x49b73
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0xc, %rsi
leaq 0x16b3f(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a615
testb $0x40, %al
je 0x2a5d2
leaq 0x1f58a(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x16abb(%rip), %rdi     # 0x41097
leaq 0x1f5aa(%rip), %rsi     # 0x49b8d
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a615
movl $0x7, %edi
callq 0x5716
leaq 0x1ffa0(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a67c
movq 0x18(%r14), %rsi
leaq 0x1f549(%rip), %rdi     # 0x49b6d
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq 0x18(%r14), %rax
cmpq $0xa, %rax
jg 0x2a64d
cmpq $0x3, %rax
je 0x2a662
cmpq $0x6, %rax
jne 0x2a67c
leaq 0x1f564(%rip), %rdi     # 0x49baf
jmp 0x2a672
cmpq $0xb, %rax
je 0x2a66b
cmpq $0x12, %rax
jne 0x2a67c
leaq 0x1f57f(%rip), %rdi     # 0x49bdf
jmp 0x2a672
leaq 0x1f530(%rip), %rdi     # 0x49b99
jmp 0x2a672
leaq 0x1f551(%rip), %rdi     # 0x49bc3
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x10, %rsi
leaq 0x16a46(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a70e
testb $0x40, %al
je 0x2a6cb
leaq 0x1f491(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x169c2(%rip), %rdi     # 0x41097
leaq 0x23806(%rip), %rsi     # 0x4dee2
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a70e
movl $0x8, %edi
callq 0x5716
leaq 0x1fea7(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a727
movq 0x20(%r14), %rsi
leaq 0x1e218(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x14, %rsi
leaq 0x1699b(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a7b9
testb $0x40, %al
je 0x2a776
leaq 0x1f3e6(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x16917(%rip), %rdi     # 0x41097
leaq 0x2376d(%rip), %rsi     # 0x4def4
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a7b9
movl $0x7, %edi
callq 0x5716
leaq 0x1fdfc(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a7d2
movq 0x28(%r14), %rsi
leaq 0x1e16d(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x18, %rsi
leaq 0x168f0(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a864
testb $0x40, %al
je 0x2a821
leaq 0x1f33b(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x1686c(%rip), %rdi     # 0x41097
leaq 0x1f3c6(%rip), %rsi     # 0x49bf8
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a864
movl $0xb, %edi
callq 0x5716
leaq 0x1fd51(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2a895
movq 0x30(%r14), %rsi
leaq 0x1e0c2(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
cmpq $0x0, 0x30(%r14)
jne 0x2a895
leaq 0x1f375(%rip), %rdi     # 0x49c00
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movq 0x8(%rbx), %rax
addq $0x1c, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq