#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
unsigned int sis32toh(unsigned int);
scalar_t__ sisRead(int /*<<< orphan*/ *, unsigned int *, int, char *, int);
int condAttribute(FILE *fp, char *err, int errlen) {
  unsigned int attribtype, unused;
  if (sisRead(fp, &attribtype, 4, err, errlen))
    return 1;
  attribtype = sis32toh(attribtype);
  if (sisRead(fp, &unused, 4, err, errlen))
    return 1;
  if (attribtype >= 0x2000) {
    printf("option %d", attribtype - 0x2000);
  } else {
    switch (attribtype) {
    case 0x00:
      printf("Manufacturer");
      break;
    case 0x01:
      printf("ManufacturerHardwareRev");
      break;
    case 0x02:
      printf("ManufacturerSoftwareRev");
      break;
    case 0x03:
      printf("ManufacturerSoftwareBuild");
      break;
    case 0x04:
      printf("Model");
      break;
    case 0x05:
      printf("MachineUID");
      break;
    case 0x06:
      printf("DeviceFamily");
      break;
    case 0x07:
      printf("DeviceFamilyRev");
      break;
    case 0x08:
      printf("CPU type");
      break;
    case 0x09:
      printf("CPU arch");
      break;
    case 0x0a:
      printf("CPU ABI");
      break;
    case 0x0b:
      printf("CPU speed");
      break;
    case 0x0e:
      printf("System Tick Period");
      break;
    case 0x0f:
      printf("Total RAM");
      break;
    case 0x10:
      printf("Free RAM");
      break;
    case 0x11:
      printf("Total ROM");
      break;
    case 0x12:
      printf("Memory Page Size");
      break;
    case 0x15:
      printf("Power backup");
      break;
    case 0x18:
      printf("Keyboard");
      break;
    case 0x19:
      printf("Keyboard device key");
      break;
    case 0x1a:
      printf("Keyboard application key");
      break;
    case 0x1b:
      printf("Keyboard click");
      break;
    case 0x1e:
      printf("Keyboard clickVolMax");
      break;
    case 0x1f:
      printf("Screen width pixel");
      break;
    case 0x20:
      printf("Screen height pixel");
      break;
    case 0x21:
      printf("Screen width twips");
      break;
    case 0x22:
      printf("Screen height twips");
      break;
    case 0x23:
      printf("Display colors");
      break;
    case 0x26:
      printf("Display max contrast");
      break;
    case 0x27:
      printf("Backlight");
      break;
    case 0x29:
      printf("Pen");
      break;
    case 0x2a:
      printf("PenX");
      break;
    case 0x2b:
      printf("PenY");
      break;
    case 0x2c:
      printf("Pen display on");
      break;
    case 0x2d:
      printf("Pen click");
      break;
    case 0x30:
      printf("Pen volume max");
      break;
    case 0x31:
      printf("Mouse");
      break;
    case 0x32:
      printf("MouseX");
      break;
    case 0x33:
      printf("MouseY");
      break;
    case 0x37:
      printf("Mouse buttons");
      break;
    case 0x3a:
      printf("Case switch");
      break;
    case 0x3d:
      printf("Leds");
      break;
    case 0x3f:
      printf("Integrated phone");
      break;
    case 0x41:
      printf("Display brightness max");
      break;
    case 0x42:
      printf("Keyboard backlight state");
      break;
    case 0x43:
      printf("Accessory power");
      break;
    case 0x59:
      printf("Number of supported HAL attributes");
      break;
    case 0x1000:
      printf("Machine language");
      break;
    case 0x1001:
      printf("Remote install");
      break;
    default:
      printf("attribute %04x", attribtype);
      break;
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<condAttribute>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %edx,-0x1c(%rbp)
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rcx
mov    -0x1c(%rbp),%r8d
lea    -0x20(%rbp),%rsi
mov    $0x4,%edx
call   1050 <sisRead@plt>
cmp    $0x0,%rax
je     1173 <condAttribute+0x43>
movl   $0x1,-0x4(%rbp)
jmp    18de <condAttribute+0x7ae>
mov    -0x20(%rbp),%edi
call   1030 <sis32toh@plt>
mov    %eax,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rcx
mov    -0x1c(%rbp),%r8d
lea    -0x24(%rbp),%rsi
mov    $0x4,%edx
call   1050 <sisRead@plt>
cmp    $0x0,%rax
je     11ae <condAttribute+0x7e>
movl   $0x1,-0x4(%rbp)
jmp    18de <condAttribute+0x7ae>
cmpl   $0x2000,-0x20(%rbp)
jb     11d7 <condAttribute+0xa7>
mov    -0x20(%rbp),%esi
sub    $0x2000,%esi
lea    0xe35(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d7 <condAttribute+0x7a7>
mov    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
test   %eax,%eax
je     151e <condAttribute+0x3ee>
jmp    11ea <condAttribute+0xba>
mov    -0x28(%rbp),%eax
sub    $0x1,%eax
je     1531 <condAttribute+0x401>
jmp    11fb <condAttribute+0xcb>
mov    -0x28(%rbp),%eax
sub    $0x2,%eax
je     1544 <condAttribute+0x414>
jmp    120c <condAttribute+0xdc>
mov    -0x28(%rbp),%eax
sub    $0x3,%eax
je     1557 <condAttribute+0x427>
jmp    121d <condAttribute+0xed>
mov    -0x28(%rbp),%eax
sub    $0x4,%eax
je     156a <condAttribute+0x43a>
jmp    122e <condAttribute+0xfe>
mov    -0x28(%rbp),%eax
sub    $0x5,%eax
je     157d <condAttribute+0x44d>
jmp    123f <condAttribute+0x10f>
mov    -0x28(%rbp),%eax
sub    $0x6,%eax
je     1590 <condAttribute+0x460>
jmp    1250 <condAttribute+0x120>
mov    -0x28(%rbp),%eax
sub    $0x7,%eax
je     15a3 <condAttribute+0x473>
jmp    1261 <condAttribute+0x131>
mov    -0x28(%rbp),%eax
sub    $0x8,%eax
je     15b6 <condAttribute+0x486>
jmp    1272 <condAttribute+0x142>
mov    -0x28(%rbp),%eax
sub    $0x9,%eax
je     15c9 <condAttribute+0x499>
jmp    1283 <condAttribute+0x153>
mov    -0x28(%rbp),%eax
sub    $0xa,%eax
je     15dc <condAttribute+0x4ac>
jmp    1294 <condAttribute+0x164>
mov    -0x28(%rbp),%eax
sub    $0xb,%eax
je     15ef <condAttribute+0x4bf>
jmp    12a5 <condAttribute+0x175>
mov    -0x28(%rbp),%eax
sub    $0xe,%eax
je     1602 <condAttribute+0x4d2>
jmp    12b6 <condAttribute+0x186>
mov    -0x28(%rbp),%eax
sub    $0xf,%eax
je     1615 <condAttribute+0x4e5>
jmp    12c7 <condAttribute+0x197>
mov    -0x28(%rbp),%eax
sub    $0x10,%eax
je     1628 <condAttribute+0x4f8>
jmp    12d8 <condAttribute+0x1a8>
mov    -0x28(%rbp),%eax
sub    $0x11,%eax
je     163b <condAttribute+0x50b>
jmp    12e9 <condAttribute+0x1b9>
mov    -0x28(%rbp),%eax
sub    $0x12,%eax
je     164e <condAttribute+0x51e>
jmp    12fa <condAttribute+0x1ca>
mov    -0x28(%rbp),%eax
sub    $0x15,%eax
je     1661 <condAttribute+0x531>
jmp    130b <condAttribute+0x1db>
mov    -0x28(%rbp),%eax
sub    $0x18,%eax
je     1674 <condAttribute+0x544>
jmp    131c <condAttribute+0x1ec>
mov    -0x28(%rbp),%eax
sub    $0x19,%eax
je     1687 <condAttribute+0x557>
jmp    132d <condAttribute+0x1fd>
mov    -0x28(%rbp),%eax
sub    $0x1a,%eax
je     169a <condAttribute+0x56a>
jmp    133e <condAttribute+0x20e>
mov    -0x28(%rbp),%eax
sub    $0x1b,%eax
je     16ad <condAttribute+0x57d>
jmp    134f <condAttribute+0x21f>
mov    -0x28(%rbp),%eax
sub    $0x1e,%eax
je     16c0 <condAttribute+0x590>
jmp    1360 <condAttribute+0x230>
mov    -0x28(%rbp),%eax
sub    $0x1f,%eax
je     16d3 <condAttribute+0x5a3>
jmp    1371 <condAttribute+0x241>
mov    -0x28(%rbp),%eax
sub    $0x20,%eax
je     16e6 <condAttribute+0x5b6>
jmp    1382 <condAttribute+0x252>
mov    -0x28(%rbp),%eax
sub    $0x21,%eax
je     16f9 <condAttribute+0x5c9>
jmp    1393 <condAttribute+0x263>
mov    -0x28(%rbp),%eax
sub    $0x22,%eax
je     170c <condAttribute+0x5dc>
jmp    13a4 <condAttribute+0x274>
mov    -0x28(%rbp),%eax
sub    $0x23,%eax
je     171f <condAttribute+0x5ef>
jmp    13b5 <condAttribute+0x285>
mov    -0x28(%rbp),%eax
sub    $0x26,%eax
je     1732 <condAttribute+0x602>
jmp    13c6 <condAttribute+0x296>
mov    -0x28(%rbp),%eax
sub    $0x27,%eax
je     1745 <condAttribute+0x615>
jmp    13d7 <condAttribute+0x2a7>
mov    -0x28(%rbp),%eax
sub    $0x29,%eax
je     1758 <condAttribute+0x628>
jmp    13e8 <condAttribute+0x2b8>
mov    -0x28(%rbp),%eax
sub    $0x2a,%eax
je     176b <condAttribute+0x63b>
jmp    13f9 <condAttribute+0x2c9>
mov    -0x28(%rbp),%eax
sub    $0x2b,%eax
je     177e <condAttribute+0x64e>
jmp    140a <condAttribute+0x2da>
mov    -0x28(%rbp),%eax
sub    $0x2c,%eax
je     1791 <condAttribute+0x661>
jmp    141b <condAttribute+0x2eb>
mov    -0x28(%rbp),%eax
sub    $0x2d,%eax
je     17a4 <condAttribute+0x674>
jmp    142c <condAttribute+0x2fc>
mov    -0x28(%rbp),%eax
sub    $0x30,%eax
je     17b7 <condAttribute+0x687>
jmp    143d <condAttribute+0x30d>
mov    -0x28(%rbp),%eax
sub    $0x31,%eax
je     17ca <condAttribute+0x69a>
jmp    144e <condAttribute+0x31e>
mov    -0x28(%rbp),%eax
sub    $0x32,%eax
je     17dd <condAttribute+0x6ad>
jmp    145f <condAttribute+0x32f>
mov    -0x28(%rbp),%eax
sub    $0x33,%eax
je     17f0 <condAttribute+0x6c0>
jmp    1470 <condAttribute+0x340>
mov    -0x28(%rbp),%eax
sub    $0x37,%eax
je     1803 <condAttribute+0x6d3>
jmp    1481 <condAttribute+0x351>
mov    -0x28(%rbp),%eax
sub    $0x3a,%eax
je     1816 <condAttribute+0x6e6>
jmp    1492 <condAttribute+0x362>
mov    -0x28(%rbp),%eax
sub    $0x3d,%eax
je     1829 <condAttribute+0x6f9>
jmp    14a3 <condAttribute+0x373>
mov    -0x28(%rbp),%eax
sub    $0x3f,%eax
je     183c <condAttribute+0x70c>
jmp    14b4 <condAttribute+0x384>
mov    -0x28(%rbp),%eax
sub    $0x41,%eax
je     184f <condAttribute+0x71f>
jmp    14c5 <condAttribute+0x395>
mov    -0x28(%rbp),%eax
sub    $0x42,%eax
je     1862 <condAttribute+0x732>
jmp    14d6 <condAttribute+0x3a6>
mov    -0x28(%rbp),%eax
sub    $0x43,%eax
je     1875 <condAttribute+0x745>
jmp    14e7 <condAttribute+0x3b7>
mov    -0x28(%rbp),%eax
sub    $0x59,%eax
je     1888 <condAttribute+0x758>
jmp    14f8 <condAttribute+0x3c8>
mov    -0x28(%rbp),%eax
sub    $0x1000,%eax
je     189b <condAttribute+0x76b>
jmp    150b <condAttribute+0x3db>
mov    -0x28(%rbp),%eax
sub    $0x1001,%eax
je     18ae <condAttribute+0x77e>
jmp    18c1 <condAttribute+0x791>
lea    0xae5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xadf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xae4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xae9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xaf0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xae3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xadb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xad5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xad2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xac8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xabe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xab3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xaaa(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xaaa(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xaa1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa97(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa8e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa8c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa86(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa7c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa7d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa83(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa7f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa81(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa81(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa82(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa82(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa83(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa7f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa81(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa78(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa69(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa5b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa4d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa49(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa40(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa3c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa2f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa23(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa17(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa12(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa0b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0x9fd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0x9fb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0x9ff(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa05(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa02(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa12(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
lea    0xa10(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d2 <condAttribute+0x7a2>
mov    -0x20(%rbp),%esi
lea    0xa09(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    18d7 <condAttribute+0x7a7>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<condAttribute>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %edx,%r15d
mov    %rsi,%rbx
mov    %rdi,%rbp
mov    %rsp,%rsi
mov    $0x4,%edx
mov    %rbx,%rcx
mov    %r15d,%r8d
call   1050 <sisRead@plt>
mov    $0x1,%r14d
test   %rax,%rax
jne    1410 <condAttribute+0x2e0>
mov    (%rsp),%edi
call   1030 <sis32toh@plt>
mov    %eax,(%rsp)
lea    0x4(%rsp),%rsi
mov    %rbp,%rdi
mov    $0x4,%edx
mov    %rbx,%rcx
mov    %r15d,%r8d
call   1050 <sisRead@plt>
test   %rax,%rax
jne    1410 <condAttribute+0x2e0>
mov    (%rsp),%esi
cmp    $0x2000,%esi
jb     11b5 <condAttribute+0x85>
add    $0xffffe000,%esi
lea    0xfc2(%rip),%rdi
xor    %r14d,%r14d
xor    %eax,%eax
call   1040 <printf@plt>
jmp    1410 <condAttribute+0x2e0>
cmp    $0x59,%esi
ja     11d8 <condAttribute+0xa8>
mov    %esi,%eax
lea    0xe3d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf9f(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
cmp    $0x1000,%esi
je     13ff <condAttribute+0x2cf>
cmp    $0x1001,%esi
jne    11f8 <condAttribute+0xc8>
lea    0x123a(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0x123d(%rip),%rdi
jmp    11a6 <condAttribute+0x76>
lea    0xf77(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf83(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf8f(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf9d(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf97(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf96(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf97(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf9b(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf98(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf95(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf91(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf8f(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf96(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf94(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf91(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf8f(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf94(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf95(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf92(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xf9a(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfa7(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfaa(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfb3(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfba(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfc2(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfc9(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd1(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd4(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfdd(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfdb(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd3(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcc(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfc5(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcb(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcc(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd2(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcf(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcd(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcb(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd0(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd3(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfcf(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfd7(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xfe5(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xff5(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0xffc(%rip),%rdi
jmp    1406 <condAttribute+0x2d6>
lea    0x1016(%rip),%rdi
xor    %r14d,%r14d
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14d,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [10 x i8] c"option %d\00"
@.str.1 = [13 x i8] c"Manufacturer\00"
@.str.2 = [24 x i8] c"ManufacturerHardwareRev\00"
@.str.3 = [24 x i8] c"ManufacturerSoftwareRev\00"
@.str.4 = [26 x i8] c"ManufacturerSoftwareBuild\00"
@.str.5 = [6 x i8] c"Model\00"
@.str.6 = [11 x i8] c"MachineUID\00"
@.str.7 = [13 x i8] c"DeviceFamily\00"
@.str.8 = [16 x i8] c"DeviceFamilyRev\00"
@.str.9 = [9 x i8] c"CPU type\00"
@.str.10 = [9 x i8] c"CPU arch\00"
@.str.11 = [8 x i8] c"CPU ABI\00"
@.str.12 = [10 x i8] c"CPU speed\00"
@.str.13 = [19 x i8] c"System Tick Period\00"
@.str.14 = [10 x i8] c"Total RAM\00"
@.str.15 = [9 x i8] c"Free RAM\00"
@.str.16 = [10 x i8] c"Total ROM\00"
@.str.17 = [17 x i8] c"Memory Page Size\00"
@.str.18 = [13 x i8] c"Power backup\00"
@.str.19 = [9 x i8] c"Keyboard\00"
@.str.20 = [20 x i8] c"Keyboard device key\00"
@.str.21 = [25 x i8] c"Keyboard application key\00"
@.str.22 = [15 x i8] c"Keyboard click\00"
@.str.23 = [21 x i8] c"Keyboard clickVolMax\00"
@.str.24 = [19 x i8] c"Screen width pixel\00"
@.str.25 = [20 x i8] c"Screen height pixel\00"
@.str.26 = [19 x i8] c"Screen width twips\00"
@.str.27 = [20 x i8] c"Screen height twips\00"
@.str.28 = [15 x i8] c"Display colors\00"
@.str.29 = [21 x i8] c"Display max contrast\00"
@.str.30 = [10 x i8] c"Backlight\00"
@.str.31 = [4 x i8] c"Pen\00"
@.str.32 = [5 x i8] c"PenX\00"
@.str.33 = [5 x i8] c"PenY\00"
@.str.34 = [15 x i8] c"Pen display on\00"
@.str.35 = [10 x i8] c"Pen click\00"
@.str.36 = [15 x i8] c"Pen volume max\00"
@.str.37 = [6 x i8] c"Mouse\00"
@.str.38 = [7 x i8] c"MouseX\00"
@.str.39 = [7 x i8] c"MouseY\00"
@.str.40 = [14 x i8] c"Mouse buttons\00"
@.str.41 = [12 x i8] c"Case switch\00"
@.str.42 = [5 x i8] c"Leds\00"
@.str.43 = [17 x i8] c"Integrated phone\00"
@.str.44 = [23 x i8] c"Display brightness max\00"
@.str.45 = [25 x i8] c"Keyboard backlight state\00"
@.str.46 = [16 x i8] c"Accessory power\00"
@.str.47 = [35 x i8] c"Number of supported HAL attributes\00"
@.str.48 = [17 x i8] c"Machine language\00"
@.str.49 = [15 x i8] c"Remote install\00"
@.str.50 = [15 x i8] c"attribute %04x\00"
define i32 @condAttribute(i32* %0, i8* %1, i32 %2) {
%4 = alloca i32
%5 = alloca i32*
%6 = alloca i8*
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
store i32* %0, i32** %5
store i8* %1, i8** %6
store i32 %2, i32* %7
%10 = load i32*, i32** %5
%11 = load i8*, i8** %6
%12 = load i32, i32* %7
%13 = call i64 @sisRead(i32* %10, i32* %8, i32 4, i8* %11, i32 %12)
%14 = icmp ne i64 %13, 0
br i1 %14, label %15, label %16
15: ; preds = %3
store i32 1, i32* %4
br label %137
16: ; preds = %3
%17 = load i32, i32* %8
%18 = call i32 @sis32toh(i32 %17)
store i32 %18, i32* %8
%19 = load i32*, i32** %5
%20 = load i8*, i8** %6
%21 = load i32, i32* %7
%22 = call i64 @sisRead(i32* %19, i32* %9, i32 4, i8* %20, i32 %21)
%23 = icmp ne i64 %22, 0
br i1 %23, label %24, label %25
24: ; preds = %16
store i32 1, i32* %4
br label %137
25: ; preds = %16
%26 = load i32, i32* %8
%27 = icmp uge i32 %26, 8192
br i1 %27, label %28, label %32
28: ; preds = %25
%29 = load i32, i32* %8
%30 = sub i32 %29, 8192
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i32 %30)
br label %136
32: ; preds = %25
%33 = load i32, i32* %8
switch i32 %33, label %132 [
i32 0, label %34
i32 1, label %36
i32 2, label %38
i32 3, label %40
i32 4, label %42
i32 5, label %44
i32 6, label %46
i32 7, label %48
i32 8, label %50
i32 9, label %52
i32 10, label %54
i32 11, label %56
i32 14, label %58
i32 15, label %60
i32 16, label %62
i32 17, label %64
i32 18, label %66
i32 21, label %68
i32 24, label %70
i32 25, label %72
i32 26, label %74
i32 27, label %76
i32 30, label %78
i32 31, label %80
i32 32, label %82
i32 33, label %84
i32 34, label %86
i32 35, label %88
i32 38, label %90
i32 39, label %92
i32 41, label %94
i32 42, label %96
i32 43, label %98
i32 44, label %100
i32 45, label %102
i32 48, label %104
i32 49, label %106
i32 50, label %108
i32 51, label %110
i32 55, label %112
i32 58, label %114
i32 61, label %116
i32 63, label %118
i32 65, label %120
i32 66, label %122
i32 67, label %124
i32 89, label %126
i32 4096, label %128
i32 4097, label %130
]
34: ; preds = %32
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
br label %135
36: ; preds = %32
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.2, i64 0, i64 0))
br label %135
38: ; preds = %32
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.3, i64 0, i64 0))
br label %135
40: ; preds = %32
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0))
br label %135
42: ; preds = %32
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
br label %135
44: ; preds = %32
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
br label %135
46: ; preds = %32
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0))
br label %135
48: ; preds = %32
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0))
br label %135
50: ; preds = %32
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.9, i64 0, i64 0))
br label %135
52: ; preds = %32
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.10, i64 0, i64 0))
br label %135
54: ; preds = %32
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0))
br label %135
56: ; preds = %32
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.12, i64 0, i64 0))
br label %135
58: ; preds = %32
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0))
br label %135
60: ; preds = %32
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0))
br label %135
62: ; preds = %32
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0))
br label %135
64: ; preds = %32
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.16, i64 0, i64 0))
br label %135
66: ; preds = %32
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.17, i64 0, i64 0))
br label %135
68: ; preds = %32
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %135
70: ; preds = %32
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
br label %135
72: ; preds = %32
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.20, i64 0, i64 0))
br label %135
74: ; preds = %32
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.21, i64 0, i64 0))
br label %135
76: ; preds = %32
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0))
br label %135
78: ; preds = %32
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.23, i64 0, i64 0))
br label %135
80: ; preds = %32
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.24, i64 0, i64 0))
br label %135
82: ; preds = %32
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.25, i64 0, i64 0))
br label %135
84: ; preds = %32
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.26, i64 0, i64 0))
br label %135
86: ; preds = %32
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.27, i64 0, i64 0))
br label %135
88: ; preds = %32
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.28, i64 0, i64 0))
br label %135
90: ; preds = %32
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.29, i64 0, i64 0))
br label %135
92: ; preds = %32
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.30, i64 0, i64 0))
br label %135
94: ; preds = %32
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
br label %135
96: ; preds = %32
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.32, i64 0, i64 0))
br label %135
98: ; preds = %32
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0))
br label %135
100: ; preds = %32
%101 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i64 0, i64 0))
br label %135
102: ; preds = %32
%103 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.35, i64 0, i64 0))
br label %135
104: ; preds = %32
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.36, i64 0, i64 0))
br label %135
106: ; preds = %32
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.37, i64 0, i64 0))
br label %135
108: ; preds = %32
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
br label %135
110: ; preds = %32
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.39, i64 0, i64 0))
br label %135
112: ; preds = %32
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.40, i64 0, i64 0))
br label %135
114: ; preds = %32
%115 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0))
br label %135
116: ; preds = %32
%117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0))
br label %135
118: ; preds = %32
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.43, i64 0, i64 0))
br label %135
120: ; preds = %32
%121 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.44, i64 0, i64 0))
br label %135
122: ; preds = %32
%123 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.45, i64 0, i64 0))
br label %135
124: ; preds = %32
%125 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0))
br label %135
126: ; preds = %32
%127 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.47, i64 0, i64 0))
br label %135
128: ; preds = %32
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.48, i64 0, i64 0))
br label %135
130: ; preds = %32
%131 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.49, i64 0, i64 0))
br label %135
132: ; preds = %32
%133 = load i32, i32* %8
%134 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.50, i64 0, i64 0), i32 %133)
br label %135
135: ; preds = %132, %130, %128, %126, %124, %122, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102, %100, %98, %96, %94, %92, %90, %88, %86, %84, %82, %80, %78, %76, %74, %72, %70, %68, %66, %64, %62, %60, %58, %56, %54, %52, %50, %48, %46, %44, %42, %40, %38, %36, %34
br label %136
136: ; preds = %135, %28
store i32 0, i32* %4
br label %137
137: ; preds = %136, %24, %15
%138 = load i32, i32* %4
ret i32 %138
}

