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


x86 assembly (clang, -O0):
<hex_to_dec>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
lea    -0x6(%rbp),%rsi
lea    0xfa9(%rip),%rdi
call   1040 <scanf@plt>
movl   $0x0,-0x18(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x6,-0x18(%rbp)
jg     126d <hex_to_dec+0x14d>
movslq -0x18(%rbp),%rax
movsbl -0x6(%rbp,%rax,1),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x36,%eax
ja     125a <hex_to_dec+0x13a>
mov    -0x20(%rbp),%rax
lea    0xe8a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movslq -0x18(%rbp),%rax
movb   $0x0,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x1,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x2,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x3,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x4,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x5,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x6,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x7,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x8,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0x9,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xa,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xb,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xc,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xd,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xe,-0x6(%rbp,%rax,1)
jmp    125a <hex_to_dec+0x13a>
movslq -0x18(%rbp),%rax
movb   $0xf,-0x6(%rbp,%rax,1)
jmp    125f <hex_to_dec+0x13f>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1146 <hex_to_dec+0x26>
movsbl -0x5(%rbp),%eax
shl    $0x4,%eax
movsbl -0x4(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0xc(%rbp)
movsbl -0x3(%rbp),%eax
shl    $0x4,%eax
movsbl -0x2(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x10(%rbp)
movsbl -0x1(%rbp),%eax
shl    $0x4,%eax
movsbl 0x0(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0x14(%rbp),%ecx
lea    0xe32(%rip),%rdi
call   1030 <printf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<hex_to_dec>:
push   %rax
lea    0x14dc(%rip),%rdi
lea    0x2(%rsp),%rsi
call   1040 <scanf@plt>
movsbl 0x2(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     118f <hex_to_dec+0x6f>
xor    %eax,%eax
lea    0xeb8(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x2,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x3,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x4,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x5,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x6,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x7,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x8,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0x9,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xa,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xb,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xc,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xd,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xe,%al
jmp    118b <hex_to_dec+0x6b>
mov    $0xf,%al
mov    %al,0x2(%rsp)
movsbl 0x3(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     11ec <hex_to_dec+0xcc>
xor    %eax,%eax
lea    0xf37(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x2,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x3,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x4,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x5,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x6,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x7,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x8,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0x9,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xa,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xb,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xc,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xd,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xe,%al
jmp    11e8 <hex_to_dec+0xc8>
mov    $0xf,%al
mov    %al,0x3(%rsp)
movsbl 0x4(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     1249 <hex_to_dec+0x129>
xor    %eax,%eax
lea    0xfb6(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x2,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x3,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x4,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x5,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x6,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x7,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x8,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0x9,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xa,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xb,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xc,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xd,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xe,%al
jmp    1245 <hex_to_dec+0x125>
mov    $0xf,%al
mov    %al,0x4(%rsp)
movsbl 0x5(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     12a6 <hex_to_dec+0x186>
xor    %eax,%eax
lea    0x1035(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x2,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x3,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x4,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x5,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x6,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x7,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x8,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0x9,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xa,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xb,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xc,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xd,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xe,%al
jmp    12a2 <hex_to_dec+0x182>
mov    $0xf,%al
mov    %al,0x5(%rsp)
movsbl 0x6(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     1303 <hex_to_dec+0x1e3>
xor    %eax,%eax
lea    0x10b4(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x2,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x3,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x4,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x5,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x6,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x7,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x8,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0x9,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xa,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xb,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xc,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xd,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xe,%al
jmp    12ff <hex_to_dec+0x1df>
mov    $0xf,%al
mov    %al,0x6(%rsp)
movsbl 0x7(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     1360 <hex_to_dec+0x240>
xor    %eax,%eax
lea    0x1133(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x2,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x3,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x4,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x5,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x6,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x7,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x8,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0x9,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xa,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xb,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xc,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xd,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xe,%al
jmp    135c <hex_to_dec+0x23c>
mov    $0xf,%al
mov    %al,0x7(%rsp)
movsbl 0x8(%rsp),%ecx
add    $0xffffffd0,%ecx
cmp    $0x36,%ecx
ja     13bd <hex_to_dec+0x29d>
xor    %eax,%eax
lea    0x11b2(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x2,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x3,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x4,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x5,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x6,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x7,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x8,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0x9,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xa,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xb,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xc,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xd,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xe,%al
jmp    13b9 <hex_to_dec+0x299>
mov    $0xf,%al
mov    %al,0x8(%rsp)
movsbl 0x3(%rsp),%eax
shl    $0x4,%eax
movsbl 0x4(%rsp),%esi
add    %eax,%esi
movsbl 0x5(%rsp),%eax
shl    $0x4,%eax
movsbl 0x6(%rsp),%edx
add    %eax,%edx
movsbl 0x7(%rsp),%eax
shl    $0x4,%eax
movsbl 0x8(%rsp),%ecx
add    %eax,%ecx
lea    0x1216(%rip),%rdi
call   1030 <printf@plt>
pop    %rax
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%s\00"
@.str.1 = [16 x i8] c"rgb(%d, %d, %d)\00"
define void @hex_to_dec() {
%1 = alloca [6 x i8]
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 0
%7 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %6)
store i32 0, i32* %5
store i32 0, i32* %5
br label %8
8: ; preds = %82, %0
%9 = load i32, i32* %5
%10 = icmp sle i32 %9, 6
br i1 %10, label %11, label %85
11: ; preds = %8
%12 = load i32, i32* %5
%13 = sext i32 %12 to i64
%14 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %13
%15 = load i8, i8* %14
%16 = sext i8 %15 to i32
switch i32 %16, label %81 [
i32 48, label %17
i32 49, label %21
i32 50, label %25
i32 51, label %29
i32 52, label %33
i32 53, label %37
i32 54, label %41
i32 55, label %45
i32 56, label %49
i32 57, label %53
i32 97, label %57
i32 98, label %61
i32 99, label %65
i32 100, label %69
i32 101, label %73
i32 102, label %77
]
17: ; preds = %11
%18 = load i32, i32* %5
%19 = sext i32 %18 to i64
%20 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %19
store i8 0, i8* %20
br label %81
21: ; preds = %11
%22 = load i32, i32* %5
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %23
store i8 1, i8* %24
br label %81
25: ; preds = %11
%26 = load i32, i32* %5
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %27
store i8 2, i8* %28
br label %81
29: ; preds = %11
%30 = load i32, i32* %5
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %31
store i8 3, i8* %32
br label %81
33: ; preds = %11
%34 = load i32, i32* %5
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %35
store i8 4, i8* %36
br label %81
37: ; preds = %11
%38 = load i32, i32* %5
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %39
store i8 5, i8* %40
br label %81
41: ; preds = %11
%42 = load i32, i32* %5
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %43
store i8 6, i8* %44
br label %81
45: ; preds = %11
%46 = load i32, i32* %5
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %47
store i8 7, i8* %48
br label %81
49: ; preds = %11
%50 = load i32, i32* %5
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %51
store i8 8, i8* %52
br label %81
53: ; preds = %11
%54 = load i32, i32* %5
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %55
store i8 9, i8* %56
br label %81
57: ; preds = %11
%58 = load i32, i32* %5
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %59
store i8 10, i8* %60
br label %81
61: ; preds = %11
%62 = load i32, i32* %5
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %63
store i8 11, i8* %64
br label %81
65: ; preds = %11
%66 = load i32, i32* %5
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %67
store i8 12, i8* %68
br label %81
69: ; preds = %11
%70 = load i32, i32* %5
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %71
store i8 13, i8* %72
br label %81
73: ; preds = %11
%74 = load i32, i32* %5
%75 = sext i32 %74 to i64
%76 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %75
store i8 14, i8* %76
br label %81
77: ; preds = %11
%78 = load i32, i32* %5
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 %79
store i8 15, i8* %80
br label %81
81: ; preds = %11, %77, %73, %69, %65, %61, %57, %53, %49, %45, %41, %37, %33, %29, %25, %21, %17
br label %82
82: ; preds = %81
%83 = load i32, i32* %5
%84 = add nsw i32 %83, 1
store i32 %84, i32* %5
br label %8
85: ; preds = %8
%86 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 1
%87 = load i8, i8* %86
%88 = sext i8 %87 to i32
%89 = mul nsw i32 %88, 16
%90 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 2
%91 = load i8, i8* %90
%92 = sext i8 %91 to i32
%93 = add nsw i32 %89, %92
store i32 %93, i32* %2
%94 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 3
%95 = load i8, i8* %94
%96 = sext i8 %95 to i32
%97 = mul nsw i32 %96, 16
%98 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 4
%99 = load i8, i8* %98
%100 = sext i8 %99 to i32
%101 = add nsw i32 %97, %100
store i32 %101, i32* %3
%102 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 5
%103 = load i8, i8* %102
%104 = sext i8 %103 to i32
%105 = mul nsw i32 %104, 16
%106 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 6
%107 = load i8, i8* %106
%108 = sext i8 %107 to i32
%109 = add nsw i32 %105, %108
store i32 %109, i32* %4
%110 = load i32, i32* %2
%111 = load i32, i32* %3
%112 = load i32, i32* %4
%113 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1, i64 0, i64 0), i32 %110, i32 %111, i32 %112)
ret void
}

LLVM IR (-O2):
@.str = [3 x i8] c"%s\00"
@.str.1 = [16 x i8] c"rgb(%d, %d, %d)\00"
define void @hex_to_dec() {
%1 = alloca [6 x i8]
%2 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 0
%3 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
%4 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 0
%5 = load i8, i8* %4
%6 = sext i8 %5 to i32
switch i32 %6, label %24 [
i32 48, label %22
i32 49, label %7
i32 50, label %8
i32 51, label %9
i32 52, label %10
i32 53, label %11
i32 54, label %12
i32 55, label %13
i32 56, label %14
i32 57, label %15
i32 97, label %16
i32 98, label %17
i32 99, label %18
i32 100, label %19
i32 101, label %20
i32 102, label %21
]
7: ; preds = %0
br label %22
8: ; preds = %0
br label %22
9: ; preds = %0
br label %22
10: ; preds = %0
br label %22
11: ; preds = %0
br label %22
12: ; preds = %0
br label %22
13: ; preds = %0
br label %22
14: ; preds = %0
br label %22
15: ; preds = %0
br label %22
16: ; preds = %0
br label %22
17: ; preds = %0
br label %22
18: ; preds = %0
br label %22
19: ; preds = %0
br label %22
20: ; preds = %0
br label %22
21: ; preds = %0
br label %22
22: ; preds = %0, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7
%23 = phi i8 [ 1, %7 ], [ 2, %8 ], [ 3, %9 ], [ 4, %10 ], [ 5, %11 ], [ 6, %12 ], [ 7, %13 ], [ 8, %14 ], [ 9, %15 ], [ 10, %16 ], [ 11, %17 ], [ 12, %18 ], [ 13, %19 ], [ 14, %20 ], [ 15, %21 ], [ 0, %0 ]
store i8 %23, i8* %4
br label %24
24: ; preds = %22, %0
%25 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 1
%26 = load i8, i8* %25
%27 = sext i8 %26 to i32
switch i32 %27, label %45 [
i32 48, label %43
i32 49, label %42
i32 50, label %41
i32 51, label %40
i32 52, label %39
i32 53, label %38
i32 54, label %37
i32 55, label %36
i32 56, label %35
i32 57, label %34
i32 97, label %33
i32 98, label %32
i32 99, label %31
i32 100, label %30
i32 101, label %29
i32 102, label %28
]
28: ; preds = %24
br label %43
29: ; preds = %24
br label %43
30: ; preds = %24
br label %43
31: ; preds = %24
br label %43
32: ; preds = %24
br label %43
33: ; preds = %24
br label %43
34: ; preds = %24
br label %43
35: ; preds = %24
br label %43
36: ; preds = %24
br label %43
37: ; preds = %24
br label %43
38: ; preds = %24
br label %43
39: ; preds = %24
br label %43
40: ; preds = %24
br label %43
41: ; preds = %24
br label %43
42: ; preds = %24
br label %43
43: ; preds = %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %24
%44 = phi i8 [ 1, %42 ], [ 2, %41 ], [ 3, %40 ], [ 4, %39 ], [ 5, %38 ], [ 6, %37 ], [ 7, %36 ], [ 8, %35 ], [ 9, %34 ], [ 10, %33 ], [ 11, %32 ], [ 12, %31 ], [ 13, %30 ], [ 14, %29 ], [ 15, %28 ], [ 0, %24 ]
store i8 %44, i8* %25
br label %45
45: ; preds = %43, %24
%46 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 2
%47 = load i8, i8* %46
%48 = sext i8 %47 to i32
switch i32 %48, label %66 [
i32 48, label %64
i32 49, label %63
i32 50, label %62
i32 51, label %61
i32 52, label %60
i32 53, label %59
i32 54, label %58
i32 55, label %57
i32 56, label %56
i32 57, label %55
i32 97, label %54
i32 98, label %53
i32 99, label %52
i32 100, label %51
i32 101, label %50
i32 102, label %49
]
49: ; preds = %45
br label %64
50: ; preds = %45
br label %64
51: ; preds = %45
br label %64
52: ; preds = %45
br label %64
53: ; preds = %45
br label %64
54: ; preds = %45
br label %64
55: ; preds = %45
br label %64
56: ; preds = %45
br label %64
57: ; preds = %45
br label %64
58: ; preds = %45
br label %64
59: ; preds = %45
br label %64
60: ; preds = %45
br label %64
61: ; preds = %45
br label %64
62: ; preds = %45
br label %64
63: ; preds = %45
br label %64
64: ; preds = %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %45
%65 = phi i8 [ 1, %63 ], [ 2, %62 ], [ 3, %61 ], [ 4, %60 ], [ 5, %59 ], [ 6, %58 ], [ 7, %57 ], [ 8, %56 ], [ 9, %55 ], [ 10, %54 ], [ 11, %53 ], [ 12, %52 ], [ 13, %51 ], [ 14, %50 ], [ 15, %49 ], [ 0, %45 ]
store i8 %65, i8* %46
br label %66
66: ; preds = %64, %45
%67 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 3
%68 = load i8, i8* %67
%69 = sext i8 %68 to i32
switch i32 %69, label %87 [
i32 48, label %85
i32 49, label %84
i32 50, label %83
i32 51, label %82
i32 52, label %81
i32 53, label %80
i32 54, label %79
i32 55, label %78
i32 56, label %77
i32 57, label %76
i32 97, label %75
i32 98, label %74
i32 99, label %73
i32 100, label %72
i32 101, label %71
i32 102, label %70
]
70: ; preds = %66
br label %85
71: ; preds = %66
br label %85
72: ; preds = %66
br label %85
73: ; preds = %66
br label %85
74: ; preds = %66
br label %85
75: ; preds = %66
br label %85
76: ; preds = %66
br label %85
77: ; preds = %66
br label %85
78: ; preds = %66
br label %85
79: ; preds = %66
br label %85
80: ; preds = %66
br label %85
81: ; preds = %66
br label %85
82: ; preds = %66
br label %85
83: ; preds = %66
br label %85
84: ; preds = %66
br label %85
85: ; preds = %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %66
%86 = phi i8 [ 1, %84 ], [ 2, %83 ], [ 3, %82 ], [ 4, %81 ], [ 5, %80 ], [ 6, %79 ], [ 7, %78 ], [ 8, %77 ], [ 9, %76 ], [ 10, %75 ], [ 11, %74 ], [ 12, %73 ], [ 13, %72 ], [ 14, %71 ], [ 15, %70 ], [ 0, %66 ]
store i8 %86, i8* %67
br label %87
87: ; preds = %85, %66
%88 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 4
%89 = load i8, i8* %88
%90 = sext i8 %89 to i32
switch i32 %90, label %108 [
i32 48, label %106
i32 49, label %105
i32 50, label %104
i32 51, label %103
i32 52, label %102
i32 53, label %101
i32 54, label %100
i32 55, label %99
i32 56, label %98
i32 57, label %97
i32 97, label %96
i32 98, label %95
i32 99, label %94
i32 100, label %93
i32 101, label %92
i32 102, label %91
]
91: ; preds = %87
br label %106
92: ; preds = %87
br label %106
93: ; preds = %87
br label %106
94: ; preds = %87
br label %106
95: ; preds = %87
br label %106
96: ; preds = %87
br label %106
97: ; preds = %87
br label %106
98: ; preds = %87
br label %106
99: ; preds = %87
br label %106
100: ; preds = %87
br label %106
101: ; preds = %87
br label %106
102: ; preds = %87
br label %106
103: ; preds = %87
br label %106
104: ; preds = %87
br label %106
105: ; preds = %87
br label %106
106: ; preds = %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %87
%107 = phi i8 [ 1, %105 ], [ 2, %104 ], [ 3, %103 ], [ 4, %102 ], [ 5, %101 ], [ 6, %100 ], [ 7, %99 ], [ 8, %98 ], [ 9, %97 ], [ 10, %96 ], [ 11, %95 ], [ 12, %94 ], [ 13, %93 ], [ 14, %92 ], [ 15, %91 ], [ 0, %87 ]
store i8 %107, i8* %88
br label %108
108: ; preds = %106, %87
%109 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 5
%110 = load i8, i8* %109
%111 = sext i8 %110 to i32
switch i32 %111, label %129 [
i32 48, label %127
i32 49, label %126
i32 50, label %125
i32 51, label %124
i32 52, label %123
i32 53, label %122
i32 54, label %121
i32 55, label %120
i32 56, label %119
i32 57, label %118
i32 97, label %117
i32 98, label %116
i32 99, label %115
i32 100, label %114
i32 101, label %113
i32 102, label %112
]
112: ; preds = %108
br label %127
113: ; preds = %108
br label %127
114: ; preds = %108
br label %127
115: ; preds = %108
br label %127
116: ; preds = %108
br label %127
117: ; preds = %108
br label %127
118: ; preds = %108
br label %127
119: ; preds = %108
br label %127
120: ; preds = %108
br label %127
121: ; preds = %108
br label %127
122: ; preds = %108
br label %127
123: ; preds = %108
br label %127
124: ; preds = %108
br label %127
125: ; preds = %108
br label %127
126: ; preds = %108
br label %127
127: ; preds = %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %108
%128 = phi i8 [ 1, %126 ], [ 2, %125 ], [ 3, %124 ], [ 4, %123 ], [ 5, %122 ], [ 6, %121 ], [ 7, %120 ], [ 8, %119 ], [ 9, %118 ], [ 10, %117 ], [ 11, %116 ], [ 12, %115 ], [ 13, %114 ], [ 14, %113 ], [ 15, %112 ], [ 0, %108 ]
store i8 %128, i8* %109
br label %129
129: ; preds = %127, %108
%130 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 6
%131 = load i8, i8* %130
%132 = sext i8 %131 to i32
switch i32 %132, label %150 [
i32 48, label %148
i32 49, label %147
i32 50, label %146
i32 51, label %145
i32 52, label %144
i32 53, label %143
i32 54, label %142
i32 55, label %141
i32 56, label %140
i32 57, label %139
i32 97, label %138
i32 98, label %137
i32 99, label %136
i32 100, label %135
i32 101, label %134
i32 102, label %133
]
133: ; preds = %129
br label %148
134: ; preds = %129
br label %148
135: ; preds = %129
br label %148
136: ; preds = %129
br label %148
137: ; preds = %129
br label %148
138: ; preds = %129
br label %148
139: ; preds = %129
br label %148
140: ; preds = %129
br label %148
141: ; preds = %129
br label %148
142: ; preds = %129
br label %148
143: ; preds = %129
br label %148
144: ; preds = %129
br label %148
145: ; preds = %129
br label %148
146: ; preds = %129
br label %148
147: ; preds = %129
br label %148
148: ; preds = %147, %146, %145, %144, %143, %142, %141, %140, %139, %138, %137, %136, %135, %134, %133, %129
%149 = phi i8 [ 1, %147 ], [ 2, %146 ], [ 3, %145 ], [ 4, %144 ], [ 5, %143 ], [ 6, %142 ], [ 7, %141 ], [ 8, %140 ], [ 9, %139 ], [ 10, %138 ], [ 11, %137 ], [ 12, %136 ], [ 13, %135 ], [ 14, %134 ], [ 15, %133 ], [ 0, %129 ]
store i8 %149, i8* %130
br label %150
150: ; preds = %148, %129
%151 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 1
%152 = load i8, i8* %151
%153 = sext i8 %152 to i32
%154 = shl nsw i32 %153, 4
%155 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 2
%156 = load i8, i8* %155
%157 = sext i8 %156 to i32
%158 = add nsw i32 %154, %157
%159 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 3
%160 = load i8, i8* %159
%161 = sext i8 %160 to i32
%162 = shl nsw i32 %161, 4
%163 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 4
%164 = load i8, i8* %163
%165 = sext i8 %164 to i32
%166 = add nsw i32 %162, %165
%167 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 5
%168 = load i8, i8* %167
%169 = sext i8 %168 to i32
%170 = shl nsw i32 %169, 4
%171 = getelementptr inbounds [6 x i8], [6 x i8]* %1, i64 0, i64 6
%172 = load i8, i8* %171
%173 = sext i8 %172 to i32
%174 = add nsw i32 %170, %173
%175 = call i32 @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1, i64 0, i64 0), i32 %158, i32 %166, i32 %174)
ret void
}