// File: /workspace/github_c_makefile_star2_O3/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 0x5c0a
leaq 0x5268c(%rip), %r12     # 0x58180
movq (%r12), %rax
testl $0x4003333, %eax        # imm = 0x4003333
je 0x5c0a
movl %ecx, %r15d
movq %rsi, %r14
movq %rdi, %rbx
movl %eax, %ecx
notl %ecx
testb $0x3, %cl
jne 0x5b2a
movzwl (%rbx), %edx
leaq 0x3bb02(%rip), %rdi     # 0x41621
movl %edx, %esi
xorl %eax, %eax
callq 0x3120
jmp 0x5b51
testb $0x2, %al
jne 0x5b40
xorl %ebp, %ebp
testb $0x1, %al
je 0x5b53
movzwl (%rbx), %esi
leaq 0x3baf7(%rip), %rdi     # 0x41635
jmp 0x5b4a
movzwl (%rbx), %esi
leaq 0x3bae4(%rip), %rdi     # 0x4162e
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
movq (%r12), %rax
btl $0xc, %eax
jae 0x5bc8
cmpl $0x3, %r15d
jb 0x5b79
je 0x5c19
cmpl $0x4, %r15d
jne 0x5b79
movzwl (%rbx), %edi
callq 0xc500
jmp 0x5b81
movzwl (%rbx), %edi
callq 0xaad8
movq %rax, %r15
testb $0x40, (%r12)
je 0x5b9c
leaq 0x3f959(%rip), %rdi     # 0x454eb
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
testq %r15, %r15
leaq 0x3ba98(%rip), %rcx     # 0x4163e
cmovneq %r15, %rcx
leaq 0x42f80(%rip), %rdi     # 0x48b31
movl $0x1b, %esi
movl $0x1b, %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
btl $0xd, %eax
jae 0x5bf6
movzwl 0x2(%rbx), %edi
callq 0x16484
movzwl 0x2(%rbx), %esi
movq 0x8(%rbx), %rcx
leaq 0x3ba5d(%rip), %rdi     # 0x41643
movq %rax, %rdx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x5c0a
leaq 0x449a7(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x17a82
movzwl (%rbx), %edi
callq 0xc44e
jmp 0x5b81