// File: /workspace/github_c_makefile_star2_O2/hfiguiere[P]exifprobe/print.c
// Function: print_taginfo
void
print_taginfo(struct ifd_entry *entry_ptr,char *parent_name,
                    int indent,int ifdtype,int ifdnum,int subifdnum)
{
    char *nameoftag;
    char *nameof_value_type;
    int tagwidth = TAGWIDTH;
    int chpr = 0;

    if(entry_ptr && (PRINT_ENTRY))
    {
        if(PRINT_BOTH_TAGNO)
            chpr += printf("<%#06x=%5u> ",entry_ptr->tag & 0xffff,entry_ptr->tag & 0xffff);
        else if(PRINT_DEC_TAGNO)
            chpr += printf("<%5u> ",entry_ptr->tag & 0xffff);
        else if(PRINT_HEX_TAGNO)
            chpr += printf("<%#06x> ",entry_ptr->tag & 0xffff);
        if((PRINT_TAGNAME))
        {
            switch(ifdtype)
            {
                case GPS_IFD:
                    nameoftag = gps_tagname(entry_ptr->tag);
                    break;
                case INTEROP_IFD:
                    nameoftag = interop_tagname(entry_ptr->tag);
                    break;
                case EXIF_IFD:
                case TIFF_IFD:
                case TIFF_SUBIFD:
                    nameoftag = tagname(entry_ptr->tag);
                    break;
                default:
                    nameoftag = tagname(entry_ptr->tag);
                    break;
            }
            if((PRINT_LONGNAMES))
                printf("%s.",parent_name);
            chpr += printf("%-*.*s",tagwidth,tagwidth,nameoftag ? nameoftag : "NULL");
        }
        if(PRINT_TYPE)
        {
            nameof_value_type = value_type_name(entry_ptr->value_type);
            chpr += printf(" [%-2u=%-9.9s %5lu] ",entry_ptr->value_type,
                    nameof_value_type,entry_ptr->count);
        }
        if(PRINT_VALUE)
            chpr += printf(" = "); 
    }
    setcharsprinted(chpr);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
xorl %ebp, %ebp
testq %rdi, %rdi
je 0x56c6
leaq 0x51bcb(%rip), %r12     # 0x57180
movq (%r12), %rax
testl $0x4003333, %eax        # imm = 0x4003333
je 0x56c6
movl %ecx, %r15d
movq %rsi, %r14
movq %rdi, %rbx
movl %eax, %ecx
notl %ecx
testb $0x3, %cl
jne 0x55eb
movzwl (%rbx), %edx
leaq 0x3a041(%rip), %rdi     # 0x3f621
movl %edx, %esi
xorl %eax, %eax
callq 0x3120
jmp 0x5612
testb $0x2, %al
jne 0x5601
xorl %ebp, %ebp
testb $0x1, %al
je 0x5614
movzwl (%rbx), %esi
leaq 0x3a036(%rip), %rdi     # 0x3f635
jmp 0x560b
movzwl (%rbx), %esi
leaq 0x3a023(%rip), %rdi     # 0x3f62e
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
movq (%r12), %rax
btl $0xc, %eax
jae 0x5684
cmpl $0x3, %r15d
jb 0x563a
je 0x56d5
cmpl $0x4, %r15d
jne 0x563a
movzwl (%rbx), %edi
callq 0xba69
jmp 0x5642
movzwl (%rbx), %edi
callq 0xa1c8
movq %rax, %r15
testb $0x40, (%r12)
je 0x565d
leaq 0x3de54(%rip), %rdi     # 0x434a7
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
testq %r15, %r15
leaq 0x39fd7(%rip), %rcx     # 0x3f63e
cmovneq %r15, %rcx
leaq 0x4146f(%rip), %rdi     # 0x46ae1
pushq $0x1b
popq %rdx
movl %edx, %esi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
btl $0xd, %eax
jae 0x56b2
movzwl 0x2(%rbx), %edi
callq 0x155e0
movzwl 0x2(%rbx), %esi
movq 0x8(%rbx), %rcx
leaq 0x39fa1(%rip), %rdi     # 0x3f643
movq %rax, %rdx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x56c6
leaq 0x42e9b(%rip), %rdi     # 0x48558
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x16a4f
movzwl (%rbx), %edi
callq 0xb9bd
jmp 0x5642