LLVM IR (-O2):
@.str = [10 x i8] c"option %d\00"
@.str.1 = [13 x i8] c"Manufacturer\00"
@.str.2 = [24 x i8] c"ManufacturerHardwareRev\00"
@.str.3 = [24 x i8] c"ManufacturerSoftwareRev\00"
@.str.4 = [26 x i8] c"ManufacturerSoftwareBuild\00"
@.str.5 = [6 x i8] c"Model\00"
@.str.6 = [11 x i8] c"MachineUID\00"
@.str.7 = [13 x i8] c"DeviceFamily\00"
@.str.8 = [16 x i8] c"DeviceFamilyRev\00"
@.str.9 = [9 x i8] c"CPU type\00"
@.str.10 = [9 x i8] c"CPU arch\00"
@.str.11 = [8 x i8] c"CPU ABI\00"
@.str.12 = [10 x i8] c"CPU speed\00"
@.str.13 = [19 x i8] c"System Tick Period\00"
@.str.14 = [10 x i8] c"Total RAM\00"
@.str.15 = [9 x i8] c"Free RAM\00"
@.str.16 = [10 x i8] c"Total ROM\00"
@.str.17 = [17 x i8] c"Memory Page Size\00"
@.str.18 = [13 x i8] c"Power backup\00"
@.str.19 = [9 x i8] c"Keyboard\00"
@.str.20 = [20 x i8] c"Keyboard device key\00"
@.str.21 = [25 x i8] c"Keyboard application key\00"
@.str.22 = [15 x i8] c"Keyboard click\00"
@.str.23 = [21 x i8] c"Keyboard clickVolMax\00"
@.str.24 = [19 x i8] c"Screen width pixel\00"
@.str.25 = [20 x i8] c"Screen height pixel\00"
@.str.26 = [19 x i8] c"Screen width twips\00"
@.str.27 = [20 x i8] c"Screen height twips\00"
@.str.28 = [15 x i8] c"Display colors\00"
@.str.29 = [21 x i8] c"Display max contrast\00"
@.str.30 = [10 x i8] c"Backlight\00"
@.str.31 = [4 x i8] c"Pen\00"
@.str.32 = [5 x i8] c"PenX\00"
@.str.33 = [5 x i8] c"PenY\00"
@.str.34 = [15 x i8] c"Pen display on\00"
@.str.35 = [10 x i8] c"Pen click\00"
@.str.36 = [15 x i8] c"Pen volume max\00"
@.str.37 = [6 x i8] c"Mouse\00"
@.str.38 = [7 x i8] c"MouseX\00"
@.str.39 = [7 x i8] c"MouseY\00"
@.str.40 = [14 x i8] c"Mouse buttons\00"
@.str.41 = [12 x i8] c"Case switch\00"
@.str.42 = [5 x i8] c"Leds\00"
@.str.43 = [17 x i8] c"Integrated phone\00"
@.str.44 = [23 x i8] c"Display brightness max\00"
@.str.45 = [25 x i8] c"Keyboard backlight state\00"
@.str.46 = [16 x i8] c"Accessory power\00"
@.str.47 = [35 x i8] c"Number of supported HAL attributes\00"
@.str.48 = [17 x i8] c"Machine language\00"
@.str.49 = [15 x i8] c"Remote install\00"
@.str.50 = [15 x i8] c"attribute %04x\00"
define i32 @condAttribute(i32* %0, i8* %1, i32 %2) {
%4 = alloca i32
%5 = alloca i32
%6 = bitcast i32* %4 to i8*
%7 = bitcast i32* %5 to i8*
%8 = call i64 @sisRead(i32* %0, i32* %4, i32 4, i8* %1, i32 %2)
%9 = icmp eq i64 %8, 0
br i1 %9, label %10, label %122
10: ; preds = %3
%11 = load i32, i32* %4
%12 = call i32 @sis32toh(i32 %11)
store i32 %12, i32* %4
%13 = call i64 @sisRead(i32* %0, i32* %5, i32 4, i8* %1, i32 %2)
%14 = icmp eq i64 %13, 0
br i1 %14, label %15, label %122
15: ; preds = %10
%16 = load i32, i32* %4
%17 = icmp ugt i32 %16, 8191
br i1 %17, label %18, label %21
18: ; preds = %15
%19 = add i32 %16, -8192
%20 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i32 %19)
br label %122
21: ; preds = %15
switch i32 %16, label %120 [
i32 0, label %22
i32 1, label %24
i32 2, label %26
i32 3, label %28
i32 4, label %30
i32 5, label %32
i32 6, label %34
i32 7, label %36
i32 8, label %38
i32 9, label %40
i32 10, label %42
i32 11, label %44
i32 14, label %46
i32 15, label %48
i32 16, label %50
i32 17, label %52
i32 18, label %54
i32 21, label %56
i32 24, label %58
i32 25, label %60
i32 26, label %62
i32 27, label %64
i32 30, label %66
i32 31, label %68
i32 32, label %70
i32 33, label %72
i32 34, label %74
i32 35, label %76
i32 38, label %78
i32 39, label %80
i32 41, label %82
i32 42, label %84
i32 43, label %86
i32 44, label %88
i32 45, label %90
i32 48, label %92
i32 49, label %94
i32 50, label %96
i32 51, label %98
i32 55, label %100
i32 58, label %102
i32 61, label %104
i32 63, label %106
i32 65, label %108
i32 66, label %110
i32 67, label %112
i32 89, label %114
i32 4096, label %116
i32 4097, label %118
]
22: ; preds = %21
%23 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
br label %122
24: ; preds = %21
%25 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.2, i64 0, i64 0))
br label %122
26: ; preds = %21
%27 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.3, i64 0, i64 0))
br label %122
28: ; preds = %21
%29 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0))
br label %122
30: ; preds = %21
%31 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
br label %122
32: ; preds = %21
%33 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
br label %122
34: ; preds = %21
%35 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0))
br label %122
36: ; preds = %21
%37 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0))
br label %122
38: ; preds = %21
%39 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.9, i64 0, i64 0))
br label %122
40: ; preds = %21
%41 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.10, i64 0, i64 0))
br label %122
42: ; preds = %21
%43 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0))
br label %122
44: ; preds = %21
%45 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.12, i64 0, i64 0))
br label %122
46: ; preds = %21
%47 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0))
br label %122
48: ; preds = %21
%49 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0))
br label %122
50: ; preds = %21
%51 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0))
br label %122
52: ; preds = %21
%53 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.16, i64 0, i64 0))
br label %122
54: ; preds = %21
%55 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.17, i64 0, i64 0))
br label %122
56: ; preds = %21
%57 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %122
58: ; preds = %21
%59 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
br label %122
60: ; preds = %21
%61 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.20, i64 0, i64 0))
br label %122
62: ; preds = %21
%63 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.21, i64 0, i64 0))
br label %122
64: ; preds = %21
%65 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0))
br label %122
66: ; preds = %21
%67 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.23, i64 0, i64 0))
br label %122
68: ; preds = %21
%69 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.24, i64 0, i64 0))
br label %122
70: ; preds = %21
%71 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.25, i64 0, i64 0))
br label %122
72: ; preds = %21
%73 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.26, i64 0, i64 0))
br label %122
74: ; preds = %21
%75 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.27, i64 0, i64 0))
br label %122
76: ; preds = %21
%77 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.28, i64 0, i64 0))
br label %122
78: ; preds = %21
%79 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.29, i64 0, i64 0))
br label %122
80: ; preds = %21
%81 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.30, i64 0, i64 0))
br label %122
82: ; preds = %21
%83 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
br label %122
84: ; preds = %21
%85 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.32, i64 0, i64 0))
br label %122
86: ; preds = %21
%87 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0))
br label %122
88: ; preds = %21
%89 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i64 0, i64 0))
br label %122
90: ; preds = %21
%91 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.35, i64 0, i64 0))
br label %122
92: ; preds = %21
%93 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.36, i64 0, i64 0))
br label %122
94: ; preds = %21
%95 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.37, i64 0, i64 0))
br label %122
96: ; preds = %21
%97 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
br label %122
98: ; preds = %21
%99 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.39, i64 0, i64 0))
br label %122
100: ; preds = %21
%101 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.40, i64 0, i64 0))
br label %122
102: ; preds = %21
%103 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.41, i64 0, i64 0))
br label %122
104: ; preds = %21
%105 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0))
br label %122
106: ; preds = %21
%107 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.43, i64 0, i64 0))
br label %122
108: ; preds = %21
%109 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.44, i64 0, i64 0))
br label %122
110: ; preds = %21
%111 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.45, i64 0, i64 0))
br label %122
112: ; preds = %21
%113 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0))
br label %122
114: ; preds = %21
%115 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.47, i64 0, i64 0))
br label %122
116: ; preds = %21
%117 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.48, i64 0, i64 0))
br label %122
118: ; preds = %21
%119 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.49, i64 0, i64 0))
br label %122
120: ; preds = %21
%121 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.50, i64 0, i64 0), i32 %16)
br label %122
122: ; preds = %18, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102, %100, %98, %96, %94, %92, %90, %88, %86, %84, %82, %80, %78, %76, %74, %72, %70, %68, %66, %64, %62, %60, %58, %56, %54, %52, %50, %48, %46, %44, %42, %40, %38, %36, %34, %32, %30, %28, %26, %24, %22, %10, %3
%123 = phi i32 [ 1, %3 ], [ 1, %10 ], [ 0, %22 ], [ 0, %24 ], [ 0, %26 ], [ 0, %28 ], [ 0, %30 ], [ 0, %32 ], [ 0, %34 ], [ 0, %36 ], [ 0, %38 ], [ 0, %40 ], [ 0, %42 ], [ 0, %44 ], [ 0, %46 ], [ 0, %48 ], [ 0, %50 ], [ 0, %52 ], [ 0, %54 ], [ 0, %56 ], [ 0, %58 ], [ 0, %60 ], [ 0, %62 ], [ 0, %64 ], [ 0, %66 ], [ 0, %68 ], [ 0, %70 ], [ 0, %72 ], [ 0, %74 ], [ 0, %76 ], [ 0, %78 ], [ 0, %80 ], [ 0, %82 ], [ 0, %84 ], [ 0, %86 ], [ 0, %88 ], [ 0, %90 ], [ 0, %92 ], [ 0, %94 ], [ 0, %96 ], [ 0, %98 ], [ 0, %100 ], [ 0, %102 ], [ 0, %104 ], [ 0, %106 ], [ 0, %108 ], [ 0, %110 ], [ 0, %112 ], [ 0, %114 ], [ 0, %116 ], [ 0, %118 ], [ 0, %120 ], [ 0, %18 ]
ret i32 %123
}