#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
unsigned char VIM_HAPI_DisplayPan(unsigned short, unsigned short,
                                  unsigned short, unsigned short,
                                  unsigned short, unsigned short);
unsigned char
V5H_DisplayJpeg_Pan(unsigned char *pbyJpegBuf, unsigned long dwBufLength,
                    unsigned short LcdOffsetX, unsigned short LcdOffsetY,
                    unsigned short JpegOffsetX, unsigned short JpegOffsetY,
                    unsigned short DisplayWidth, unsigned short DisplayHeight) {
  {
    return (VIM_HAPI_DisplayPan(LcdOffsetX, LcdOffsetY, JpegOffsetX,
                                JpegOffsetY, DisplayWidth, DisplayHeight));
  }
}


x86 assembly (clang, -O0):
<V5H_DisplayJpeg_Pan>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %r8d,-0x2c(%rbp)
mov    %ecx,%eax
mov    -0x2c(%rbp),%ecx
mov    %eax,-0x28(%rbp)
mov    %edx,%eax
mov    -0x28(%rbp),%edx
mov    %eax,-0x24(%rbp)
mov    %rsi,%rax
mov    -0x24(%rbp),%esi
mov    %rax,-0x20(%rbp)
mov    %rdi,%r8
mov    -0x20(%rbp),%rdi
mov    %r9w,%ax
mov    0x18(%rbp),%r9w
mov    0x10(%rbp),%r9w
mov    %r8,-0x8(%rbp)
mov    %rdi,-0x10(%rbp)
mov    %si,-0x12(%rbp)
mov    %dx,-0x14(%rbp)
mov    %cx,-0x16(%rbp)
mov    %ax,-0x18(%rbp)
mov    -0x12(%rbp),%di
mov    -0x14(%rbp),%si
mov    -0x16(%rbp),%dx
mov    -0x18(%rbp),%cx
mov    0x10(%rbp),%ax
movzwl %di,%edi
movzwl %si,%esi
movzwl %dx,%edx
movzwl %cx,%ecx
movzwl %ax,%r8d
movzwl 0x18(%rbp),%r9d
call   1030 <VIM_HAPI_DisplayPan@plt>
movzbl %al,%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<V5H_DisplayJpeg_Pan>:
mov    %r9d,%r10d
mov    %r8d,%eax
mov    %edx,%edi
movzwl 0x8(%rsp),%r8d
movzwl 0x10(%rsp),%r9d
mov    %ecx,%esi
mov    %eax,%edx
mov    %r10d,%ecx
jmp    1030 <VIM_HAPI_DisplayPan@plt>

LLVM IR (-O0):
define zeroext i8 @V5H_DisplayJpeg_Pan(i8* %0, i64 %1, i16 zeroext %2, i16 zeroext %3, i16 zeroext %4, i16 zeroext %5, i16 zeroext %6, i16 zeroext %7) {
%9 = alloca i8*
%10 = alloca i64
%11 = alloca i16
%12 = alloca i16
%13 = alloca i16
%14 = alloca i16
%15 = alloca i16
%16 = alloca i16
store i8* %0, i8** %9
store i64 %1, i64* %10
store i16 %2, i16* %11
store i16 %3, i16* %12
store i16 %4, i16* %13
store i16 %5, i16* %14
store i16 %6, i16* %15
store i16 %7, i16* %16
%17 = load i16, i16* %11
%18 = load i16, i16* %12
%19 = load i16, i16* %13
%20 = load i16, i16* %14
%21 = load i16, i16* %15
%22 = load i16, i16* %16
%23 = call zeroext i8 @VIM_HAPI_DisplayPan(i16 zeroext %17, i16 zeroext %18, i16 zeroext %19, i16 zeroext %20, i16 zeroext %21, i16 zeroext %22)
ret i8 %23
}

LLVM IR (-O2):
define zeroext i8 @V5H_DisplayJpeg_Pan(i8* nocapture readnone %0, i64 %1, i16 zeroext %2, i16 zeroext %3, i16 zeroext %4, i16 zeroext %5, i16 zeroext %6, i16 zeroext %7) {
%9 = tail call zeroext i8 @VIM_HAPI_DisplayPan(i16 zeroext %2, i16 zeroext %3, i16 zeroext %4, i16 zeroext %5, i16 zeroext %6, i16 zeroext %7)
ret i8 %9
}