// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/print.c
// Function: print_private_entry
unsigned long
print_private_entry(FILE *inptr,unsigned short byteorder,struct ifd_entry *entry_ptr,
                            unsigned long fileoffset_base, unsigned short subifd_ident,
                            struct image_summary *summary_entry, char *parent_name,
                            char *prefix,int make,int model,int indent)
{
    int value_is_offset = 0;
    unsigned long endoffset = 0UL;
    int chpr = 0;

    if((PRINT_ENTRY))
    {
        value_is_offset = is_offset(entry_ptr);
        if(value_is_offset == 0)
            value_is_offset = private_value_is_offset(make,subifd_ident,entry_ptr->tag);
        print_private_taginfo(entry_ptr,subifd_ident,parent_name,make,indent);
        if((entry_ptr->value_type == 0) || (entry_ptr->value_type > DOUBLE) ||
            ferror(inptr) || feof(inptr))
        {
            clearerr(inptr);
            printred("# INVALID ENTRY");
            endoffset = ftell(inptr);
        }
        else if(entry_ptr->count == 0)
        {
            if(PRINT_VALUE)
                chpr += printf(" EMPTY (value=%#lx)",entry_ptr->value);
            endoffset = ftell(inptr);
        }
        else if(value_is_offset)
        {
            if(value_is_offset > 0)
            {
                /* Offsets read from the file are printed relative to the */
                /* beginning of the file (with fileoffset_base added) so  */
                /* that the values, printed later, will be easy to find.  */
                if(PRINT_BOTH_OFFSET)
                    chpr += printf("@%#lx=%lu",entry_ptr->value + fileoffset_base,
                            entry_ptr->value + fileoffset_base);
                else if(PRINT_HEX_OFFSET)
                    chpr += printf("@%#lx",entry_ptr->value + fileoffset_base);
                else if(PRINT_DEC_OFFSET)
                    chpr += printf("@%lu",entry_ptr->value + fileoffset_base);

                if(fileoffset_base && (PRINT_ENTRY_RELOFFSET))
                    chpr += printf(" (%lu) ",entry_ptr->value);
            }
            else if((value_is_offset < 0) && (PRINT_VALUE))
            {
                print_value(entry_ptr,PREFIX);
                interpret_pe_value(entry_ptr,subifd_ident,make,prefix);
            }

            /* Print "inline" in REPORT & LIST modes                      */
            if(!(PRINT_VALUE_AT_OFFSET))
            {
                setcharsprinted(chpr);
                chpr = 0;
                endoffset = print_offset_pe_value(inptr,byteorder,
                                            entry_ptr,fileoffset_base,
                                            subifd_ident,summary_entry,
                                            parent_name,"@",indent + MEDIUMINDENT,
                                            make,model,0);
            }
        }
        else if(PRINT_VALUE)
        {
            print_value(entry_ptr,PREFIX);
            interpret_pe_value(entry_ptr,subifd_ident,make,prefix);
        }
        chpr = newline(chpr);
    }
    return(endoffset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x78, %rsp
movw %r8w, %ax
movl 0x30(%rbp), %r8d
movl 0x28(%rbp), %r8d
movl 0x20(%rbp), %r8d
movq 0x18(%rbp), %r8
movq 0x10(%rbp), %r8
movq %rdi, -0x20(%rbp)
movw %si, -0x22(%rbp)
movq %rdx, -0x30(%rbp)
movq %rcx, -0x38(%rbp)
movw %ax, -0x3a(%rbp)
movq %r9, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
movq $0x0, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
leaq 0x6aa26(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0xca7f
movq -0x30(%rbp), %rdi
callq 0x158d0
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jne 0xc798
movl 0x20(%rbp), %edi
movw -0x3a(%rbp), %cx
movq -0x30(%rbp), %rax
movzwl %cx, %esi
movzwl (%rax), %edx
callq 0xca90
movl %eax, -0x4c(%rbp)
movq -0x30(%rbp), %rdi
movw -0x3a(%rbp), %ax
movq 0x10(%rbp), %rdx
movl 0x20(%rbp), %ecx
movl 0x30(%rbp), %r8d
movzwl %ax, %esi
callq 0xcca0
movq -0x30(%rbp), %rax
movzwl 0x2(%rax), %eax
cmpl $0x0, %eax
je 0xc7e9
movq -0x30(%rbp), %rax
movzwl 0x2(%rax), %eax
cmpl $0xc, %eax
jg 0xc7e9
movq -0x20(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0xc7e9
movq -0x20(%rbp), %rdi
callq 0x3190
cmpl $0x0, %eax
je 0xc810
movq -0x20(%rbp), %rdi
callq 0x31a0
leaq 0x57d93(%rip), %rdi     # 0x6458c
callq 0x6860
movq -0x20(%rbp), %rdi
callq 0x3180
movq %rax, -0x58(%rbp)
jmp 0xca74
movq -0x30(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xc85d
leaq 0x6a95e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0xc84b
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x57d5e(%rip), %rdi     # 0x6459c
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3180
movq %rax, -0x58(%rbp)
jmp 0xca72
cmpl $0x0, -0x4c(%rbp)
je 0xca33
cmpl $0x0, -0x4c(%rbp)
jle 0xc964
leaq 0x6a908(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x300, %rax            # imm = 0x300
cmpq $0x300, %rax            # imm = 0x300
jne 0xc8b7
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rsi
addq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rdx
addq -0x38(%rbp), %rdx
leaq 0x5b037(%rip), %rdi     # 0x678df
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0xc929
leaq 0x6a8c2(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x100, %rax            # imm = 0x100
cmpq $0x0, %rax
je 0xc8ef
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rsi
addq -0x38(%rbp), %rsi
leaq 0x5b00c(%rip), %rdi     # 0x678ec
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0xc927
leaq 0x6a88a(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x200, %rax            # imm = 0x200
cmpq $0x0, %rax
je 0xc925
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rsi
addq -0x38(%rbp), %rsi
leaq 0x5e473(%rip), %rdi     # 0x6ad8b
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0xc927
jmp 0xc929
cmpq $0x0, -0x38(%rbp)
je 0xc962
leaq 0x6a849(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4000000, %rax        # imm = 0x4000000
cmpq $0x0, %rax
je 0xc962
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x57c5b(%rip), %rdi     # 0x645b0
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0xc9a7
cmpl $0x0, -0x4c(%rbp)
jge 0xc9a5
leaq 0x6a80f(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0xc9a5
movq -0x30(%rbp), %rdi
leaq 0x5d991(%rip), %rsi     # 0x6a31a
callq 0x71d0
movq -0x30(%rbp), %rdi
movw -0x3a(%rbp), %ax
movl 0x20(%rbp), %edx
movq 0x18(%rbp), %rcx
movzwl %ax, %esi
callq 0xcef0
jmp 0xc9a7
leaq 0x6a7d2(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
jne 0xca31
movl -0x5c(%rbp), %edi
callq 0x1ff00
movl $0x0, -0x5c(%rbp)
movq -0x20(%rbp), %rdi
movw -0x22(%rbp), %si
movq -0x30(%rbp), %rdx
movq -0x38(%rbp), %rcx
movw -0x3a(%rbp), %r8w
movq -0x48(%rbp), %r9
movq 0x10(%rbp), %r14
movl 0x30(%rbp), %r11d
addl $0x4, %r11d
movl 0x20(%rbp), %r10d
movl 0x28(%rbp), %eax
leaq 0x576dd(%rip), %rbx     # 0x640dc
xorl %r15d, %r15d
movzwl %si, %esi
movzwl %r8w, %r8d
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
callq 0xcae0
movq %rax, -0x58(%rbp)
jmp 0xca70
leaq 0x6a746(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0xca6e
movq -0x30(%rbp), %rdi
leaq 0x5d8c8(%rip), %rsi     # 0x6a31a
callq 0x71d0
movq -0x30(%rbp), %rdi
movw -0x3a(%rbp), %ax
movl 0x20(%rbp), %edx
movq 0x18(%rbp), %rcx
movzwl %ax, %esi
callq 0xcef0
jmp 0xca70
jmp 0xca72
jmp 0xca74
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movq -0x58(%rbp), %rax
addq $0x78, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop