// File: /workspace/github_c_makefile_star2_O3/hfiguiere[P]exifprobe/x3f.c
// Function: display_x3f_camf_header
unsigned long
display_x3f_camf_header(struct x3f_direntry *direntry,struct x3f_camf_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","Item1");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 5);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%lu",header->item1);
    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","Item2");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 5);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%lu",header->item2);
    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","Item3");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 5);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%4.4s",(char *)&header->item3);
    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","Item4");
        if((PRINT_VALUE))
        {
            putindent(X3FTAGWIDTH - 5);
            chpr += printf(" = ");
        }
    }
    if((PRINT_VALUE))
        chpr += printf("%lu",header->item4);
    chpr = newline(chpr);

    /* Not sure how long the header is... CAMF is not described in    */
    /* the public X3F spec.                                           */

    /* Assume the header is same length as PROP for the purposes of   */
    /* dumping the data section                                       */
    return(direntry->data_offset + 24);
}

// 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 0x15b67(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r8d, %edx
callq 0x55eb
leaq 0x2cbf7(%rip), %r15     # 0x58180
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b5f4
xorl %ebp, %ebp
testb $0x40, %al
je 0x2b5b2
leaq 0x1e5a9(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
leaq 0x15ade(%rip), %rdi     # 0x41097
leaq 0x1e597(%rip), %rsi     # 0x49b57
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b5f7
movl $0x9, %edi
callq 0x5716
leaq 0x1efc3(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
jmp 0x2b5f7
xorl %r13d, %r13d
testb $0x30, %al
je 0x2b60f
leaq 0x1e55f(%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 0x15ab3(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b6a1
testb $0x40, %al
je 0x2b65e
leaq 0x1e4fe(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x15a2f(%rip), %rdi     # 0x41097
leaq 0x17c8b(%rip), %rsi     # 0x432fa
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b6a1
movl $0xb, %edi
callq 0x5716
leaq 0x1ef14(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b6c0
movzwl 0xa(%r14), %esi
movzwl 0x8(%r14), %edx
leaq 0x1e4b1(%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 0x15a02(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b752
testb $0x40, %al
je 0x2b70f
leaq 0x1e44d(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x1597e(%rip), %rdi     # 0x41097
leaq 0x1e51f(%rip), %rsi     # 0x49c3f
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b752
movl $0xd, %edi
callq 0x5716
leaq 0x1ee63(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b76b
movq 0x10(%r14), %rsi
leaq 0x1d1d4(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0xc, %rsi
leaq 0x15957(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b7fd
testb $0x40, %al
je 0x2b7ba
leaq 0x1e3a2(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x158d3(%rip), %rdi     # 0x41097
leaq 0x1e47a(%rip), %rsi     # 0x49c45
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b7fd
movl $0xd, %edi
callq 0x5716
leaq 0x1edb8(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b816
movq 0x18(%r14), %rsi
leaq 0x1d129(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x10, %rsi
leaq 0x158ac(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b8a8
testb $0x40, %al
je 0x2b865
leaq 0x1e2f7(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x15828(%rip), %rdi     # 0x41097
leaq 0x1e3d5(%rip), %rsi     # 0x49c4b
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b8a8
movl $0xd, %edi
callq 0x5716
leaq 0x1ed0d(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b8c1
leaq 0x20(%r14), %rsi
leaq 0x1e2aa(%rip), %rdi     # 0x49b61
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movl %eax, %r13d
movq 0x8(%rbx), %rsi
addq $0x14, %rsi
leaq 0x15801(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movl %r12d, %edx
callq 0x55eb
movq (%r15), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2b953
testb $0x40, %al
je 0x2b910
leaq 0x1e24c(%rip), %rdi     # 0x49b49
movq 0x10(%rsp), %rsi
movl 0xc(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %ebp
leaq 0x1577d(%rip), %rdi     # 0x41097
leaq 0x1e330(%rip), %rsi     # 0x49c51
xorl %eax, %eax
callq 0x3120
movl %eax, %r13d
addl %ebp, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b953
movl $0xd, %edi
callq 0x5716
leaq 0x1ec62(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movq (%r15), %rax
testb $0x30, %al
je 0x2b96c
movq 0x28(%r14), %rsi
leaq 0x1cfd3(%rip), %rdi     # 0x48935
xorl %eax, %eax
callq 0x3120
addl %eax, %r13d
movl %r13d, %edi
callq 0x1707a
movq 0x8(%rbx), %rax
addq $0x18, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq