#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 */
int /*<<< orphan*/ VIM_SIF_I2cWriteByte(int, int);
void SensorSetContrast_MC501CB(unsigned char val) {
  switch (val) {
  case 1:
    VIM_SIF_I2cWriteByte(0x03, 0x01);
    VIM_SIF_I2cWriteByte(0x60, 0x01);
    VIM_SIF_I2cWriteByte(0x61, 0x0a);
    VIM_SIF_I2cWriteByte(0x62, 0x25);
    VIM_SIF_I2cWriteByte(0x63, 0x33);
    VIM_SIF_I2cWriteByte(0x64, 0x49);
    VIM_SIF_I2cWriteByte(0x65, 0x65);
    VIM_SIF_I2cWriteByte(0x66, 0x79);
    VIM_SIF_I2cWriteByte(0x67, 0x87);
    VIM_SIF_I2cWriteByte(0x68, 0x93);
    VIM_SIF_I2cWriteByte(0x69, 0x9b);
    VIM_SIF_I2cWriteByte(0x6a, 0xa5);
    VIM_SIF_I2cWriteByte(0x6b, 0xb1);
    VIM_SIF_I2cWriteByte(0x6c, 0xc7);
    VIM_SIF_I2cWriteByte(0x6d, 0xda);
    VIM_SIF_I2cWriteByte(0x6e, 0xec);
    VIM_SIF_I2cWriteByte(0x6f, 0xff);
    break;
  case 2:
    VIM_SIF_I2cWriteByte(0x03, 0x01);
    VIM_SIF_I2cWriteByte(0x60, 0x01);
    VIM_SIF_I2cWriteByte(0x61, 0x06);
    VIM_SIF_I2cWriteByte(0x62, 0x1d);
    VIM_SIF_I2cWriteByte(0x63, 0x2b);
    VIM_SIF_I2cWriteByte(0x64, 0x3c);
    VIM_SIF_I2cWriteByte(0x65, 0x59);
    VIM_SIF_I2cWriteByte(0x66, 0x71);
    VIM_SIF_I2cWriteByte(0x67, 0x84);
    VIM_SIF_I2cWriteByte(0x68, 0x93);
    VIM_SIF_I2cWriteByte(0x69, 0xa0);
    VIM_SIF_I2cWriteByte(0x6a, 0xae);
    VIM_SIF_I2cWriteByte(0x6b, 0xbb);
    VIM_SIF_I2cWriteByte(0x6c, 0xd2);
    VIM_SIF_I2cWriteByte(0x6d, 0xe3);
    VIM_SIF_I2cWriteByte(0x6e, 0xf0);
    VIM_SIF_I2cWriteByte(0x6f, 0xff);
    break;
  case 3:
    VIM_SIF_I2cWriteByte(0x03, 0x01);
    VIM_SIF_I2cWriteByte(0x60, 0x01);
    VIM_SIF_I2cWriteByte(0x61, 0x03);
    VIM_SIF_I2cWriteByte(0x62, 0x13);
    VIM_SIF_I2cWriteByte(0x63, 0x1e);
    VIM_SIF_I2cWriteByte(0x64, 0x30);
    VIM_SIF_I2cWriteByte(0x65, 0x4f);
    VIM_SIF_I2cWriteByte(0x66, 0x69);
    VIM_SIF_I2cWriteByte(0x67, 0x80);
    VIM_SIF_I2cWriteByte(0x68, 0x93);
    VIM_SIF_I2cWriteByte(0x69, 0xa5);
    VIM_SIF_I2cWriteByte(0x6a, 0xb5);
    VIM_SIF_I2cWriteByte(0x6b, 0xc3);
    VIM_SIF_I2cWriteByte(0x6c, 0xd9);
    VIM_SIF_I2cWriteByte(0x6d, 0xea);
    VIM_SIF_I2cWriteByte(0x6e, 0xf6);
    VIM_SIF_I2cWriteByte(0x6f, 0xff);
    break;
  case 4:
    VIM_SIF_I2cWriteByte(0x03, 0x01);
    VIM_SIF_I2cWriteByte(0x60, 0x01);
    VIM_SIF_I2cWriteByte(0x61, 0x00);
    VIM_SIF_I2cWriteByte(0x62, 0x0a);
    VIM_SIF_I2cWriteByte(0x63, 0x14);
    VIM_SIF_I2cWriteByte(0x64, 0x24);
    VIM_SIF_I2cWriteByte(0x65, 0x44);
    VIM_SIF_I2cWriteByte(0x66, 0x5e);
    VIM_SIF_I2cWriteByte(0x67, 0x77);
    VIM_SIF_I2cWriteByte(0x68, 0x93);
    VIM_SIF_I2cWriteByte(0x69, 0xa9);
    VIM_SIF_I2cWriteByte(0x6a, 0xbb);
    VIM_SIF_I2cWriteByte(0x6b, 0xca);
    VIM_SIF_I2cWriteByte(0x6c, 0xe0);
    VIM_SIF_I2cWriteByte(0x6d, 0xef);
    VIM_SIF_I2cWriteByte(0x6e, 0xfa);
    VIM_SIF_I2cWriteByte(0x6f, 0xff);
    break;
  case 5:
    VIM_SIF_I2cWriteByte(0x03, 0x01);
    VIM_SIF_I2cWriteByte(0x60, 0x01);
    VIM_SIF_I2cWriteByte(0x61, 0x00);
    VIM_SIF_I2cWriteByte(0x62, 0x05);
    VIM_SIF_I2cWriteByte(0x63, 0x0b);
    VIM_SIF_I2cWriteByte(0x64, 0x1b);
    VIM_SIF_I2cWriteByte(0x65, 0x37);
    VIM_SIF_I2cWriteByte(0x66, 0x54);
    VIM_SIF_I2cWriteByte(0x67, 0x72);
    VIM_SIF_I2cWriteByte(0x68, 0x93);
    VIM_SIF_I2cWriteByte(0x69, 0xae);
    VIM_SIF_I2cWriteByte(0x6a, 0xc3);
    VIM_SIF_I2cWriteByte(0x6b, 0xd1);
    VIM_SIF_I2cWriteByte(0x6c, 0xe6);
    VIM_SIF_I2cWriteByte(0x6d, 0xf6);
    VIM_SIF_I2cWriteByte(0x6e, 0xfd);
    VIM_SIF_I2cWriteByte(0x6f, 0xff);
    break;
  default:
    break;
  }
}


x86 assembly (clang, -O0):
<SensorSetContrast_MC501CB>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
movzbl -0x1(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x4,%eax
ja     1653 <SensorSetContrast_MC501CB+0x543>
mov    -0x10(%rbp),%rax
lea    0xec1(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
mov    $0xa,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    $0x25,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    $0x33,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    $0x49,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%esi
mov    %esi,%edi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    $0x79,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    $0x87,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    $0x9b,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    $0xa5,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    $0xb1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    $0xc7,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    $0xda,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    $0xec,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
mov    $0x6,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    $0x1d,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    $0x2b,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    $0x3c,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%edi
mov    $0x59,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    $0x71,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    $0x84,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    $0xa0,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    $0xae,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    $0xbb,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    $0xd2,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    $0xe3,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    $0xf0,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
mov    $0x3,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    $0x13,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    $0x1e,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    $0x30,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%edi
mov    $0x4f,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    $0x69,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    $0x80,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    $0xa5,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    $0xb5,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    $0xc3,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    $0xd9,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    $0xea,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    $0xf6,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
xor    %esi,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    $0xa,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    $0x14,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    $0x24,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%edi
mov    $0x44,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    $0x5e,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    $0x77,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    $0xa9,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    $0xbb,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    $0xca,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    $0xe0,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    $0xef,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    $0xfa,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
xor    %esi,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    $0x5,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    $0xb,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    $0x1b,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%edi
mov    $0x37,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    $0x54,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    $0x72,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    $0xae,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    $0xc3,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    $0xd1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    $0xe6,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    $0xf6,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    $0xfd,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
jmp    1658 <SensorSetContrast_MC501CB+0x548>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<SensorSetContrast_MC501CB>:
add    $0xff,%dil
cmp    $0x4,%dil
ja     12ca <SensorSetContrast_MC501CB+0x1ba>
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
movsbq %dil,%rax
lea    0xec9(%rip),%rcx
mov    (%rcx,%rax,4),%r14d
lea    0xed2(%rip),%rcx
mov    (%rcx,%rax,4),%ebp
lea    0xedc(%rip),%rcx
mov    (%rcx,%rax,4),%ebx
lea    0xee6(%rip),%rcx
mov    (%rcx,%rax,4),%r13d
lea    0xeef(%rip),%rcx
mov    (%rcx,%rax,4),%r12d
lea    0xef8(%rip),%rcx
mov    (%rcx,%rax,4),%r15d
lea    0xf01(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0xc(%rsp)
lea    0xf07(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0x10(%rsp)
lea    0xf0d(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0x14(%rsp)
lea    0xf13(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0x18(%rsp)
lea    0xf19(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0x1c(%rsp)
lea    0xf1f(%rip),%rcx
mov    (%rcx,%rax,4),%ecx
mov    %ecx,0x20(%rsp)
lea    0xf25(%rip),%rcx
mov    (%rcx,%rax,4),%eax
mov    %eax,0x24(%rsp)
mov    $0x3,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x60,%edi
mov    $0x1,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x61,%edi
mov    %r14d,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x62,%edi
mov    %ebp,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x63,%edi
mov    %ebx,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x64,%edi
mov    %r13d,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x65,%edi
mov    %r12d,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x66,%edi
mov    %r15d,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x67,%edi
mov    0xc(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x68,%edi
mov    $0x93,%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x69,%edi
mov    0x10(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6a,%edi
mov    0x14(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6b,%edi
mov    0x18(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6c,%edi
mov    0x1c(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6d,%edi
mov    0x20(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6e,%edi
mov    0x24(%rsp),%esi
call   1030 <VIM_SIF_I2cWriteByte@plt>
mov    $0x6f,%edi
mov    $0xff,%esi
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <VIM_SIF_I2cWriteByte@plt>
ret

LLVM IR (-O0):
define void @SensorSetContrast_MC501CB(i8 zeroext %0) {
%2 = alloca i8
store i8 %0, i8* %2
%3 = load i8, i8* %2
%4 = zext i8 %3 to i32
switch i32 %4, label %95 [
i32 1, label %5
i32 2, label %23
i32 3, label %41
i32 4, label %59
i32 5, label %77
]
5: ; preds = %1
%6 = call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%7 = call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%8 = call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 10)
%9 = call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 37)
%10 = call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 51)
%11 = call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 73)
%12 = call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 101)
%13 = call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 121)
%14 = call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 135)
%15 = call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%16 = call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 155)
%17 = call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 165)
%18 = call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 177)
%19 = call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 199)
%20 = call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 218)
%21 = call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 236)
%22 = call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %96
23: ; preds = %1
%24 = call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%25 = call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%26 = call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 6)
%27 = call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 29)
%28 = call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 43)
%29 = call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 60)
%30 = call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 89)
%31 = call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 113)
%32 = call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 132)
%33 = call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%34 = call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 160)
%35 = call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 174)
%36 = call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 187)
%37 = call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 210)
%38 = call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 227)
%39 = call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 240)
%40 = call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %96
41: ; preds = %1
%42 = call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%43 = call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%44 = call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 3)
%45 = call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 19)
%46 = call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 30)
%47 = call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 48)
%48 = call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 79)
%49 = call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 105)
%50 = call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 128)
%51 = call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%52 = call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 165)
%53 = call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 181)
%54 = call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 195)
%55 = call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 217)
%56 = call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 234)
%57 = call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 246)
%58 = call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %96
59: ; preds = %1
%60 = call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%61 = call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%62 = call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 0)
%63 = call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 10)
%64 = call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 20)
%65 = call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 36)
%66 = call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 68)
%67 = call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 94)
%68 = call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 119)
%69 = call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%70 = call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 169)
%71 = call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 187)
%72 = call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 202)
%73 = call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 224)
%74 = call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 239)
%75 = call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 250)
%76 = call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %96
77: ; preds = %1
%78 = call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%79 = call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%80 = call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 0)
%81 = call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 5)
%82 = call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 11)
%83 = call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 27)
%84 = call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 55)
%85 = call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 84)
%86 = call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 114)
%87 = call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%88 = call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 174)
%89 = call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 195)
%90 = call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 209)
%91 = call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 230)
%92 = call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 246)
%93 = call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 253)
%94 = call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %96
95: ; preds = %1
br label %96
96: ; preds = %95, %77, %59, %41, %23, %5
ret void
}

