#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, char, char, ...);
int /*<<< orphan*/ scanf(char *, char *);
int /*<<< orphan*/ strcat(char *, char *);
int strlen(char *);
int main() {
  char tip, hexa[7], decain[5], decain2[5];
  int i = 0, deca[4] = {0, 0, 0, 0}, hexanum[7], p = 1;
  float helper, tupezik;
  scanf("%c", &tip);
  if (tip == 'h') {
    scanf("%s", hexa);
    for (i = 0; i < 7; i++) {
      if (hexa[i] >= '0' && hexa[i] <= '9')
        hexanum[i] = hexa[i] - 48;
      if (hexa[i] >= 'a' && hexa[i] <= 'f')
        hexanum[i] = hexa[i] - 87;
    }
    for (i = 1; i < 4; i++) {
      deca[i] = hexanum[i * 2] + hexanum[i * 2 - 1] * 16;
    }
    printf("rgb(%d, %d, %d)\n", deca[1], deca[2], deca[3]);
  }
  if (tip == 'd') {
    scanf("%s", decain);
    scanf("%s", decain2);
    strcat(decain, decain2);
    scanf("%s", decain2);
    strcat(decain, decain2);
    for (i = 0; i < strlen(decain); i++) {
      if (decain[i] != ',')
        deca[p] = deca[p] * 10 + decain[i] - 48;
      else
        p++;
    }
    p = 0;
    for (i = 1; i <= 3; i++) {
      if (deca[i] > 16) {
        tupezik = deca[i];
        helper = tupezik / 16;
        deca[i] = deca[i] / 16;
        helper = (helper - deca[i]) * 16;
        if (deca[i] < 10) {
          hexa[i * 2 - 1] = deca[i] + 48;
        } else
          hexa[i * 2 - 1] = deca[i] + 87;
        if (helper < 10) {
          hexa[i * 2] = helper + 48;
        } else
          hexa[i * 2] = helper + 87;
      } else {
        hexa[i * 2 - 1] = '0';
        if (deca[i - 1] < 10) {
          hexa[i * 2] = deca[i] + 48;
        } else
          hexa[i * 2] = deca[i] + 87;
      }
    }
    printf("#%c%c%c%c%c%c\n", hexa[1], hexa[2], hexa[3], hexa[4], hexa[5],
           hexa[6]);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x1c(%rbp)
lea    -0x30(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
movl   $0x1,-0x54(%rbp)
lea    0xe8c(%rip),%rdi
lea    -0x5(%rbp),%rsi
call   1060 <scanf@plt>
movsbl -0x5(%rbp),%eax
cmp    $0x68,%eax
jne    12a9 <main+0x159>
lea    -0xc(%rbp),%rsi
lea    0xe6e(%rip),%rdi
call   1060 <scanf@plt>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    123e <main+0xee>
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%eax
cmp    $0x30,%eax
jl     11f3 <main+0xa3>
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%eax
cmp    $0x39,%eax
jg     11f3 <main+0xa3>
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%ecx
sub    $0x30,%ecx
movslq -0x1c(%rbp),%rax
mov    %ecx,-0x50(%rbp,%rax,4)
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%eax
cmp    $0x61,%eax
jl     122b <main+0xdb>
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%eax
cmp    $0x66,%eax
jg     122b <main+0xdb>
movslq -0x1c(%rbp),%rax
movsbl -0xc(%rbp,%rax,1),%ecx
sub    $0x57,%ecx
movslq -0x1c(%rbp),%rax
mov    %ecx,-0x50(%rbp,%rax,4)
jmp    1230 <main+0xe0>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    11b1 <main+0x61>
movl   $0x1,-0x1c(%rbp)
cmpl   $0x4,-0x1c(%rbp)
jge    1285 <main+0x135>
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
cltq
mov    -0x50(%rbp,%rax,4),%ecx
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
cltq
mov    -0x50(%rbp,%rax,4),%eax
shl    $0x4,%eax
add    %eax,%ecx
movslq -0x1c(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1245 <main+0xf5>
mov    -0x2c(%rbp),%eax
mov    %al,%dl
mov    -0x28(%rbp),%eax
mov    %al,%cl
mov    -0x24(%rbp),%eax
lea    0xd7d(%rip),%rdi
movsbl %dl,%esi
movsbl %cl,%edx
movsbl %al,%ecx
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x5(%rbp),%eax
cmp    $0x64,%eax
jne    1552 <main+0x402>
lea    -0x11(%rbp),%rsi
lea    0xd52(%rip),%rdi
call   1060 <scanf@plt>
lea    -0x16(%rbp),%rsi
lea    0xd42(%rip),%rdi
call   1060 <scanf@plt>
lea    -0x11(%rbp),%rdi
lea    -0x16(%rbp),%rsi
call   1070 <strcat@plt>
lea    -0x16(%rbp),%rsi
lea    0xd25(%rip),%rdi
call   1060 <scanf@plt>
lea    -0x11(%rbp),%rdi
lea    -0x16(%rbp),%rsi
call   1070 <strcat@plt>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x60(%rbp)
lea    -0x11(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,%ecx
mov    -0x60(%rbp),%eax
cmp    %ecx,%eax
jge    1375 <main+0x225>
movslq -0x1c(%rbp),%rax
movsbl -0x11(%rbp,%rax,1),%eax
cmp    $0x2c,%eax
je     1359 <main+0x209>
movslq -0x54(%rbp),%rax
imul   $0xa,-0x30(%rbp,%rax,4),%ecx
movslq -0x1c(%rbp),%rax
movsbl -0x11(%rbp,%rax,1),%eax
add    %eax,%ecx
sub    $0x30,%ecx
movslq -0x54(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
jmp    1362 <main+0x212>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1367 <main+0x217>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1307 <main+0x1b7>
movl   $0x0,-0x54(%rbp)
movl   $0x1,-0x1c(%rbp)
cmpl   $0x3,-0x1c(%rbp)
jg     151f <main+0x3cf>
movslq -0x1c(%rbp),%rax
cmpl   $0x10,-0x30(%rbp,%rax,4)
jle    14ad <main+0x35d>
movslq -0x1c(%rbp),%rax
cvtsi2ssl -0x30(%rbp,%rax,4),%xmm0
movss  %xmm0,-0x5c(%rbp)
movss  -0x5c(%rbp),%xmm0
movss  0xc48(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movslq -0x1c(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
movslq -0x1c(%rbp),%rax
mov    %ecx,-0x30(%rbp,%rax,4)
movss  -0x58(%rbp),%xmm0
movslq -0x1c(%rbp),%rax
cvtsi2ssl -0x30(%rbp,%rax,4),%xmm1
subss  %xmm1,%xmm0
movss  0xc0a(%rip),%xmm1
mulss  %xmm1,%xmm0
movss  %xmm0,-0x58(%rbp)
movslq -0x1c(%rbp),%rax
cmpl   $0xa,-0x30(%rbp,%rax,4)
jge    142f <main+0x2df>
movslq -0x1c(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
add    $0x30,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
jmp    144b <main+0x2fb>
movslq -0x1c(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
add    $0x57,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
movss  0xbb1(%rip),%xmm0
ucomiss -0x58(%rbp),%xmm0
jbe    1485 <main+0x335>
movss  -0x58(%rbp),%xmm0
movss  0xba2(%rip),%xmm1
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
jmp    14a8 <main+0x358>
movss  -0x58(%rbp),%xmm0
movss  0xb76(%rip),%xmm1
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
jmp    150c <main+0x3bc>
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
cltq
movb   $0x30,-0xc(%rbp,%rax,1)
mov    -0x1c(%rbp),%eax
sub    $0x1,%eax
cltq
cmpl   $0xa,-0x30(%rbp,%rax,4)
jge    14ee <main+0x39e>
movslq -0x1c(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
add    $0x30,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
jmp    1507 <main+0x3b7>
movslq -0x1c(%rbp),%rax
mov    -0x30(%rbp,%rax,4),%eax
add    $0x57,%eax
mov    %al,%cl
mov    -0x1c(%rbp),%eax
shl    $0x1,%eax
cltq
mov    %cl,-0xc(%rbp,%rax,1)
jmp    150c <main+0x3bc>
jmp    1511 <main+0x3c1>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1383 <main+0x233>
mov    -0xb(%rbp),%sil
mov    -0xa(%rbp),%dl
mov    -0x9(%rbp),%cl
movsbl -0x8(%rbp),%r8d
movsbl -0x7(%rbp),%r9d
movsbl -0x6(%rbp),%eax
lea    0xae9(%rip),%rdi
movsbl %sil,%esi
movsbl %dl,%edx
movsbl %cl,%ecx
mov    %eax,(%rsp)
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x30,%rsp
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xeb9(%rip),%rdi
lea    0x8(%rsp),%rsi
call   1050 <scanf@plt>
mov    0x8(%rsp),%al
xor    %r12d,%r12d
cmp    $0x68,%al
jne    1245 <main+0x105>
lea    0xe9c(%rip),%rdi
lea    0x9(%rsp),%rsi
call   1050 <scanf@plt>
movsbl 0xa(%rsp),%r12d
lea    -0x30(%r12),%eax
cmp    $0xa,%al
jae    119a <main+0x5a>
add    $0xffffffd0,%r12d
jmp    119e <main+0x5e>
add    $0xffffffa9,%r12d
movsbl 0xb(%rsp),%eax
lea    -0x30(%rax),%ecx
cmp    $0xa,%cl
jae    11b0 <main+0x70>
add    $0xffffffd0,%eax
jmp    11b3 <main+0x73>
add    $0xffffffa9,%eax
movsbl 0xc(%rsp),%ecx
lea    -0x30(%rcx),%edx
cmp    $0xa,%dl
jae    11c5 <main+0x85>
add    $0xffffffd0,%ecx
jmp    11c8 <main+0x88>
add    $0xffffffa9,%ecx
movsbl 0xd(%rsp),%edx
lea    -0x30(%rdx),%esi
cmp    $0xa,%sil
jae    11db <main+0x9b>
add    $0xffffffd0,%edx
jmp    11de <main+0x9e>
add    $0xffffffa9,%edx
movsbl 0xe(%rsp),%edi
lea    -0x30(%rdi),%esi
cmp    $0xa,%sil
jae    11f1 <main+0xb1>
add    $0xffffffd0,%edi
jmp    11f4 <main+0xb4>
add    $0xffffffa9,%edi
movsbl 0xf(%rsp),%esi
lea    -0x30(%rsi),%ebp
cmp    $0xa,%bpl
jae    1207 <main+0xc7>
add    $0xffffffd0,%esi
jmp    120a <main+0xca>
add    $0xffffffa9,%esi
shl    $0x4,%r12d
add    %eax,%r12d
mov    %r12d,0x14(%rsp)
shl    $0x4,%ecx
add    %edx,%ecx
mov    %ecx,0x18(%rsp)
shl    $0x4,%edi
add    %esi,%edi
mov    %edi,0x1c(%rsp)
movsbl %r12b,%esi
movsbl %cl,%edx
movsbl %dil,%ecx
lea    0xde0(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x8(%rsp),%al
cmp    $0x64,%al
jne    14bd <main+0x37d>
lea    0xdc3(%rip),%r14
lea    0x26(%rsp),%r15
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <scanf@plt>
lea    0x2b(%rsp),%rbx
mov    %r14,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1060 <strcat@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   1050 <scanf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
call   1060 <strcat@plt>
mov    %r15,%rdi
call   1030 <strlen@plt>
test   %eax,%eax
jle    12eb <main+0x1ab>
mov    $0x1,%ebp
xor    %ebx,%ebx
lea    0x26(%rsp),%r14
jmp    12c6 <main+0x186>
nop
add    $0x1,%ebp
add    $0x1,%rbx
mov    %r14,%rdi
call   1030 <strlen@plt>
cltq
cmp    %rax,%rbx
jge    12e6 <main+0x1a6>
movsbl 0x26(%rsp,%rbx,1),%eax
cmp    $0x2c,%eax
je     12b0 <main+0x170>
movslq %ebp,%rcx
mov    0x10(%rsp,%rcx,4),%edx
lea    (%rdx,%rdx,4),%edx
lea    (%rax,%rdx,2),%eax
add    $0xffffffd0,%eax
mov    %eax,0x10(%rsp,%rcx,4)
jmp    12b3 <main+0x173>
mov    0x14(%rsp),%r12d
cmp    $0x10,%r12d
jle    1350 <main+0x210>
xorps  %xmm0,%xmm0
cvtsi2ss %r12d,%xmm0
mulss  0xcff(%rip),%xmm0
mov    %r12d,%edx
shr    $0x4,%edx
mov    %edx,0x14(%rsp)
cvtsi2ss %edx,%xmm1
subss  %xmm1,%xmm0
mulss  0xce9(%rip),%xmm0
cmp    $0xa0,%r12d
mov    $0x30,%ecx
mov    $0x57,%eax
cmovb  %ecx,%eax
add    %dl,%al
mov    %al,0xa(%rsp)
movss  0xccb(%rip),%xmm1
ucomiss %xmm0,%xmm1
jbe    1363 <main+0x223>
addss  0xcc6(%rip),%xmm0
cvttss2si %xmm0,%ecx
jmp    137b <main+0x23b>
movb   $0x30,0xa(%rsp)
cmpl   $0x9,0x10(%rsp)
jg     1371 <main+0x231>
lea    0x30(%r12),%ecx
jmp    1376 <main+0x236>
addss  0xca1(%rip),%xmm0
cvttss2si %xmm0,%ecx
jmp    137b <main+0x23b>
lea    0x57(%r12),%ecx
mov    $0x30,%al
mov    %r12d,%edx
mov    %cl,0xb(%rsp)
mov    0x18(%rsp),%esi
cmp    $0x10,%esi
jle    13e5 <main+0x2a5>
xorps  %xmm0,%xmm0
cvtsi2ss %esi,%xmm0
mulss  0xc69(%rip),%xmm0
mov    %esi,%ebp
shr    $0x4,%ebp
mov    %ebp,0x18(%rsp)
xorps  %xmm1,%xmm1
cvtsi2ss %ebp,%xmm1
subss  %xmm1,%xmm0
mulss  0xc51(%rip),%xmm0
cmp    $0xa0,%esi
mov    $0x30,%edx
mov    $0x57,%edi
cmovb  %edx,%edi
add    %bpl,%dil
mov    %dil,0xc(%rsp)
movss  0xc32(%rip),%xmm1
ucomiss %xmm0,%xmm1
jbe    13f4 <main+0x2b4>
addss  0xc2d(%rip),%xmm0
jmp    13fc <main+0x2bc>
movb   $0x30,0xc(%rsp)
cmp    $0xa,%edx
jge    1404 <main+0x2c4>
lea    0x30(%rsi),%edx
jmp    1407 <main+0x2c7>
addss  0xc10(%rip),%xmm0
cvttss2si %xmm0,%edx
mov    %ebp,%esi
jmp    140a <main+0x2ca>
lea    0x57(%rsi),%edx
mov    $0x30,%dil
mov    %dl,0xd(%rsp)
mov    0x1c(%rsp),%ebx
cmp    $0x10,%ebx
jle    1470 <main+0x330>
xorps  %xmm0,%xmm0
cvtsi2ss %ebx,%xmm0
mulss  0xbda(%rip),%xmm0
mov    %ebx,%ebp
shr    $0x4,%ebp
xorps  %xmm1,%xmm1
cvtsi2ss %ebp,%xmm1
subss  %xmm1,%xmm0
mulss  0xbc6(%rip),%xmm0
cmp    $0xa0,%ebx
mov    $0x30,%ebx
mov    $0x57,%esi
cmovb  %ebx,%esi
add    %bpl,%sil
mov    %sil,0xe(%rsp)
movss  0xba7(%rip),%xmm1
ucomiss %xmm0,%xmm1
jbe    147f <main+0x33f>
addss  0xba2(%rip),%xmm0
jmp    1487 <main+0x347>
movb   $0x30,0xe(%rsp)
cmp    $0xa,%esi
jge    148d <main+0x34d>
add    $0x30,%bl
jmp    1490 <main+0x350>
addss  0xb85(%rip),%xmm0
cvttss2si %xmm0,%ebx
jmp    1493 <main+0x353>
add    $0x57,%bl
mov    $0x30,%sil
mov    %bl,0xf(%rsp)
movsbl %dl,%r8d
movsbl %sil,%r9d
movsbl %bl,%edx
mov    %edx,(%rsp)
movsbl %al,%esi
movsbl %cl,%edx
movsbl %dil,%ecx
lea    0xb75(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%c\00"
@.str.1 = [3 x i8] c"%s\00"
@.str.2 = [17 x i8] c"rgb(%d, %d, %d)\0A\00"
@.str.3 = [15 x i8] c"#%c%c%c%c%c%c\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i8
%3 = alloca [7 x i8]
%4 = alloca [5 x i8]
%5 = alloca [5 x i8]
%6 = alloca i32
%7 = alloca [4 x i32]
%8 = alloca [7 x i32]
%9 = alloca i32
%10 = alloca float
%11 = alloca float
store i32 0, i32* %1
store i32 0, i32* %6
%12 = bitcast [4 x i32]* %7 to i8*
store i32 1, i32* %9
%13 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
%14 = load i8, i8* %2
%15 = sext i8 %14 to i32
%16 = icmp eq i32 %15, 104
br i1 %16, label %17, label %110
17: ; preds = %0
%18 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 0
%19 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %18)
store i32 0, i32* %6
br label %20
20: ; preds = %72, %17
%21 = load i32, i32* %6
%22 = icmp slt i32 %21, 7
br i1 %22, label %23, label %75
23: ; preds = %20
%24 = load i32, i32* %6
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %25
%27 = load i8, i8* %26
%28 = sext i8 %27 to i32
%29 = icmp sge i32 %28, 48
br i1 %29, label %30, label %47
30: ; preds = %23
%31 = load i32, i32* %6
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %32
%34 = load i8, i8* %33
%35 = sext i8 %34 to i32
%36 = icmp sle i32 %35, 57
br i1 %36, label %37, label %47
37: ; preds = %30
%38 = load i32, i32* %6
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %39
%41 = load i8, i8* %40
%42 = sext i8 %41 to i32
%43 = sub nsw i32 %42, 48
%44 = load i32, i32* %6
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds [7 x i32], [7 x i32]* %8, i64 0, i64 %45
store i32 %43, i32* %46
br label %47
47: ; preds = %37, %30, %23
%48 = load i32, i32* %6
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %49
%51 = load i8, i8* %50
%52 = sext i8 %51 to i32
%53 = icmp sge i32 %52, 97
br i1 %53, label %54, label %71
54: ; preds = %47
%55 = load i32, i32* %6
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %56
%58 = load i8, i8* %57
%59 = sext i8 %58 to i32
%60 = icmp sle i32 %59, 102
br i1 %60, label %61, label %71
61: ; preds = %54
%62 = load i32, i32* %6
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %63
%65 = load i8, i8* %64
%66 = sext i8 %65 to i32
%67 = sub nsw i32 %66, 87
%68 = load i32, i32* %6
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds [7 x i32], [7 x i32]* %8, i64 0, i64 %69
store i32 %67, i32* %70
br label %71
71: ; preds = %61, %54, %47
br label %72
72: ; preds = %71
%73 = load i32, i32* %6
%74 = add nsw i32 %73, 1
store i32 %74, i32* %6
br label %20
75: ; preds = %20
store i32 1, i32* %6
br label %76
76: ; preds = %96, %75
%77 = load i32, i32* %6
%78 = icmp slt i32 %77, 4
br i1 %78, label %79, label %99
79: ; preds = %76
%80 = load i32, i32* %6
%81 = mul nsw i32 %80, 2
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds [7 x i32], [7 x i32]* %8, i64 0, i64 %82
%84 = load i32, i32* %83
%85 = load i32, i32* %6
%86 = mul nsw i32 %85, 2
%87 = sub nsw i32 %86, 1
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [7 x i32], [7 x i32]* %8, i64 0, i64 %88
%90 = load i32, i32* %89
%91 = mul nsw i32 %90, 16
%92 = add nsw i32 %84, %91
%93 = load i32, i32* %6
%94 = sext i32 %93 to i64
%95 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %94
store i32 %92, i32* %95
br label %96
96: ; preds = %79
%97 = load i32, i32* %6
%98 = add nsw i32 %97, 1
store i32 %98, i32* %6
br label %76
99: ; preds = %76
%100 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 1
%101 = load i32, i32* %100
%102 = trunc i32 %101 to i8
%103 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 2
%104 = load i32, i32* %103
%105 = trunc i32 %104 to i8
%106 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 3
%107 = load i32, i32* %106
%108 = trunc i32 %107 to i8
%109 = call i32 (i8*, i8, i8, i8, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0), i8 signext %102, i8 signext %105, i8 signext %108)
br label %110
110: ; preds = %99, %0
%111 = load i8, i8* %2
%112 = sext i8 %111 to i32
%113 = icmp eq i32 %112, 100
br i1 %113, label %114, label %301
114: ; preds = %110
%115 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 0
%116 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %115)
%117 = getelementptr inbounds [5 x i8], [5 x i8]* %5, i64 0, i64 0
%118 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %117)
%119 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 0
%120 = getelementptr inbounds [5 x i8], [5 x i8]* %5, i64 0, i64 0
%121 = call i32 @strcat(i8* %119, i8* %120)
%122 = getelementptr inbounds [5 x i8], [5 x i8]* %5, i64 0, i64 0
%123 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0), i8* %122)
%124 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 0
%125 = getelementptr inbounds [5 x i8], [5 x i8]* %5, i64 0, i64 0
%126 = call i32 @strcat(i8* %124, i8* %125)
store i32 0, i32* %6
br label %127
127: ; preds = %159, %114
%128 = load i32, i32* %6
%129 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 0
%130 = call i32 @strlen(i8* %129)
%131 = icmp slt i32 %128, %130
br i1 %131, label %132, label %162
132: ; preds = %127
%133 = load i32, i32* %6
%134 = sext i32 %133 to i64
%135 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 %134
%136 = load i8, i8* %135
%137 = sext i8 %136 to i32
%138 = icmp ne i32 %137, 44
br i1 %138, label %139, label %155
139: ; preds = %132
%140 = load i32, i32* %9
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %141
%143 = load i32, i32* %142
%144 = mul nsw i32 %143, 10
%145 = load i32, i32* %6
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [5 x i8], [5 x i8]* %4, i64 0, i64 %146
%148 = load i8, i8* %147
%149 = sext i8 %148 to i32
%150 = add nsw i32 %144, %149
%151 = sub nsw i32 %150, 48
%152 = load i32, i32* %9
%153 = sext i32 %152 to i64
%154 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %153
store i32 %151, i32* %154
br label %158
155: ; preds = %132
%156 = load i32, i32* %9
%157 = add nsw i32 %156, 1
store i32 %157, i32* %9
br label %158
158: ; preds = %155, %139
br label %159
159: ; preds = %158
%160 = load i32, i32* %6
%161 = add nsw i32 %160, 1
store i32 %161, i32* %6
br label %127
162: ; preds = %127
store i32 0, i32* %9
store i32 1, i32* %6
br label %163
163: ; preds = %281, %162
%164 = load i32, i32* %6
%165 = icmp sle i32 %164, 3
br i1 %165, label %166, label %284
166: ; preds = %163
%167 = load i32, i32* %6
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %168
%170 = load i32, i32* %169
%171 = icmp sgt i32 %170, 16
br i1 %171, label %172, label %245
172: ; preds = %166
%173 = load i32, i32* %6
%174 = sext i32 %173 to i64
%175 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %174
%176 = load i32, i32* %175
%177 = sitofp i32 %176 to float
store float %177, float* %11
%178 = load float, float* %11
%179 = fdiv float %178, 1.600000e+01
store float %179, float* %10
%180 = load i32, i32* %6
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %181
%183 = load i32, i32* %182
%184 = sdiv i32 %183, 16
%185 = load i32, i32* %6
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %186
store i32 %184, i32* %187
%188 = load float, float* %10
%189 = load i32, i32* %6
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %190
%192 = load i32, i32* %191
%193 = sitofp i32 %192 to float
%194 = fsub float %188, %193
%195 = fmul float %194, 1.600000e+01
store float %195, float* %10
%196 = load i32, i32* %6
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %197
%199 = load i32, i32* %198
%200 = icmp slt i32 %199, 10
br i1 %200, label %201, label %213
201: ; preds = %172
%202 = load i32, i32* %6
%203 = sext i32 %202 to i64
%204 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %203
%205 = load i32, i32* %204
%206 = add nsw i32 %205, 48
%207 = trunc i32 %206 to i8
%208 = load i32, i32* %6
%209 = mul nsw i32 %208, 2
%210 = sub nsw i32 %209, 1
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %211
store i8 %207, i8* %212
br label %225
213: ; preds = %172
%214 = load i32, i32* %6
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %215
%217 = load i32, i32* %216
%218 = add nsw i32 %217, 87
%219 = trunc i32 %218 to i8
%220 = load i32, i32* %6
%221 = mul nsw i32 %220, 2
%222 = sub nsw i32 %221, 1
%223 = sext i32 %222 to i64
%224 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %223
store i8 %219, i8* %224
br label %225
225: ; preds = %213, %201
%226 = load float, float* %10
%227 = fcmp olt float %226, 1.000000e+01
br i1 %227, label %228, label %236
228: ; preds = %225
%229 = load float, float* %10
%230 = fadd float %229, 4.800000e+01
%231 = fptosi float %230 to i8
%232 = load i32, i32* %6
%233 = mul nsw i32 %232, 2
%234 = sext i32 %233 to i64
%235 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %234
store i8 %231, i8* %235
br label %244
236: ; preds = %225
%237 = load float, float* %10
%238 = fadd float %237, 8.700000e+01
%239 = fptosi float %238 to i8
%240 = load i32, i32* %6
%241 = mul nsw i32 %240, 2
%242 = sext i32 %241 to i64
%243 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %242
store i8 %239, i8* %243
br label %244
244: ; preds = %236, %228
br label %280
245: ; preds = %166
%246 = load i32, i32* %6
%247 = mul nsw i32 %246, 2
%248 = sub nsw i32 %247, 1
%249 = sext i32 %248 to i64
%250 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %249
store i8 48, i8* %250
%251 = load i32, i32* %6
%252 = sub nsw i32 %251, 1
%253 = sext i32 %252 to i64
%254 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %253
%255 = load i32, i32* %254
%256 = icmp slt i32 %255, 10
br i1 %256, label %257, label %268
257: ; preds = %245
%258 = load i32, i32* %6
%259 = sext i32 %258 to i64
%260 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %259
%261 = load i32, i32* %260
%262 = add nsw i32 %261, 48
%263 = trunc i32 %262 to i8
%264 = load i32, i32* %6
%265 = mul nsw i32 %264, 2
%266 = sext i32 %265 to i64
%267 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %266
store i8 %263, i8* %267
br label %279
268: ; preds = %245
%269 = load i32, i32* %6
%270 = sext i32 %269 to i64
%271 = getelementptr inbounds [4 x i32], [4 x i32]* %7, i64 0, i64 %270
%272 = load i32, i32* %271
%273 = add nsw i32 %272, 87
%274 = trunc i32 %273 to i8
%275 = load i32, i32* %6
%276 = mul nsw i32 %275, 2
%277 = sext i32 %276 to i64
%278 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 %277
store i8 %274, i8* %278
br label %279
279: ; preds = %268, %257
br label %280
280: ; preds = %279, %244
br label %281
281: ; preds = %280
%282 = load i32, i32* %6
%283 = add nsw i32 %282, 1
store i32 %283, i32* %6
br label %163
284: ; preds = %163
%285 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 1
%286 = load i8, i8* %285
%287 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 2
%288 = load i8, i8* %287
%289 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 3
%290 = load i8, i8* %289
%291 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 4
%292 = load i8, i8* %291
%293 = sext i8 %292 to i32
%294 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 5
%295 = load i8, i8* %294
%296 = sext i8 %295 to i32
%297 = getelementptr inbounds [7 x i8], [7 x i8]* %3, i64 0, i64 6
%298 = load i8, i8* %297
%299 = sext i8 %298 to i32
%300 = call i32 (i8*, i8, i8, i8, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0), i8 signext %286, i8 signext %288, i8 signext %290, i32 %293, i32 %296, i32 %299)
br label %301
301: ; preds = %284, %110
ret i32 0
}

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