// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/print.c
// Function: print_offset_pe_value
unsigned long
print_offset_pe_value(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 indent,int make,int model,int at_offset)
{
    unsigned long endoffset = 0L;

    if(inptr && entry_ptr)
    {
        endoffset = fileoffset_base + entry_ptr->value + 
            (value_type_size(entry_ptr->value_type) * entry_ptr->count);

        switch(make)
        {
            case MAKER_OLYMPUS:
                olympus_offset_pe_value(inptr,byteorder,entry_ptr,fileoffset_base,
                                                        subifd_ident,summary_entry,
                                                        parent_name,prefix,indent,
                                                        make,model,at_offset);
                break;
            default:
                print_private_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,subifd_ident,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
        }
    }
    else
    {
        printred(" invalid call to print_offset_pe_makervalue ");
        if(inptr == (FILE *)0)
            printred(" no input file pointer ");
        if(entry_ptr == (struct ifd_entry *)0)
            printred(" null entry pointer");
    }
    if(ferror(inptr) || feof(inptr))
        clearerr(inptr);
    (void)newline(0);
    return(endoffset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x78, %rsp
movw %r8w, %ax
movl 0x38(%rbp), %r8d
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)
movq $0x0, -0x50(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xcc28
cmpq $0x0, -0x30(%rbp)
je 0xcc28
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rdx
addq %rdx, %rcx
movq %rcx, -0x58(%rbp)
movzwl 0x2(%rax), %edi
callq 0x1dbf0
movl %eax, %ecx
movq -0x58(%rbp), %rax
movslq %ecx, %rcx
movq -0x30(%rbp), %rdx
movq 0x8(%rdx), %rdx
imulq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movl 0x28(%rbp), %eax
subl $0xd, %eax
jne 0xcbd9
jmp 0xcb81
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), %r15
movq 0x18(%rbp), %r14
movl 0x20(%rbp), %ebx
movl 0x28(%rbp), %r11d
movl 0x30(%rbp), %r10d
movl 0x38(%rbp), %eax
movzwl %si, %esi
movzwl %r8w, %r8d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
movl %ebx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
callq 0x45660
jmp 0xcc26
movq -0x20(%rbp), %rdi
movw -0x22(%rbp), %si
movq -0x30(%rbp), %rdx
movq -0x38(%rbp), %rcx
movw -0x3a(%rbp), %r8w
movq 0x10(%rbp), %r9
movq 0x18(%rbp), %r14
movl 0x20(%rbp), %ebx
movl 0x28(%rbp), %r11d
movl 0x30(%rbp), %r10d
movl 0x38(%rbp), %eax
movzwl %si, %esi
movzwl %r8w, %r8d
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0xd160
jmp 0xcc5c
leaq 0x58054(%rip), %rdi     # 0x64c83
callq 0x6860
cmpq $0x0, -0x20(%rbp)
jne 0xcc47
leaq 0x57a95(%rip), %rdi     # 0x646d7
callq 0x6860
cmpq $0x0, -0x30(%rbp)
jne 0xcc5a
leaq 0x57a9c(%rip), %rdi     # 0x646f1
callq 0x6860
jmp 0xcc5c
movq -0x20(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0xcc78
movq -0x20(%rbp), %rdi
callq 0x3190
cmpl $0x0, %eax
je 0xcc81
movq -0x20(%rbp), %rdi
callq 0x31a0
xorl %edi, %edi
callq 0x1ef50
movq -0x50(%rbp), %rax
addq $0x78, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw (%rax,%rax)