// File: /workspace/github_c_makefile_star2_O1/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 0x5c17
leaq 0x5267a(%rip), %r12     # 0x58180
movq (%r12), %rax
testl $0x4003333, %eax        # imm = 0x4003333
je 0x5c17
movl %ecx, %r15d
movq %rsi, %r14
movq %rdi, %rbx
movl %eax, %ecx
notl %ecx
testb $0x3, %cl
jne 0x5b3c
movzwl (%rbx), %edx
leaq 0x3baf0(%rip), %rdi     # 0x41621
movl %edx, %esi
xorl %eax, %eax
callq 0x3120
jmp 0x5b63
testb $0x2, %al
jne 0x5b52
xorl %ebp, %ebp
testb $0x1, %al
je 0x5b65
movzwl (%rbx), %esi
leaq 0x3bae5(%rip), %rdi     # 0x41635
jmp 0x5b5c
movzwl (%rbx), %esi
leaq 0x3bad2(%rip), %rdi     # 0x4162e
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
testb $0x10, 0x1(%r12)
je 0x5bd4
cmpl $0x3, %r15d
jb 0x5b89
je 0x5c26
cmpl $0x4, %r15d
jne 0x5b89
movzwl (%rbx), %edi
callq 0xc380
jmp 0x5b91
movzwl (%rbx), %edi
callq 0xa958
movq %rax, %r15
testb $0x40, (%r12)
je 0x5bac
leaq 0x3f905(%rip), %rdi     # 0x454a7
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
testq %r15, %r15
leaq 0x3ba88(%rip), %rcx     # 0x4163e
cmovneq %r15, %rcx
leaq 0x42f30(%rip), %rdi     # 0x48af1
movl $0x1b, %esi
movl $0x1b, %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x20, 0x1(%r12)
je 0x5c00
movzwl 0x2(%rbx), %edi
callq 0x15f38
movzwl 0x2(%rbx), %esi
movq 0x8(%rbx), %rcx
leaq 0x3ba4f(%rip), %rdi     # 0x41643
movq %rax, %rdx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
testb $0x30, (%r12)
je 0x5c17
leaq 0x4495a(%rip), %rdi     # 0x4a568
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x17530
movzwl (%rbx), %edi
callq 0xc2ce
jmp 0x5b91