#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*/ COLOR_PAIR(int);
int /*<<< orphan*/ addch(char);
int /*<<< orphan*/ attroff(int /*<<< orphan*/);
int /*<<< orphan*/ attron(int /*<<< orphan*/);
int /*<<< orphan*/ erase();
int fabs(long double);
int /*<<< orphan*/ move(int, int /*<<< orphan*/);
int render(short color, long double zoom, long double shift_x,
           long double shift_y, int width, int height) {
  long long x_scale = 25 * fabs(zoom);
  long long y_scale = 10 * fabs(zoom);
  shift_x = shift_x + width * (zoom - 1);
  long double i, j, r;
  int k, kk;
  kk = 0;
  long double x, y;
  y = -height + shift_y;
  erase();
  int c = 0;
  while (c++, y++ < (height - 1 + shift_y)) {
    move(c, 0);
    for (x = 0 + shift_x; x++ < 2 * width + shift_x;) {
      for (i = k = r = 0; j = r * r - i * i - 2 + x / x_scale,
          i = 2 * r * i + y / y_scale, j * j + i * i < 11 && k++ < 111;
           r = j)
        ;
      if (color && (k & 15) != kk) {
        attroff(COLOR_PAIR(k & 15));
        attron(COLOR_PAIR(k & 15));
        kk = k & 15;
      }
      addch(" .:-;!/>)|&IH%*#"[k & 15]);
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<render>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    %di,%ax
fldt   0x30(%rbp)
fldt   0x20(%rbp)
fldt   0x10(%rbp)
mov    %ax,-0x2(%rbp)
fstpt  -0x20(%rbp)
fstpt  -0x30(%rbp)
fstpt  -0x40(%rbp)
mov    %esi,-0x44(%rbp)
mov    %edx,-0x48(%rbp)
fldt   -0x20(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1060 <fabs@plt>
mov    %eax,%ecx
mov    %ecx,%eax
lea    (%rax,%rax,4),%ecx
mov    %ecx,%eax
lea    (%rax,%rax,4),%eax
cltq
mov    %rax,-0x50(%rbp)
fldt   -0x20(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1060 <fabs@plt>
mov    %eax,%ecx
add    %ecx,%ecx
mov    %ecx,%eax
lea    (%rax,%rax,4),%eax
cltq
mov    %rax,-0x58(%rbp)
fldt   -0x30(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0xcc(%rbp)
fildl  -0xcc(%rbp)
fldt   -0x20(%rbp)
fld1
fchs
faddp  %st,%st(1)
fmulp  %st,%st(1)
faddp  %st,%st(1)
fstpt  -0x30(%rbp)
movl   $0x0,-0x98(%rbp)
mov    -0x48(%rbp),%eax
neg    %eax
mov    %eax,-0xc8(%rbp)
fildl  -0xc8(%rbp)
fldt   -0x40(%rbp)
faddp  %st,%st(1)
fstpt  -0xc0(%rbp)
mov    $0x0,%al
call   1040 <erase@plt>
movl   $0x0,-0xc4(%rbp)
mov    -0xc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc4(%rbp)
fldt   -0xc0(%rbp)
fld1
fadd   %st(1),%st
fstpt  -0xc0(%rbp)
mov    -0x48(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xd0(%rbp)
fildl  -0xd0(%rbp)
fldt   -0x40(%rbp)
faddp  %st,%st(1)
fucomip %st(1),%st
fstp   %st(0)
jbe    142c <render+0x2bc>
jmp    1273 <render+0x103>
mov    -0xc4(%rbp),%edi
xor    %esi,%esi
call   1090 <move@plt>
fldt   -0x30(%rbp)
fldz
faddp  %st,%st(1)
fstpt  -0xb0(%rbp)
fldt   -0xb0(%rbp)
fld1
fadd   %st(1),%st
fstpt  -0xb0(%rbp)
mov    -0x44(%rbp),%eax
add    %eax,%eax
mov    %eax,-0xd4(%rbp)
fildl  -0xd4(%rbp)
fldt   -0x30(%rbp)
faddp  %st,%st(1)
fucomip %st(1),%st
fstp   %st(0)
jbe    1427 <render+0x2b7>
jmp    12c2 <render+0x152>
fldz
fld    %st(0)
fstpt  -0x90(%rbp)
movl   $0x0,-0x94(%rbp)
fstpt  -0x70(%rbp)
fldt   -0x90(%rbp)
fldt   -0x70(%rbp)
fmul   %st,%st(0)
fxch   %st(1)
fmul   %st,%st(0)
fsubp  %st,%st(1)
flds   0xd10(%rip)
faddp  %st,%st(1)
fldt   -0xb0(%rbp)
mov    -0x50(%rbp),%rax
mov    %rax,-0xe8(%rbp)
fildll -0xe8(%rbp)
fdivrp %st,%st(1)
faddp  %st,%st(1)
fstpt  -0x80(%rbp)
fldt   -0x90(%rbp)
fadd   %st,%st(0)
fldt   -0x70(%rbp)
fldt   -0xc0(%rbp)
mov    -0x58(%rbp),%rax
mov    %rax,-0xe0(%rbp)
fildll -0xe0(%rbp)
fdivrp %st,%st(1)
fxch   %st(2)
fmulp  %st,%st(1)
faddp  %st,%st(1)
fstpt  -0x70(%rbp)
fldt   -0x80(%rbp)
fldt   -0x70(%rbp)
fmul   %st,%st(0)
fxch   %st(1)
fmul   %st,%st(0)
faddp  %st,%st(1)
xor    %eax,%eax
flds   0xcb1(%rip)
fucomip %st(1),%st
fstp   %st(0)
mov    %al,-0xe9(%rbp)
jbe    1385 <render+0x215>
jmp    1368 <render+0x1f8>
mov    -0x94(%rbp),%eax
mov    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,-0x94(%rbp)
cmp    $0x6f,%eax
setl   %al
mov    %al,-0xe9(%rbp)
mov    -0xe9(%rbp),%al
test   $0x1,%al
jne    1398 <render+0x228>
jmp    13ab <render+0x23b>
jmp    139d <render+0x22d>
fldt   -0x80(%rbp)
fstpt  -0x90(%rbp)
jmp    12d9 <render+0x169>
movswl -0x2(%rbp),%eax
cmp    $0x0,%eax
je     1406 <render+0x296>
mov    -0x94(%rbp),%eax
and    $0xf,%eax
cmp    -0x98(%rbp),%eax
je     1406 <render+0x296>
mov    -0x94(%rbp),%edi
and    $0xf,%edi
call   1070 <COLOR_PAIR@plt>
mov    %eax,%edi
call   1030 <attroff@plt>
mov    -0x94(%rbp),%edi
and    $0xf,%edi
call   1070 <COLOR_PAIR@plt>
mov    %eax,%edi
call   1050 <attron@plt>
mov    -0x94(%rbp),%eax
and    $0xf,%eax
mov    %eax,-0x98(%rbp)
mov    -0x94(%rbp),%eax
and    $0xf,%eax
movslq %eax,%rcx
lea    0xbef(%rip),%rax
movsbl (%rax,%rcx,1),%edi
call   1080 <addch@plt>
jmp    128d <render+0x11d>
jmp    122e <render+0xbe>
xor    %eax,%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<render>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %edx,%ebp
mov    %esi,%r15d
mov    %edi,%r13d
fldt   0x100(%rsp)
fstpt  0x30(%rsp)
fldt   0xf0(%rsp)
fstpt  0x54(%rsp)
fldt   0xe0(%rsp)
fld    %st(0)
fstpt  0x18(%rsp)
fstpt  (%rsp)
call   1060 <fabs@plt>
mov    %eax,%r14d
fldt   0x18(%rsp)
fstpt  (%rsp)
call   1060 <fabs@plt>
mov    %eax,%r12d
mov    %r15d,0x48(%rsp)
fld1
fld    %st(0)
fstpt  0x60(%rsp)
fchs
fldt   0x18(%rsp)
faddp  %st,%st(1)
fimull 0x48(%rsp)
fldt   0x54(%rsp)
faddp  %st,%st(1)
fstpt  0x18(%rsp)
mov    %ebp,%eax
neg    %eax
mov    %eax,0x50(%rsp)
fldt   0x30(%rsp)
fiaddl 0x50(%rsp)
fstpt  0x24(%rsp)
xor    %ebx,%ebx
xor    %eax,%eax
call   1040 <erase@plt>
fldt   0x24(%rsp)
add    $0xffffffff,%ebp
mov    %ebp,0x4c(%rsp)
fldt   0x30(%rsp)
fiaddl 0x4c(%rsp)
fld    %st(0)
fstpt  0x84(%rsp)
fucomip %st(1),%st
jbe    13c4 <render+0x254>
add    %r12d,%r12d
lea    (%r12,%r12,4),%eax
lea    (%r14,%r14,4),%ecx
lea    (%rcx,%rcx,4),%ecx
fldz
fld    %st(0)
fstpt  0x9c(%rsp)
fldt   0x18(%rsp)
fadd   %st,%st(1)
fxch   %st(1)
fstpt  0x78(%rsp)
add    %r15d,%r15d
mov    %r15d,0x44(%rsp)
fiaddl 0x44(%rsp)
fstpt  0x18(%rsp)
mov    %ecx,0x40(%rsp)
fildl  0x40(%rsp)
fstpt  0x90(%rsp)
mov    %eax,0x3c(%rsp)
mov    $0x1,%r14d
fildl  0x3c(%rsp)
fstpt  0x6c(%rsp)
lea    0xd81(%rip),%r15
jmp    12b5 <render+0x145>
nopl   0x0(%rax)
fstp   %st(0)
fstp   %st(0)
fldz
fldz
fxch   %st(1)
fstp   %st(0)
fstp   %st(0)
add    $0x1,%r14d
fldt   0x24(%rsp)
fldt   0x84(%rsp)
fucomip %st(1),%st
jbe    13c4 <render+0x254>
fstpt  0x24(%rsp)
mov    %r14d,%edi
xor    %esi,%esi
call   1090 <move@plt>
fldt   0x78(%rsp)
fldt   0x18(%rsp)
fucomip %st(1),%st
fldt   0x60(%rsp)
fldt   0x24(%rsp)
faddp  %st,%st(1)
fstpt  0x24(%rsp)
fldt   0x24(%rsp)
jbe    1290 <render+0x120>
fldt   0x6c(%rsp)
fdivrp %st,%st(1)
fld    %st(0)
fstpt  0x54(%rsp)
jmp    130d <render+0x19d>
nop
movsbl 0x0(%rbp,%r15,1),%edi
call   1080 <addch@plt>
fldt   0x18(%rsp)
fldt   0x30(%rsp)
fxch   %st(1)
fucomip %st(1),%st
fldt   0x54(%rsp)
jbe    129a <render+0x12a>
fldt   0x60(%rsp)
faddp  %st,%st(2)
fldt   0x90(%rsp)
fdivr  %st(2),%st
xor    %ebp,%ebp
fldt   0x9c(%rsp)
fld    %st(0)
nopw   0x0(%rax,%rax,1)
fld    %st(1)
fmul   %st(2),%st
fld    %st(1)
fmul   %st(2),%st
fsubp  %st,%st(1)
fadds  0xcc0(%rip)
fxch   %st(1)
fadd   %st,%st(0)
fxch   %st(1)
fadd   %st(3),%st
fxch   %st(1)
fmulp  %st,%st(2)
fxch   %st(1)
fadd   %st(3),%st
fld    %st(0)
fmul   %st(1),%st
fld    %st(2)
fmul   %st(3),%st
faddp  %st,%st(1)
flds   0xca4(%rip)
fucomip %st(1),%st
fstp   %st(0)
jbe    1380 <render+0x210>
add    $0x1,%ebp
cmp    $0x70,%ebp
fxch   %st(1)
jne    1330 <render+0x1c0>
fstp   %st(2)
fstp   %st(0)
fstp   %st(0)
fstp   %st(0)
mov    $0x70,%ebp
jmp    1388 <render+0x218>
nop
fstp   %st(2)
fstp   %st(1)
fstp   %st(0)
fstp   %st(0)
and    $0xf,%ebp
test   %r13w,%r13w
fstpt  0x30(%rsp)
je     12f0 <render+0x180>
cmp    %ebx,%ebp
je     12f0 <render+0x180>
mov    %ebp,%edi
call   1070 <COLOR_PAIR@plt>
mov    %eax,%edi
call   1030 <attroff@plt>
mov    %ebp,%edi
call   1070 <COLOR_PAIR@plt>
mov    %eax,%edi
call   1050 <attron@plt>
mov    %ebp,%ebx
jmp    12f0 <render+0x180>
fstp   %st(0)
xor    %eax,%eax
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [17 x i8] c" .:-;!/>)|&IH%*#\00"
define i32 @render(i16 signext %0, x86_fp80 %1, x86_fp80 %2, x86_fp80 %3, i32 %4, i32 %5) {
%7 = alloca i16
%8 = alloca x86_fp80
%9 = alloca x86_fp80
%10 = alloca x86_fp80
%11 = alloca i32
%12 = alloca i32
%13 = alloca i64
%14 = alloca i64
%15 = alloca x86_fp80
%16 = alloca x86_fp80
%17 = alloca x86_fp80
%18 = alloca i32
%19 = alloca i32
%20 = alloca x86_fp80
%21 = alloca x86_fp80
%22 = alloca i32
store i16 %0, i16* %7
store x86_fp80 %1, x86_fp80* %8
store x86_fp80 %2, x86_fp80* %9
store x86_fp80 %3, x86_fp80* %10
store i32 %4, i32* %11
store i32 %5, i32* %12
%23 = load x86_fp80, x86_fp80* %8
%24 = call i32 @fabs(x86_fp80 %23)
%25 = mul nsw i32 25, %24
%26 = sext i32 %25 to i64
store i64 %26, i64* %13
%27 = load x86_fp80, x86_fp80* %8
%28 = call i32 @fabs(x86_fp80 %27)
%29 = mul nsw i32 10, %28
%30 = sext i32 %29 to i64
store i64 %30, i64* %14
%31 = load x86_fp80, x86_fp80* %9
%32 = load i32, i32* %11
%33 = sitofp i32 %32 to x86_fp80
%34 = load x86_fp80, x86_fp80* %8
%35 = fsub x86_fp80 %34, 0xK3FFF8000000000000000
%36 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %33, x86_fp80 %35, x86_fp80 %31)
store x86_fp80 %36, x86_fp80* %9
store i32 0, i32* %19
%37 = load i32, i32* %12
%38 = sub nsw i32 0, %37
%39 = sitofp i32 %38 to x86_fp80
%40 = load x86_fp80, x86_fp80* %10
%41 = fadd x86_fp80 %39, %40
store x86_fp80 %41, x86_fp80* %21
%42 = call i32 (...) @erase()
store i32 0, i32* %22
br label %43
43: ; preds = %134, %6
%44 = load i32, i32* %22
%45 = add nsw i32 %44, 1
store i32 %45, i32* %22
%46 = load x86_fp80, x86_fp80* %21
%47 = fadd x86_fp80 %46, 0xK3FFF8000000000000000
store x86_fp80 %47, x86_fp80* %21
%48 = load i32, i32* %12
%49 = sub nsw i32 %48, 1
%50 = sitofp i32 %49 to x86_fp80
%51 = load x86_fp80, x86_fp80* %10
%52 = fadd x86_fp80 %50, %51
%53 = fcmp olt x86_fp80 %46, %52
br i1 %53, label %54, label %135
54: ; preds = %43
%55 = load i32, i32* %22
%56 = call i32 @move(i32 %55, i32 0)
%57 = load x86_fp80, x86_fp80* %9
%58 = fadd x86_fp80 0xK00000000000000000000, %57
store x86_fp80 %58, x86_fp80* %20
br label %59
59: ; preds = %127, %54
%60 = load x86_fp80, x86_fp80* %20
%61 = fadd x86_fp80 %60, 0xK3FFF8000000000000000
store x86_fp80 %61, x86_fp80* %20
%62 = load i32, i32* %11
%63 = mul nsw i32 2, %62
%64 = sitofp i32 %63 to x86_fp80
%65 = load x86_fp80, x86_fp80* %9
%66 = fadd x86_fp80 %64, %65
%67 = fcmp olt x86_fp80 %60, %66
br i1 %67, label %68, label %134
68: ; preds = %59
store x86_fp80 0xK00000000000000000000, x86_fp80* %17
store i32 0, i32* %18
store x86_fp80 0xK00000000000000000000, x86_fp80* %15
br label %69
69: ; preds = %105, %68
%70 = load x86_fp80, x86_fp80* %17
%71 = load x86_fp80, x86_fp80* %17
%72 = load x86_fp80, x86_fp80* %15
%73 = load x86_fp80, x86_fp80* %15
%74 = fmul x86_fp80 %72, %73
%75 = fneg x86_fp80 %74
%76 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %70, x86_fp80 %71, x86_fp80 %75)
%77 = fsub x86_fp80 %76, 0xK40008000000000000000
%78 = load x86_fp80, x86_fp80* %20
%79 = load i64, i64* %13
%80 = sitofp i64 %79 to x86_fp80
%81 = fdiv x86_fp80 %78, %80
%82 = fadd x86_fp80 %77, %81
store x86_fp80 %82, x86_fp80* %16
%83 = load x86_fp80, x86_fp80* %17
%84 = fmul x86_fp80 0xK40008000000000000000, %83
%85 = load x86_fp80, x86_fp80* %15
%86 = load x86_fp80, x86_fp80* %21
%87 = load i64, i64* %14
%88 = sitofp i64 %87 to x86_fp80
%89 = fdiv x86_fp80 %86, %88
%90 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %84, x86_fp80 %85, x86_fp80 %89)
store x86_fp80 %90, x86_fp80* %15
%91 = load x86_fp80, x86_fp80* %16
%92 = load x86_fp80, x86_fp80* %16
%93 = load x86_fp80, x86_fp80* %15
%94 = load x86_fp80, x86_fp80* %15
%95 = fmul x86_fp80 %93, %94
%96 = call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %91, x86_fp80 %92, x86_fp80 %95)
%97 = fcmp olt x86_fp80 %96, 0xK4002B000000000000000
br i1 %97, label %98, label %102
98: ; preds = %69
%99 = load i32, i32* %18
%100 = add nsw i32 %99, 1
store i32 %100, i32* %18
%101 = icmp slt i32 %99, 111
br label %102
102: ; preds = %98, %69
%103 = phi i1 [ false, %69 ], [ %101, %98 ]
br i1 %103, label %104, label %107
104: ; preds = %102
br label %105
105: ; preds = %104
%106 = load x86_fp80, x86_fp80* %16
store x86_fp80 %106, x86_fp80* %17
br label %69
107: ; preds = %102
%108 = load i16, i16* %7
%109 = sext i16 %108 to i32
%110 = icmp ne i32 %109, 0
br i1 %110, label %111, label %127
111: ; preds = %107
%112 = load i32, i32* %18
%113 = and i32 %112, 15
%114 = load i32, i32* %19
%115 = icmp ne i32 %113, %114
br i1 %115, label %116, label %127
116: ; preds = %111
%117 = load i32, i32* %18
%118 = and i32 %117, 15
%119 = call i32 @COLOR_PAIR(i32 %118)
%120 = call i32 @attroff(i32 %119)
%121 = load i32, i32* %18
%122 = and i32 %121, 15
%123 = call i32 @COLOR_PAIR(i32 %122)
%124 = call i32 @attron(i32 %123)
%125 = load i32, i32* %18
%126 = and i32 %125, 15
store i32 %126, i32* %19
br label %127
127: ; preds = %116, %111, %107
%128 = load i32, i32* %18
%129 = and i32 %128, 15
%130 = sext i32 %129 to i64
%131 = getelementptr inbounds [17 x i8], [17 x i8]* @.str, i64 0, i64 %130
%132 = load i8, i8* %131
%133 = call i32 @addch(i8 signext %132)
br label %59
134: ; preds = %59
br label %43
135: ; preds = %43
ret i32 0
}

LLVM IR (-O2):
@.str = [17 x i8] c" .:-;!/>)|&IH%*#\00"
define i32 @render(i16 signext %0, x86_fp80 %1, x86_fp80 %2, x86_fp80 %3, i32 %4, i32 %5) {
%7 = tail call i32 @fabs(x86_fp80 %1)
%8 = tail call i32 @fabs(x86_fp80 %1)
%9 = sitofp i32 %4 to x86_fp80
%10 = fadd x86_fp80 %1, 0xKBFFF8000000000000000
%11 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %9, x86_fp80 %10, x86_fp80 %2)
%12 = sub nsw i32 0, %5
%13 = sitofp i32 %12 to x86_fp80
%14 = fadd x86_fp80 %13, %3
%15 = tail call i32 (...) @erase()
%16 = add nsw i32 %5, -1
%17 = sitofp i32 %16 to x86_fp80
%18 = fadd x86_fp80 %17, %3
%19 = fcmp olt x86_fp80 %14, %18
br i1 %19, label %20, label %82
20: ; preds = %6
%21 = mul nsw i32 %8, 10
%22 = mul nsw i32 %7, 25
%23 = fadd x86_fp80 %11, 0xK00000000000000000000
%24 = shl nsw i32 %4, 1
%25 = sitofp i32 %24 to x86_fp80
%26 = fadd x86_fp80 %11, %25
%27 = fcmp olt x86_fp80 %23, %26
%28 = sitofp i32 %22 to x86_fp80
%29 = sitofp i32 %21 to x86_fp80
%30 = icmp eq i16 %0, 0
br label %35
31: ; preds = %75, %35
%32 = phi i32 [ %38, %35 ], [ %76, %75 ]
%33 = add nuw nsw i32 %37, 1
%34 = fcmp olt x86_fp80 %39, %18
br i1 %34, label %35, label %82
35: ; preds = %20, %31
%36 = phi x86_fp80 [ %14, %20 ], [ %39, %31 ]
%37 = phi i32 [ 1, %20 ], [ %33, %31 ]
%38 = phi i32 [ 0, %20 ], [ %32, %31 ]
%39 = fadd x86_fp80 %36, 0xK3FFF8000000000000000
%40 = tail call i32 @move(i32 %37, i32 0)
br i1 %27, label %41, label %31
41: ; preds = %35
%42 = fdiv x86_fp80 %39, %29
br label %43
43: ; preds = %41, %75
%44 = phi x86_fp80 [ %23, %41 ], [ %46, %75 ]
%45 = phi i32 [ %38, %41 ], [ %76, %75 ]
%46 = fadd x86_fp80 %44, 0xK3FFF8000000000000000
%47 = fdiv x86_fp80 %46, %28
br label %48
48: ; preds = %43, %62
%49 = phi x86_fp80 [ %56, %62 ], [ 0xK00000000000000000000, %43 ]
%50 = phi i32 [ %63, %62 ], [ 0, %43 ]
%51 = phi x86_fp80 [ %58, %62 ], [ 0xK00000000000000000000, %43 ]
%52 = fneg x86_fp80 %51
%53 = fmul x86_fp80 %51, %52
%54 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %49, x86_fp80 %49, x86_fp80 %53)
%55 = fadd x86_fp80 %54, 0xKC0008000000000000000
%56 = fadd x86_fp80 %47, %55
%57 = fmul x86_fp80 %49, 0xK40008000000000000000
%58 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %57, x86_fp80 %51, x86_fp80 %42)
%59 = fmul x86_fp80 %58, %58
%60 = tail call x86_fp80 @llvm.fmuladd.f80(x86_fp80 %56, x86_fp80 %56, x86_fp80 %59)
%61 = fcmp olt x86_fp80 %60, 0xK4002B000000000000000
br i1 %61, label %62, label %65
62: ; preds = %48
%63 = add nuw nsw i32 %50, 1
%64 = icmp eq i32 %63, 112
br i1 %64, label %65, label %48
65: ; preds = %48, %62
%66 = phi i32 [ 112, %62 ], [ %50, %48 ]
%67 = and i32 %66, 15
%68 = icmp eq i32 %67, %45
%69 = select i1 %30, i1 true, i1 %68
br i1 %69, label %75, label %70
70: ; preds = %65
%71 = tail call i32 @COLOR_PAIR(i32 %67)
%72 = tail call i32 @attroff(i32 %71)
%73 = tail call i32 @COLOR_PAIR(i32 %67)
%74 = tail call i32 @attron(i32 %73)
br label %75
75: ; preds = %65, %70
%76 = phi i32 [ %67, %70 ], [ %45, %65 ]
%77 = zext i32 %67 to i64
%78 = getelementptr inbounds [17 x i8], [17 x i8]* @.str, i64 0, i64 %77
%79 = load i8, i8* %78
%80 = tail call i32 @addch(i8 signext %79)
%81 = fcmp olt x86_fp80 %46, %26
br i1 %81, label %43, label %31
82: ; preds = %31, %6
ret i32 0
}