#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*/ printf(char *, char, ...);
int /*<<< orphan*/ scanf(char *, ...);
int main() {
  int i;
  int a[7];
  char c, s[7];
  scanf("%c", &c);
  if (c == 'h') {
    scanf("%s", s);
    for (i = 1; i < 7; i++)
      switch (s[i]) {
      case '0':
        a[i] = 0;
        break;
      case '1':
        a[i] = 1;
        break;
      case '2':
        a[i] = 2;
        break;
      case '3':
        a[i] = 3;
        break;
      case '4':
        a[i] = 4;
        break;
      case '5':
        a[i] = 5;
        break;
      case '6':
        a[i] = 6;
        break;
      case '7':
        a[i] = 7;
        break;
      case '8':
        a[i] = 8;
        break;
      case '9':
        a[i] = 9;
        break;
      case 'a':
        a[i] = 10;
        break;
      case 'b':
        a[i] = 11;
        break;
      case 'c':
        a[i] = 12;
        break;
      case 'd':
        a[i] = 13;
        break;
      case 'e':
        a[i] = 14;
        break;
      case 'f':
        a[i] = 15;
        break;
      }
    for (i = 1; i < 7; i = i + 2)
      a[i] = a[i] * 16 + a[i + 1];
    printf("rgb(%d, %d, %d)", a[1], a[3], a[5]);
  }
  if (c == 'd') {
    scanf("%d, %d, %d", &a[1], &a[3], &a[5]);
    s[0] = '#';
    for (i = 1; i < 7; i = i + 2) {
      a[i + 1] = a[i] % 16;
      a[i] = a[i] / 16;
    }
    for (i = 1; i < 7; i++) {
      switch (a[i]) {
      case 10:
        s[i] = 'a';
        break;
      case 11:
        s[i] = 'b';
        break;
      case 12:
        s[i] = 'c';
        break;
      case 13:
        s[i] = 'd';
        break;
      case 14:
        s[i] = 'e';
        break;
      case 15:
        s[i] = 'f';
        break;
      case 9:
        s[i] = '9';
        break;
      case 8:
        s[i] = '8';
        break;
      case 7:
        s[i] = '7';
        break;
      case 6:
        s[i] = '6';
        break;
      case 5:
        s[i] = '5';
        break;
      case 4:
        s[i] = '4';
        break;
      case 3:
        s[i] = '3';
        break;
      case 2:
        s[i] = '2';
        break;
      case 1:
        s[i] = '1';
        break;
      case 0:
        s[i] = '0';
        break;
      }
    }
    for (i = 0; i < 7; i++)
      printf("%c", s[i]);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xfe6(%rip),%rdi
lea    -0x31(%rbp),%rsi
mov    $0x0,%al
call   1040 <scanf@plt>
movsbl -0x31(%rbp),%eax
cmp    $0x68,%eax
jne    1316 <main+0x1f6>
lea    -0x38(%rbp),%rsi
lea    0xfc6(%rip),%rdi
mov    $0x0,%al
call   1040 <scanf@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x7,-0x8(%rbp)
jge    12be <main+0x19e>
movslq -0x8(%rbp),%rax
movsbl -0x38(%rbp,%rax,1),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0x36,%eax
ja     12ab <main+0x18b>
mov    -0x40(%rbp),%rax
lea    0xea9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movslq -0x8(%rbp),%rax
movl   $0x0,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x1,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x2,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x3,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x4,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x5,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x6,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x7,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x8,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0x9,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xa,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xb,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xc,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xd,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xe,-0x30(%rbp,%rax,4)
jmp    12ab <main+0x18b>
movslq -0x8(%rbp),%rax
movl   $0xf,-0x30(%rbp,%rax,4)
jmp    12b0 <main+0x190>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1167 <main+0x47>
movl   $0x1,-0x8(%rbp)
cmpl   $0x7,-0x8(%rbp)
jge    12fc <main+0x1dc>
movslq -0x8(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%ecx
shl    $0x4,%ecx
mov    -0x8(%rbp),%eax
add    $0x1,%eax
cltq
add    -0x30(%rbp,%rax,4),%ecx
movslq -0x8(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
mov    -0x8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x8(%rbp)
jmp    12c5 <main+0x1a5>
mov    -0x2c(%rbp),%eax
mov    -0x24(%rbp),%edx
mov    -0x1c(%rbp),%ecx
lea    0xe16(%rip),%rdi
movsbl %al,%esi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x31(%rbp),%eax
cmp    $0x64,%eax
jne    1506 <main+0x3e6>
lea    -0x30(%rbp),%rsi
add    $0x4,%rsi
lea    -0x30(%rbp),%rdx
add    $0xc,%rdx
lea    -0x30(%rbp),%rcx
add    $0x14,%rcx
lea    0xdf0(%rip),%rdi
mov    $0x0,%al
call   1040 <scanf@plt>
movb   $0x23,-0x38(%rbp)
movl   $0x1,-0x8(%rbp)
cmpl   $0x7,-0x8(%rbp)
jge    13a2 <main+0x282>
movslq -0x8(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
mov    -0x8(%rbp),%eax
add    $0x1,%eax
cltq
mov    %edx,-0x30(%rbp,%rax,4)
movslq -0x8(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
movslq -0x8(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
mov    -0x8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x8(%rbp)
jmp    1354 <main+0x234>
movl   $0x1,-0x8(%rbp)
cmpl   $0x7,-0x8(%rbp)
jge    14cb <main+0x3ab>
movslq -0x8(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
mov    %rax,-0x48(%rbp)
sub    $0xf,%rax
ja     14b8 <main+0x398>
mov    -0x48(%rbp),%rax
lea    0xc2c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movslq -0x8(%rbp),%rax
movb   $0x61,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x62,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x63,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x64,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x65,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x66,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x39,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x38,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x37,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x36,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x35,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x34,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x33,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x32,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x31,-0x38(%rbp,%rax,1)
jmp    14b8 <main+0x398>
movslq -0x8(%rbp),%rax
movb   $0x30,-0x38(%rbp,%rax,1)
jmp    14bd <main+0x39d>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    13a9 <main+0x289>
movl   $0x0,-0x8(%rbp)
cmpl   $0x7,-0x8(%rbp)
jge    1501 <main+0x3e1>
movslq -0x8(%rbp),%rax
lea    0xc35(%rip),%rdi
movsbl -0x38(%rbp,%rax,1),%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    14d2 <main+0x3b2>
jmp    1506 <main+0x3e6>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x30,%rsp
lea    0x13fc(%rip),%rdi
xor    %ebx,%ebx
lea    0x8(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
mov    0x8(%rsp),%al
cmp    $0x68,%al
jne    14d5 <main+0x3b5>
lea    0x13de(%rip),%rdi
lea    0x9(%rsp),%rsi
xor    %eax,%eax
call   1040 <scanf@plt>
movsbl 0xa(%rsp),%eax
add    $0xffffffd0,%eax
cmp    $0x36,%eax
ja     11e1 <main+0xc1>
lea    0xe93(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x1,%ebx
jmp    11dd <main+0xbd>
mov    $0x2,%ebx
jmp    11dd <main+0xbd>
mov    $0x3,%ebx
jmp    11dd <main+0xbd>
mov    $0x4,%ebx
jmp    11dd <main+0xbd>
mov    $0x5,%ebx
jmp    11dd <main+0xbd>
mov    $0x6,%ebx
jmp    11dd <main+0xbd>
mov    $0x7,%ebx
jmp    11dd <main+0xbd>
mov    $0x8,%ebx
jmp    11dd <main+0xbd>
mov    $0x9,%ebx
jmp    11dd <main+0xbd>
mov    $0xa,%ebx
jmp    11dd <main+0xbd>
mov    $0xb,%ebx
jmp    11dd <main+0xbd>
mov    $0xc,%ebx
jmp    11dd <main+0xbd>
mov    $0xd,%ebx
jmp    11dd <main+0xbd>
mov    $0xe,%ebx
jmp    11dd <main+0xbd>
mov    $0xf,%ebx
mov    %ebx,0x14(%rsp)
movsbl 0xb(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     126b <main+0x14b>
xor    %eax,%eax
lea    0xee5(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
jmp    1267 <main+0x147>
mov    $0x2,%eax
jmp    1267 <main+0x147>
mov    $0x3,%eax
jmp    1267 <main+0x147>
mov    $0x4,%eax
jmp    1267 <main+0x147>
mov    $0x5,%eax
jmp    1267 <main+0x147>
mov    $0x6,%eax
jmp    1267 <main+0x147>
mov    $0x7,%eax
jmp    1267 <main+0x147>
mov    $0x8,%eax
jmp    1267 <main+0x147>
mov    $0x9,%eax
jmp    1267 <main+0x147>
mov    $0xa,%eax
jmp    1267 <main+0x147>
mov    $0xb,%eax
jmp    1267 <main+0x147>
mov    $0xc,%eax
jmp    1267 <main+0x147>
mov    $0xd,%eax
jmp    1267 <main+0x147>
mov    $0xe,%eax
jmp    1267 <main+0x147>
mov    $0xf,%eax
mov    %eax,0x18(%rsp)
movsbl 0xc(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     12f5 <main+0x1d5>
xor    %eax,%eax
lea    0xf37(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
jmp    12f1 <main+0x1d1>
mov    $0x2,%eax
jmp    12f1 <main+0x1d1>
mov    $0x3,%eax
jmp    12f1 <main+0x1d1>
mov    $0x4,%eax
jmp    12f1 <main+0x1d1>
mov    $0x5,%eax
jmp    12f1 <main+0x1d1>
mov    $0x6,%eax
jmp    12f1 <main+0x1d1>
mov    $0x7,%eax
jmp    12f1 <main+0x1d1>
mov    $0x8,%eax
jmp    12f1 <main+0x1d1>
mov    $0x9,%eax
jmp    12f1 <main+0x1d1>
mov    $0xa,%eax
jmp    12f1 <main+0x1d1>
mov    $0xb,%eax
jmp    12f1 <main+0x1d1>
mov    $0xc,%eax
jmp    12f1 <main+0x1d1>
mov    $0xd,%eax
jmp    12f1 <main+0x1d1>
mov    $0xe,%eax
jmp    12f1 <main+0x1d1>
mov    $0xf,%eax
mov    %eax,0x1c(%rsp)
movsbl 0xd(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     137f <main+0x25f>
xor    %eax,%eax
lea    0xf89(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
jmp    137b <main+0x25b>
mov    $0x2,%eax
jmp    137b <main+0x25b>
mov    $0x3,%eax
jmp    137b <main+0x25b>
mov    $0x4,%eax
jmp    137b <main+0x25b>
mov    $0x5,%eax
jmp    137b <main+0x25b>
mov    $0x6,%eax
jmp    137b <main+0x25b>
mov    $0x7,%eax
jmp    137b <main+0x25b>
mov    $0x8,%eax
jmp    137b <main+0x25b>
mov    $0x9,%eax
jmp    137b <main+0x25b>
mov    $0xa,%eax
jmp    137b <main+0x25b>
mov    $0xb,%eax
jmp    137b <main+0x25b>
mov    $0xc,%eax
jmp    137b <main+0x25b>
mov    $0xd,%eax
jmp    137b <main+0x25b>
mov    $0xe,%eax
jmp    137b <main+0x25b>
mov    $0xf,%eax
mov    %eax,0x20(%rsp)
movsbl 0xe(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     1409 <main+0x2e9>
xor    %eax,%eax
lea    0xfdb(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
jmp    1405 <main+0x2e5>
mov    $0x2,%eax
jmp    1405 <main+0x2e5>
mov    $0x3,%eax
jmp    1405 <main+0x2e5>
mov    $0x4,%eax
jmp    1405 <main+0x2e5>
mov    $0x5,%eax
jmp    1405 <main+0x2e5>
mov    $0x6,%eax
jmp    1405 <main+0x2e5>
mov    $0x7,%eax
jmp    1405 <main+0x2e5>
mov    $0x8,%eax
jmp    1405 <main+0x2e5>
mov    $0x9,%eax
jmp    1405 <main+0x2e5>
mov    $0xa,%eax
jmp    1405 <main+0x2e5>
mov    $0xb,%eax
jmp    1405 <main+0x2e5>
mov    $0xc,%eax
jmp    1405 <main+0x2e5>
mov    $0xd,%eax
jmp    1405 <main+0x2e5>
mov    $0xe,%eax
jmp    1405 <main+0x2e5>
mov    $0xf,%eax
mov    %eax,0x24(%rsp)
movsbl 0xf(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     1493 <main+0x373>
xor    %eax,%eax
lea    0x102d(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
jmp    148f <main+0x36f>
mov    $0x2,%eax
jmp    148f <main+0x36f>
mov    $0x3,%eax
jmp    148f <main+0x36f>
mov    $0x4,%eax
jmp    148f <main+0x36f>
mov    $0x5,%eax
jmp    148f <main+0x36f>
mov    $0x6,%eax
jmp    148f <main+0x36f>
mov    $0x7,%eax
jmp    148f <main+0x36f>
mov    $0x8,%eax
jmp    148f <main+0x36f>
mov    $0x9,%eax
jmp    148f <main+0x36f>
mov    $0xa,%eax
jmp    148f <main+0x36f>
mov    $0xb,%eax
jmp    148f <main+0x36f>
mov    $0xc,%eax
jmp    148f <main+0x36f>
mov    $0xd,%eax
jmp    148f <main+0x36f>
mov    $0xe,%eax
jmp    148f <main+0x36f>
mov    $0xf,%eax
mov    %eax,0x28(%rsp)
mov    0x14(%rsp),%eax
mov    0x1c(%rsp),%edx
shl    $0x4,%eax
add    0x18(%rsp),%eax
mov    %eax,0x14(%rsp)
shl    $0x4,%edx
add    0x20(%rsp),%edx
mov    %edx,0x1c(%rsp)
mov    0x24(%rsp),%ecx
shl    $0x4,%ecx
add    0x28(%rsp),%ecx
mov    %ecx,0x24(%rsp)
movsbl %al,%esi
lea    0x1064(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    0x8(%rsp),%al
cmp    $0x64,%al
jne    165b <main+0x53b>
lea    0x14(%rsp),%rsi
lea    0x1c(%rsp),%rdx
lea    0x24(%rsp),%rcx
lea    0x104b(%rip),%rdi
xor    %eax,%eax
call   1040 <scanf@plt>
movb   $0x23,0x9(%rsp)
mov    0x14(%rsp),%ecx
mov    0x1c(%rsp),%edx
lea    0xf(%rcx),%eax
test   %ecx,%ecx
cmovns %ecx,%eax
mov    %eax,%esi
and    $0xfffffff0,%esi
sub    %esi,%ecx
mov    %ecx,0x18(%rsp)
sar    $0x4,%eax
mov    %eax,0x14(%rsp)
lea    0xf(%rdx),%ecx
test   %edx,%edx
cmovns %edx,%ecx
mov    %ecx,%esi
and    $0xfffffff0,%esi
sub    %esi,%edx
mov    %edx,0x20(%rsp)
sar    $0x4,%ecx
mov    %ecx,0x1c(%rsp)
mov    0x24(%rsp),%ecx
lea    0xf(%rcx),%edx
test   %ecx,%ecx
cmovns %ecx,%edx
mov    %edx,%esi
and    $0xfffffff0,%esi
sub    %esi,%ecx
mov    %ecx,0x28(%rsp)
sar    $0x4,%edx
mov    %edx,0x24(%rsp)
cmp    $0xf,%eax
ja     156e <main+0x44e>
cltq
lea    0xfe2(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xa(%rsp)
movslq 0x18(%rsp),%rax
cmp    $0xf,%rax
ja     1587 <main+0x467>
lea    0xfc9(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xb(%rsp)
movslq 0x1c(%rsp),%rax
cmp    $0xf,%rax
ja     15a0 <main+0x480>
lea    0xfb0(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xc(%rsp)
movslq 0x20(%rsp),%rax
cmp    $0xf,%rax
ja     15b9 <main+0x499>
lea    0xf97(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xd(%rsp)
movslq 0x24(%rsp),%rax
cmp    $0xf,%rax
ja     15d2 <main+0x4b2>
lea    0xf7e(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xe(%rsp)
movslq 0x28(%rsp),%rax
cmp    $0xf,%rax
ja     15eb <main+0x4cb>
lea    0xf65(%rip),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,0xf(%rsp)
lea    0xf36(%rip),%rbx
mov    %rbx,%rdi
mov    $0x23,%esi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xa(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xb(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xc(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xd(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xe(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
movsbl 0xf(%rsp),%esi
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%c\00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [16 x i8] c"rgb(%d, %d, %d)\00"
@.str.3 = [11 x i8] c"%d, %d, %d\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca [7 x i32]
%4 = alloca i8
%5 = alloca [7 x i8]
store i32 0, i32* %1
%6 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %4)
%7 = load i8, i8* %4
%8 = sext i8 %7 to i32
%9 = icmp eq i32 %8, 104
br i1 %9, label %10, label %121
10: ; preds = %0
%11 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 0
%12 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %11)
store i32 1, i32* %2
br label %13
13: ; preds = %87, %10
%14 = load i32, i32* %2
%15 = icmp slt i32 %14, 7
br i1 %15, label %16, label %90
16: ; preds = %13
%17 = load i32, i32* %2
%18 = sext i32 %17 to i64
%19 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %18
%20 = load i8, i8* %19
%21 = sext i8 %20 to i32
switch i32 %21, label %86 [
i32 48, label %22
i32 49, label %26
i32 50, label %30
i32 51, label %34
i32 52, label %38
i32 53, label %42
i32 54, label %46
i32 55, label %50
i32 56, label %54
i32 57, label %58
i32 97, label %62
i32 98, label %66
i32 99, label %70
i32 100, label %74
i32 101, label %78
i32 102, label %82
]
22: ; preds = %16
%23 = load i32, i32* %2
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %24
store i32 0, i32* %25
br label %86
26: ; preds = %16
%27 = load i32, i32* %2
%28 = sext i32 %27 to i64
%29 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %28
store i32 1, i32* %29
br label %86
30: ; preds = %16
%31 = load i32, i32* %2
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %32
store i32 2, i32* %33
br label %86
34: ; preds = %16
%35 = load i32, i32* %2
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %36
store i32 3, i32* %37
br label %86
38: ; preds = %16
%39 = load i32, i32* %2
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %40
store i32 4, i32* %41
br label %86
42: ; preds = %16
%43 = load i32, i32* %2
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %44
store i32 5, i32* %45
br label %86
46: ; preds = %16
%47 = load i32, i32* %2
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %48
store i32 6, i32* %49
br label %86
50: ; preds = %16
%51 = load i32, i32* %2
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %52
store i32 7, i32* %53
br label %86
54: ; preds = %16
%55 = load i32, i32* %2
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %56
store i32 8, i32* %57
br label %86
58: ; preds = %16
%59 = load i32, i32* %2
%60 = sext i32 %59 to i64
%61 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %60
store i32 9, i32* %61
br label %86
62: ; preds = %16
%63 = load i32, i32* %2
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %64
store i32 10, i32* %65
br label %86
66: ; preds = %16
%67 = load i32, i32* %2
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %68
store i32 11, i32* %69
br label %86
70: ; preds = %16
%71 = load i32, i32* %2
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %72
store i32 12, i32* %73
br label %86
74: ; preds = %16
%75 = load i32, i32* %2
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %76
store i32 13, i32* %77
br label %86
78: ; preds = %16
%79 = load i32, i32* %2
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %80
store i32 14, i32* %81
br label %86
82: ; preds = %16
%83 = load i32, i32* %2
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %84
store i32 15, i32* %85
br label %86
86: ; preds = %16, %82, %78, %74, %70, %66, %62, %58, %54, %50, %46, %42, %38, %34, %30, %26, %22
br label %87
87: ; preds = %86
%88 = load i32, i32* %2
%89 = add nsw i32 %88, 1
store i32 %89, i32* %2
br label %13
90: ; preds = %13
store i32 1, i32* %2
br label %91
91: ; preds = %109, %90
%92 = load i32, i32* %2
%93 = icmp slt i32 %92, 7
br i1 %93, label %94, label %112
94: ; preds = %91
%95 = load i32, i32* %2
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %96
%98 = load i32, i32* %97
%99 = mul nsw i32 %98, 16
%100 = load i32, i32* %2
%101 = add nsw i32 %100, 1
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %102
%104 = load i32, i32* %103
%105 = add nsw i32 %99, %104
%106 = load i32, i32* %2
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %107
store i32 %105, i32* %108
br label %109
109: ; preds = %94
%110 = load i32, i32* %2
%111 = add nsw i32 %110, 2
store i32 %111, i32* %2
br label %91
112: ; preds = %91
%113 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 1
%114 = load i32, i32* %113
%115 = trunc i32 %114 to i8
%116 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 3
%117 = load i32, i32* %116
%118 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 5
%119 = load i32, i32* %118
%120 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i8 signext %115, i32 %117, i32 %119)
br label %121
121: ; preds = %112, %0
%122 = load i8, i8* %4
%123 = sext i8 %122 to i32
%124 = icmp eq i32 %123, 100
br i1 %124, label %125, label %246
125: ; preds = %121
%126 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 1
%127 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 3
%128 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 5
%129 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i32* %126, i32* %127, i32* %128)
%130 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 0
store i8 35, i8* %130
store i32 1, i32* %2
br label %131
131: ; preds = %152, %125
%132 = load i32, i32* %2
%133 = icmp slt i32 %132, 7
br i1 %133, label %134, label %155
134: ; preds = %131
%135 = load i32, i32* %2
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %136
%138 = load i32, i32* %137
%139 = srem i32 %138, 16
%140 = load i32, i32* %2
%141 = add nsw i32 %140, 1
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %142
store i32 %139, i32* %143
%144 = load i32, i32* %2
%145 = sext i32 %144 to i64
%146 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %145
%147 = load i32, i32* %146
%148 = sdiv i32 %147, 16
%149 = load i32, i32* %2
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %150
store i32 %148, i32* %151
br label %152
152: ; preds = %134
%153 = load i32, i32* %2
%154 = add nsw i32 %153, 2
store i32 %154, i32* %2
br label %131
155: ; preds = %131
store i32 1, i32* %2
br label %156
156: ; preds = %229, %155
%157 = load i32, i32* %2
%158 = icmp slt i32 %157, 7
br i1 %158, label %159, label %232
159: ; preds = %156
%160 = load i32, i32* %2
%161 = sext i32 %160 to i64
%162 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %161
%163 = load i32, i32* %162
switch i32 %163, label %228 [
i32 10, label %164
i32 11, label %168
i32 12, label %172
i32 13, label %176
i32 14, label %180
i32 15, label %184
i32 9, label %188
i32 8, label %192
i32 7, label %196
i32 6, label %200
i32 5, label %204
i32 4, label %208
i32 3, label %212
i32 2, label %216
i32 1, label %220
i32 0, label %224
]
164: ; preds = %159
%165 = load i32, i32* %2
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %166
store i8 97, i8* %167
br label %228
168: ; preds = %159
%169 = load i32, i32* %2
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %170
store i8 98, i8* %171
br label %228
172: ; preds = %159
%173 = load i32, i32* %2
%174 = sext i32 %173 to i64
%175 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %174
store i8 99, i8* %175
br label %228
176: ; preds = %159
%177 = load i32, i32* %2
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %178
store i8 100, i8* %179
br label %228
180: ; preds = %159
%181 = load i32, i32* %2
%182 = sext i32 %181 to i64
%183 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %182
store i8 101, i8* %183
br label %228
184: ; preds = %159
%185 = load i32, i32* %2
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %186
store i8 102, i8* %187
br label %228
188: ; preds = %159
%189 = load i32, i32* %2
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %190
store i8 57, i8* %191
br label %228
192: ; preds = %159
%193 = load i32, i32* %2
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %194
store i8 56, i8* %195
br label %228
196: ; preds = %159
%197 = load i32, i32* %2
%198 = sext i32 %197 to i64
%199 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %198
store i8 55, i8* %199
br label %228
200: ; preds = %159
%201 = load i32, i32* %2
%202 = sext i32 %201 to i64
%203 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %202
store i8 54, i8* %203
br label %228
204: ; preds = %159
%205 = load i32, i32* %2
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %206
store i8 53, i8* %207
br label %228
208: ; preds = %159
%209 = load i32, i32* %2
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %210
store i8 52, i8* %211
br label %228
212: ; preds = %159
%213 = load i32, i32* %2
%214 = sext i32 %213 to i64
%215 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %214
store i8 51, i8* %215
br label %228
216: ; preds = %159
%217 = load i32, i32* %2
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %218
store i8 50, i8* %219
br label %228
220: ; preds = %159
%221 = load i32, i32* %2
%222 = sext i32 %221 to i64
%223 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %222
store i8 49, i8* %223
br label %228
224: ; preds = %159
%225 = load i32, i32* %2
%226 = sext i32 %225 to i64
%227 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %226
store i8 48, i8* %227
br label %228
228: ; preds = %159, %224, %220, %216, %212, %208, %204, %200, %196, %192, %188, %184, %180, %176, %172, %168, %164
br label %229
229: ; preds = %228
%230 = load i32, i32* %2
%231 = add nsw i32 %230, 1
store i32 %231, i32* %2
br label %156
232: ; preds = %156
store i32 0, i32* %2
br label %233
233: ; preds = %242, %232
%234 = load i32, i32* %2
%235 = icmp slt i32 %234, 7
br i1 %235, label %236, label %245
236: ; preds = %233
%237 = load i32, i32* %2
%238 = sext i32 %237 to i64
%239 = getelementptr inbounds [7 x i8], [7 x i8]* %5, i64 0, i64 %238
%240 = load i8, i8* %239
%241 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %240)
br label %242
242: ; preds = %236
%243 = load i32, i32* %2
%244 = add nsw i32 %243, 1
store i32 %244, i32* %2
br label %233
245: ; preds = %233
br label %246
246: ; preds = %245, %121
ret i32 0
}

LLVM IR (-O2):
@.str = [3 x i8] c"%c\00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [16 x i8] c"rgb(%d, %d, %d)\00"
@.str.3 = [11 x i8] c"%d, %d, %d\00"
@switch.table.main = [16 x i8] c"0123456789abcdef"
define i32 @main() {
%1 = alloca [7 x i32]
%2 = alloca i8
%3 = alloca [7 x i8]
%4 = bitcast [7 x i32]* %1 to i8*
%5 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 0
%6 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
%7 = load i8, i8* %2
%8 = icmp eq i8 %7, 104
br i1 %8, label %9, label %164
9: ; preds = %0
%10 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %5)
%11 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 1
%12 = load i8, i8* %11
%13 = sext i8 %12 to i32
switch i32 %13, label %32 [
i32 48, label %29
i32 49, label %14
i32 50, label %15
i32 51, label %16
i32 52, label %17
i32 53, label %18
i32 54, label %19
i32 55, label %20
i32 56, label %21
i32 57, label %22
i32 97, label %23
i32 98, label %24
i32 99, label %25
i32 100, label %26
i32 101, label %27
i32 102, label %28
]
14: ; preds = %9
br label %29
15: ; preds = %9
br label %29
16: ; preds = %9
br label %29
17: ; preds = %9
br label %29
18: ; preds = %9
br label %29
19: ; preds = %9
br label %29
20: ; preds = %9
br label %29
21: ; preds = %9
br label %29
22: ; preds = %9
br label %29
23: ; preds = %9
br label %29
24: ; preds = %9
br label %29
25: ; preds = %9
br label %29
26: ; preds = %9
br label %29
27: ; preds = %9
br label %29
28: ; preds = %9
br label %29
29: ; preds = %9, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14
%30 = phi i32 [ 1, %14 ], [ 2, %15 ], [ 3, %16 ], [ 4, %17 ], [ 5, %18 ], [ 6, %19 ], [ 7, %20 ], [ 8, %21 ], [ 9, %22 ], [ 10, %23 ], [ 11, %24 ], [ 12, %25 ], [ 13, %26 ], [ 14, %27 ], [ 15, %28 ], [ 0, %9 ]
%31 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 1
store i32 %30, i32* %31
br label %32
32: ; preds = %29, %9
%33 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 2
%34 = load i8, i8* %33
%35 = sext i8 %34 to i32
switch i32 %35, label %54 [
i32 48, label %51
i32 49, label %50
i32 50, label %49
i32 51, label %48
i32 52, label %47
i32 53, label %46
i32 54, label %45
i32 55, label %44
i32 56, label %43
i32 57, label %42
i32 97, label %41
i32 98, label %40
i32 99, label %39
i32 100, label %38
i32 101, label %37
i32 102, label %36
]
36: ; preds = %32
br label %51
37: ; preds = %32
br label %51
38: ; preds = %32
br label %51
39: ; preds = %32
br label %51
40: ; preds = %32
br label %51
41: ; preds = %32
br label %51
42: ; preds = %32
br label %51
43: ; preds = %32
br label %51
44: ; preds = %32
br label %51
45: ; preds = %32
br label %51
46: ; preds = %32
br label %51
47: ; preds = %32
br label %51
48: ; preds = %32
br label %51
49: ; preds = %32
br label %51
50: ; preds = %32
br label %51
51: ; preds = %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %32
%52 = phi i32 [ 1, %50 ], [ 2, %49 ], [ 3, %48 ], [ 4, %47 ], [ 5, %46 ], [ 6, %45 ], [ 7, %44 ], [ 8, %43 ], [ 9, %42 ], [ 10, %41 ], [ 11, %40 ], [ 12, %39 ], [ 13, %38 ], [ 14, %37 ], [ 15, %36 ], [ 0, %32 ]
%53 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 2
store i32 %52, i32* %53
br label %54
54: ; preds = %51, %32
%55 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 3
%56 = load i8, i8* %55
%57 = sext i8 %56 to i32
switch i32 %57, label %76 [
i32 48, label %73
i32 49, label %72
i32 50, label %71
i32 51, label %70
i32 52, label %69
i32 53, label %68
i32 54, label %67
i32 55, label %66
i32 56, label %65
i32 57, label %64
i32 97, label %63
i32 98, label %62
i32 99, label %61
i32 100, label %60
i32 101, label %59
i32 102, label %58
]
58: ; preds = %54
br label %73
59: ; preds = %54
br label %73
60: ; preds = %54
br label %73
61: ; preds = %54
br label %73
62: ; preds = %54
br label %73
63: ; preds = %54
br label %73
64: ; preds = %54
br label %73
65: ; preds = %54
br label %73
66: ; preds = %54
br label %73
67: ; preds = %54
br label %73
68: ; preds = %54
br label %73
69: ; preds = %54
br label %73
70: ; preds = %54
br label %73
71: ; preds = %54
br label %73
72: ; preds = %54
br label %73
73: ; preds = %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %54
%74 = phi i32 [ 1, %72 ], [ 2, %71 ], [ 3, %70 ], [ 4, %69 ], [ 5, %68 ], [ 6, %67 ], [ 7, %66 ], [ 8, %65 ], [ 9, %64 ], [ 10, %63 ], [ 11, %62 ], [ 12, %61 ], [ 13, %60 ], [ 14, %59 ], [ 15, %58 ], [ 0, %54 ]
%75 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 3
store i32 %74, i32* %75
br label %76
76: ; preds = %73, %54
%77 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 4
%78 = load i8, i8* %77
%79 = sext i8 %78 to i32
switch i32 %79, label %98 [
i32 48, label %95
i32 49, label %94
i32 50, label %93
i32 51, label %92
i32 52, label %91
i32 53, label %90
i32 54, label %89
i32 55, label %88
i32 56, label %87
i32 57, label %86
i32 97, label %85
i32 98, label %84
i32 99, label %83
i32 100, label %82
i32 101, label %81
i32 102, label %80
]
80: ; preds = %76
br label %95
81: ; preds = %76
br label %95
82: ; preds = %76
br label %95
83: ; preds = %76
br label %95
84: ; preds = %76
br label %95
85: ; preds = %76
br label %95
86: ; preds = %76
br label %95
87: ; preds = %76
br label %95
88: ; preds = %76
br label %95
89: ; preds = %76
br label %95
90: ; preds = %76
br label %95
91: ; preds = %76
br label %95
92: ; preds = %76
br label %95
93: ; preds = %76
br label %95
94: ; preds = %76
br label %95
95: ; preds = %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %76
%96 = phi i32 [ 1, %94 ], [ 2, %93 ], [ 3, %92 ], [ 4, %91 ], [ 5, %90 ], [ 6, %89 ], [ 7, %88 ], [ 8, %87 ], [ 9, %86 ], [ 10, %85 ], [ 11, %84 ], [ 12, %83 ], [ 13, %82 ], [ 14, %81 ], [ 15, %80 ], [ 0, %76 ]
%97 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 4
store i32 %96, i32* %97
br label %98
98: ; preds = %95, %76
%99 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 5
%100 = load i8, i8* %99
%101 = sext i8 %100 to i32
switch i32 %101, label %120 [
i32 48, label %117
i32 49, label %116
i32 50, label %115
i32 51, label %114
i32 52, label %113
i32 53, label %112
i32 54, label %111
i32 55, label %110
i32 56, label %109
i32 57, label %108
i32 97, label %107
i32 98, label %106
i32 99, label %105
i32 100, label %104
i32 101, label %103
i32 102, label %102
]
102: ; preds = %98
br label %117
103: ; preds = %98
br label %117
104: ; preds = %98
br label %117
105: ; preds = %98
br label %117
106: ; preds = %98
br label %117
107: ; preds = %98
br label %117
108: ; preds = %98
br label %117
109: ; preds = %98
br label %117
110: ; preds = %98
br label %117
111: ; preds = %98
br label %117
112: ; preds = %98
br label %117
113: ; preds = %98
br label %117
114: ; preds = %98
br label %117
115: ; preds = %98
br label %117
116: ; preds = %98
br label %117
117: ; preds = %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %98
%118 = phi i32 [ 1, %116 ], [ 2, %115 ], [ 3, %114 ], [ 4, %113 ], [ 5, %112 ], [ 6, %111 ], [ 7, %110 ], [ 8, %109 ], [ 9, %108 ], [ 10, %107 ], [ 11, %106 ], [ 12, %105 ], [ 13, %104 ], [ 14, %103 ], [ 15, %102 ], [ 0, %98 ]
%119 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 5
store i32 %118, i32* %119
br label %120
120: ; preds = %117, %98
%121 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 6
%122 = load i8, i8* %121
%123 = sext i8 %122 to i32
switch i32 %123, label %142 [
i32 48, label %139
i32 49, label %138
i32 50, label %137
i32 51, label %136
i32 52, label %135
i32 53, label %134
i32 54, label %133
i32 55, label %132
i32 56, label %131
i32 57, label %130
i32 97, label %129
i32 98, label %128
i32 99, label %127
i32 100, label %126
i32 101, label %125
i32 102, label %124
]
124: ; preds = %120
br label %139
125: ; preds = %120
br label %139
126: ; preds = %120
br label %139
127: ; preds = %120
br label %139
128: ; preds = %120
br label %139
129: ; preds = %120
br label %139
130: ; preds = %120
br label %139
131: ; preds = %120
br label %139
132: ; preds = %120
br label %139
133: ; preds = %120
br label %139
134: ; preds = %120
br label %139
135: ; preds = %120
br label %139
136: ; preds = %120
br label %139
137: ; preds = %120
br label %139
138: ; preds = %120
br label %139
139: ; preds = %138, %137, %136, %135, %134, %133, %132, %131, %130, %129, %128, %127, %126, %125, %124, %120
%140 = phi i32 [ 1, %138 ], [ 2, %137 ], [ 3, %136 ], [ 4, %135 ], [ 5, %134 ], [ 6, %133 ], [ 7, %132 ], [ 8, %131 ], [ 9, %130 ], [ 10, %129 ], [ 11, %128 ], [ 12, %127 ], [ 13, %126 ], [ 14, %125 ], [ 15, %124 ], [ 0, %120 ]
%141 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 6
store i32 %140, i32* %141
br label %142
142: ; preds = %139, %120
%143 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 1
%144 = load i32, i32* %143
%145 = shl nsw i32 %144, 4
%146 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 2
%147 = load i32, i32* %146
%148 = add nsw i32 %145, %147
store i32 %148, i32* %143
%149 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 3
%150 = load i32, i32* %149
%151 = shl nsw i32 %150, 4
%152 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 4
%153 = load i32, i32* %152
%154 = add nsw i32 %151, %153
store i32 %154, i32* %149
%155 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 5
%156 = load i32, i32* %155
%157 = shl nsw i32 %156, 4
%158 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 6
%159 = load i32, i32* %158
%160 = add nsw i32 %157, %159
store i32 %160, i32* %155
%161 = trunc i32 %148 to i8
%162 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i8 signext %161, i32 %154, i32 %160)
%163 = load i8, i8* %2
br label %164
164: ; preds = %142, %0
%165 = phi i8 [ %163, %142 ], [ %7, %0 ]
%166 = icmp eq i8 %165, 100
br i1 %166, label %167, label %255
167: ; preds = %164
%168 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 1
%169 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 3
%170 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 5
%171 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i32* %168, i32* %169, i32* %170)
store i8 35, i8* %5
%172 = load i32, i32* %168
%173 = srem i32 %172, 16
%174 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 2
store i32 %173, i32* %174
%175 = sdiv i32 %172, 16
store i32 %175, i32* %168
%176 = load i32, i32* %169
%177 = srem i32 %176, 16
%178 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 4
store i32 %177, i32* %178
%179 = sdiv i32 %176, 16
store i32 %179, i32* %169
%180 = load i32, i32* %170
%181 = srem i32 %180, 16
%182 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 6
store i32 %181, i32* %182
%183 = sdiv i32 %180, 16
store i32 %183, i32* %170
%184 = icmp ult i32 %175, 16
br i1 %184, label %185, label %190
185: ; preds = %167
%186 = sext i32 %175 to i64
%187 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %186
%188 = load i8, i8* %187
%189 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 1
store i8 %188, i8* %189
br label %190
190: ; preds = %185, %167
%191 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 2
%192 = load i32, i32* %191
%193 = icmp ult i32 %192, 16
br i1 %193, label %194, label %199
194: ; preds = %190
%195 = sext i32 %192 to i64
%196 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %195
%197 = load i8, i8* %196
%198 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 2
store i8 %197, i8* %198
br label %199
199: ; preds = %190, %194
%200 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 3
%201 = load i32, i32* %200
%202 = icmp ult i32 %201, 16
br i1 %202, label %203, label %208
203: ; preds = %199
%204 = sext i32 %201 to i64
%205 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %204
%206 = load i8, i8* %205
%207 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 3
store i8 %206, i8* %207
br label %208
208: ; preds = %199, %203
%209 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 4
%210 = load i32, i32* %209
%211 = icmp ult i32 %210, 16
br i1 %211, label %212, label %217
212: ; preds = %208
%213 = sext i32 %210 to i64
%214 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %213
%215 = load i8, i8* %214
%216 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 4
store i8 %215, i8* %216
br label %217
217: ; preds = %208, %212
%218 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 5
%219 = load i32, i32* %218
%220 = icmp ult i32 %219, 16
br i1 %220, label %221, label %226
221: ; preds = %217
%222 = sext i32 %219 to i64
%223 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %222
%224 = load i8, i8* %223
%225 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 5
store i8 %224, i8* %225
br label %226
226: ; preds = %217, %221
%227 = getelementptr inbounds [7 x i32], [7 x i32]* %1, i64 0, i64 6
%228 = load i32, i32* %227
%229 = icmp ult i32 %228, 16
br i1 %229, label %230, label %235
230: ; preds = %226
%231 = sext i32 %228 to i64
%232 = getelementptr inbounds [16 x i8], [16 x i8]* @switch.table.main, i64 0, i64 %231
%233 = load i8, i8* %232
%234 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 6
store i8 %233, i8* %234
br label %235
235: ; preds = %226, %230
%236 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext 35)
%237 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 1
%238 = load i8, i8* %237
%239 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %238)
%240 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 2
%241 = load i8, i8* %240
%242 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %241)
%243 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 3
%244 = load i8, i8* %243
%245 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %244)
%246 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 4
%247 = load i8, i8* %246
%248 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %247)
%249 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 5
%250 = load i8, i8* %249
%251 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %250)
%252 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 6
%253 = load i8, i8* %252
%254 = call i32 (i8*, i8, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8 signext %253)
br label %255
255: ; preds = %235, %164
ret i32 0
}