// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movl %r8d, -0x1c(%rbp)
movl %r9d, -0x20(%rbp)
movl $0x1b, -0x34(%rbp)
movl $0x0, -0x38(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x684d
leaq 0x70b62(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x684d
leaq 0x70b48(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3, %rax
cmpq $0x3, %rax
jne 0x6675
movq -0x8(%rbp), %rax
movzwl (%rax), %esi
andl $0xffff, %esi           # imm = 0xFFFF
movq -0x8(%rbp), %rax
movzwl (%rax), %edx
andl $0xffff, %edx           # imm = 0xFFFF
leaq 0x5df7b(%rip), %rdi     # 0x645e1
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x66e5
leaq 0x70b04(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x2, %rax
cmpq $0x0, %rax
je 0x66ac
movq -0x8(%rbp), %rax
movzwl (%rax), %esi
andl $0xffff, %esi           # imm = 0xFFFF
leaq 0x5df51(%rip), %rdi     # 0x645ee
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x66e3
leaq 0x70acd(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x66e1
movq -0x8(%rbp), %rax
movzwl (%rax), %esi
andl $0xffff, %esi           # imm = 0xFFFF
leaq 0x5df21(%rip), %rdi     # 0x645f5
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x66e3
jmp 0x66e5
leaq 0x70a94(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1000, %rax           # imm = 0x1000
cmpq $0x0, %rax
je 0x67d4
movl -0x18(%rbp), %eax
movl %eax, -0x3c(%rbp)
subl $0x3, %eax
jb 0x6744
jmp 0x670c
movl -0x3c(%rbp), %eax
subl $0x3, %eax
je 0x6732
jmp 0x6716
movl -0x3c(%rbp), %eax
subl $0x4, %eax
jne 0x6756
jmp 0x6720
movq -0x8(%rbp), %rax
movzwl (%rax), %edi
callq 0x107e0
movq %rax, -0x28(%rbp)
jmp 0x6766
movq -0x8(%rbp), %rax
movzwl (%rax), %edi
callq 0x106e0
movq %rax, -0x28(%rbp)
jmp 0x6766
movq -0x8(%rbp), %rax
movzwl (%rax), %edi
callq 0xd580
movq %rax, -0x28(%rbp)
jmp 0x6766
movq -0x8(%rbp), %rax
movzwl (%rax), %edi
callq 0xd580
movq %rax, -0x28(%rbp)
leaq 0x70a13(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x678c
movq -0x10(%rbp), %rsi
leaq 0x613f4(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
movl -0x34(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x34(%rbp), %eax
movl %eax, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x67a9
movq -0x28(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x67b6
leaq 0x5de4e(%rip), %rax     # 0x645fe
movq %rax, -0x50(%rbp)
jmp 0x67b6
movl -0x40(%rbp), %edx
movl -0x44(%rbp), %esi
movq -0x50(%rbp), %rcx
leaq 0x648d5(%rip), %rdi     # 0x6b09c
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
leaq 0x709a5(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x2000, %rax           # imm = 0x2000
cmpq $0x0, %rax
je 0x6823
movq -0x8(%rbp), %rax
movzwl 0x2(%rax), %edi
callq 0x1dc60
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movzwl 0x2(%rax), %esi
movq -0x30(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x5dded(%rip), %rdi     # 0x64603
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
leaq 0x70956(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x684b
leaq 0x664da(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x684d
movl -0x38(%rbp), %edi
callq 0x1ff00
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)