// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/maker_olympus.c
// Function: olympus1_offset_pe_value
void
olympus1_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)
{
    if(entry_ptr)
    {
        switch(subifd_ident)
        {
            case 0x2010:
                olympus2010_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            case 0x2020:
                olympus2020_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            case 0x2030:
                olympus2030_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            case 0x2040:
                olympus2040_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,summary_entry,
                                            parent_name,prefix,indent,
                                            make,model,at_offset);
                break;
            case 0x2050:
                olympus2050_offset_value(inptr,byteorder,entry_ptr,
                                            fileoffset_base,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;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %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, -0x18(%rbp)
movw %si, -0x1a(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movw %ax, -0x32(%rbp)
movq %r9, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x45a0a
movzwl -0x32(%rbp), %eax
movl %eax, -0x44(%rbp)
subl $0x2010, %eax           # imm = 0x2010
je 0x4583d
jmp 0x457fa
movl -0x44(%rbp), %eax
subl $0x2020, %eax           # imm = 0x2020
je 0x4588a
jmp 0x4580a
movl -0x44(%rbp), %eax
subl $0x2030, %eax           # imm = 0x2030
je 0x458d7
jmp 0x4581a
movl -0x44(%rbp), %eax
subl $0x2040, %eax           # imm = 0x2040
je 0x45924
jmp 0x4582a
movl -0x44(%rbp), %eax
subl $0x2050, %eax           # imm = 0x2050
je 0x45971
jmp 0x459bb
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
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
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x45b20
jmp 0x45a08
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
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
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x45c90
jmp 0x45a08
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
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
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x46120
jmp 0x45a08
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
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
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x46250
jmp 0x45a08
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %r8
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
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
callq 0x46380
jmp 0x45a08
movq -0x18(%rbp), %rdi
movw -0x1a(%rbp), %si
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movw -0x32(%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 0x45a0a
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopw %cs:(%rax,%rax)