LLVM IR (-O2):
@switch.table.SensorSetContrast_MC501CB = [5 x i32] [i32 10, i32 6, i32 3, i32 0, i32 0]
@switch.table.SensorSetContrast_MC501CB.1 = [5 x i32] [i32 37, i32 29, i32 19, i32 10, i32 5]
@switch.table.SensorSetContrast_MC501CB.2 = [5 x i32] [i32 51, i32 43, i32 30, i32 20, i32 11]
@switch.table.SensorSetContrast_MC501CB.3 = [5 x i32] [i32 73, i32 60, i32 48, i32 36, i32 27]
@switch.table.SensorSetContrast_MC501CB.4 = [5 x i32] [i32 101, i32 89, i32 79, i32 68, i32 55]
@switch.table.SensorSetContrast_MC501CB.5 = [5 x i32] [i32 121, i32 113, i32 105, i32 94, i32 84]
@switch.table.SensorSetContrast_MC501CB.6 = [5 x i32] [i32 135, i32 132, i32 128, i32 119, i32 114]
@switch.table.SensorSetContrast_MC501CB.7 = [5 x i32] [i32 155, i32 160, i32 165, i32 169, i32 174]
@switch.table.SensorSetContrast_MC501CB.8 = [5 x i32] [i32 165, i32 174, i32 181, i32 187, i32 195]
@switch.table.SensorSetContrast_MC501CB.9 = [5 x i32] [i32 177, i32 187, i32 195, i32 202, i32 209]
@switch.table.SensorSetContrast_MC501CB.10 = [5 x i32] [i32 199, i32 210, i32 217, i32 224, i32 230]
@switch.table.SensorSetContrast_MC501CB.11 = [5 x i32] [i32 218, i32 227, i32 234, i32 239, i32 246]
@switch.table.SensorSetContrast_MC501CB.12 = [5 x i32] [i32 236, i32 240, i32 246, i32 250, i32 253]
define void @SensorSetContrast_MC501CB(i8 zeroext %0) {
%2 = add i8 %0, -1
%3 = icmp ult i8 %2, 5
br i1 %3, label %4, label %61
4: ; preds = %1
%5 = sext i8 %2 to i64
%6 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB, i64 0, i64 %5
%7 = load i32, i32* %6
%8 = sext i8 %2 to i64
%9 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.1, i64 0, i64 %8
%10 = load i32, i32* %9
%11 = sext i8 %2 to i64
%12 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.2, i64 0, i64 %11
%13 = load i32, i32* %12
%14 = sext i8 %2 to i64
%15 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.3, i64 0, i64 %14
%16 = load i32, i32* %15
%17 = sext i8 %2 to i64
%18 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.4, i64 0, i64 %17
%19 = load i32, i32* %18
%20 = sext i8 %2 to i64
%21 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.5, i64 0, i64 %20
%22 = load i32, i32* %21
%23 = sext i8 %2 to i64
%24 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.6, i64 0, i64 %23
%25 = load i32, i32* %24
%26 = sext i8 %2 to i64
%27 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.7, i64 0, i64 %26
%28 = load i32, i32* %27
%29 = sext i8 %2 to i64
%30 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.8, i64 0, i64 %29
%31 = load i32, i32* %30
%32 = sext i8 %2 to i64
%33 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.9, i64 0, i64 %32
%34 = load i32, i32* %33
%35 = sext i8 %2 to i64
%36 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.10, i64 0, i64 %35
%37 = load i32, i32* %36
%38 = sext i8 %2 to i64
%39 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.11, i64 0, i64 %38
%40 = load i32, i32* %39
%41 = sext i8 %2 to i64
%42 = getelementptr inbounds [5 x i32], [5 x i32]* @switch.table.SensorSetContrast_MC501CB.12, i64 0, i64 %41
%43 = load i32, i32* %42
%44 = tail call i32 @VIM_SIF_I2cWriteByte(i32 3, i32 1)
%45 = tail call i32 @VIM_SIF_I2cWriteByte(i32 96, i32 1)
%46 = tail call i32 @VIM_SIF_I2cWriteByte(i32 97, i32 %7)
%47 = tail call i32 @VIM_SIF_I2cWriteByte(i32 98, i32 %10)
%48 = tail call i32 @VIM_SIF_I2cWriteByte(i32 99, i32 %13)
%49 = tail call i32 @VIM_SIF_I2cWriteByte(i32 100, i32 %16)
%50 = tail call i32 @VIM_SIF_I2cWriteByte(i32 101, i32 %19)
%51 = tail call i32 @VIM_SIF_I2cWriteByte(i32 102, i32 %22)
%52 = tail call i32 @VIM_SIF_I2cWriteByte(i32 103, i32 %25)
%53 = tail call i32 @VIM_SIF_I2cWriteByte(i32 104, i32 147)
%54 = tail call i32 @VIM_SIF_I2cWriteByte(i32 105, i32 %28)
%55 = tail call i32 @VIM_SIF_I2cWriteByte(i32 106, i32 %31)
%56 = tail call i32 @VIM_SIF_I2cWriteByte(i32 107, i32 %34)
%57 = tail call i32 @VIM_SIF_I2cWriteByte(i32 108, i32 %37)
%58 = tail call i32 @VIM_SIF_I2cWriteByte(i32 109, i32 %40)
%59 = tail call i32 @VIM_SIF_I2cWriteByte(i32 110, i32 %43)
%60 = tail call i32 @VIM_SIF_I2cWriteByte(i32 111, i32 255)
br label %61
61: ; preds = %1, %4
ret void
}