#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*/ declare(char *);
int /*<<< orphan*/ glColor3f(double, double, double);
int /*<<< orphan*/ glRasterPos2f(double, double);
void title() {
  glColor3f(1.0, 1.0, 0.0);
  glRasterPos2f(650.0, 1400.0);
  declare("FREEWAY TRAFFIC AROUND A BASCULE BRIDGE IN 2D USING OpenGL ");
  glRasterPos2f(300.0, 1100.0);
  declare("|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|*  Mouse Functions  "
          "*|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|");
  glRasterPos2f(300.0, 1000.0);
  declare("-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-*  Press Right click on your mouse "
          " *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-");
  glRasterPos2f(300.0, 900.0);
  declare("|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|*  Press Enter to select an option "
          " *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|");
  glRasterPos2f(300.0, 600.0);
  declare("-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|*  Keyboard Functions  "
          "*-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-");
  glRasterPos2f(300.0, 500.0);
  declare("|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|*  Press a|A-START, s|S-STOP or "
          "d|D-EXIT  *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|");
  glRasterPos2f(300.0, 200.0);
  declare("-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-*  Algorithm And Programming by: "
          " *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-");
  glRasterPos2f(300.0, 100.0);
  declare("********************************  Akshay Raina '`'|'_`|'`' "
          "B.Roopini  *********************************");
}


x86 assembly (clang, -O0):
<title>:
push   %rbp
mov    %rsp,%rbp
movsd  0xf14(%rip),%xmm1
xorps  %xmm2,%xmm2
movaps %xmm1,%xmm0
call   1050 <glColor3f@plt>
movsd  0xef1(%rip),%xmm0
movsd  0xef1(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xef5(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe90(%rip),%xmm0
movsd  0xec0(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xf10(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe6f(%rip),%xmm0
movsd  0xe97(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xf57(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe4e(%rip),%xmm0
movsd  0xe6e(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xf9e(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe2d(%rip),%xmm0
movsd  0xe45(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xfe5(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe0c(%rip),%xmm0
movsd  0xe1c(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0x102c(%rip),%rdi
call   1030 <declare@plt>
movsd  0xdeb(%rip),%xmm0
movsd  0xdf3(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0x1073(%rip),%rdi
call   1030 <declare@plt>
movsd  0xdca(%rip),%xmm0
movsd  0xdca(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0x10ba(%rip),%rdi
call   1030 <declare@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<title>:
push   %rax
movsd  0xec7(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm0,%xmm1
call   1050 <glColor3f@plt>
movsd  0xebc(%rip),%xmm0
movsd  0xebc(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xef8(%rip),%rdi
call   1030 <declare@plt>
movsd  0xeab(%rip),%xmm0
movsd  0xeab(%rip),%xmm1
call   1040 <glRasterPos2f@plt>
lea    0xf13(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe9a(%rip),%xmm1
movsd  0xe82(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0xf5a(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe81(%rip),%xmm1
movsd  0xe61(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0xfa1(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe68(%rip),%xmm1
movsd  0xe40(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0xfe8(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe4f(%rip),%xmm1
movsd  0xe1f(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0x102f(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe36(%rip),%xmm1
movsd  0xdfe(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0x1076(%rip),%rdi
call   1030 <declare@plt>
movsd  0xe1d(%rip),%xmm1
movsd  0xddd(%rip),%xmm0
call   1040 <glRasterPos2f@plt>
lea    0x10bd(%rip),%rdi
pop    %rax
jmp    1030 <declare@plt>

LLVM IR (-O0):
@.str = [60 x i8] c"FREEWAY TRAFFIC AROUND A BASCULE BRIDGE IN 2D USING OpenGL \00"
@.str.1 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Mouse Functions *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.2 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-* Press Right click on your mouse *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.3 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Press Enter to select an option *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.4 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Keyboard Functions *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.5 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Press a|A-START, s|S-STOP or d|D-EXIT *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.6 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-* Algorithm And Programming by: *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.7 = [104 x i8] c"******************************** Akshay Raina '`'|'_`|'`' B.Roopini *********************************\00"
define void @title() {
%1 = call i32 @glColor3f(double 1.000000e+00, double 1.000000e+00, double 0.000000e+00)
%2 = call i32 @glRasterPos2f(double 6.500000e+02, double 1.400000e+03)
%3 = call i32 @declare(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str, i64 0, i64 0))
%4 = call i32 @glRasterPos2f(double 3.000000e+02, double 1.100000e+03)
%5 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.1, i64 0, i64 0))
%6 = call i32 @glRasterPos2f(double 3.000000e+02, double 1.000000e+03)
%7 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 @glRasterPos2f(double 3.000000e+02, double 9.000000e+02)
%9 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.3, i64 0, i64 0))
%10 = call i32 @glRasterPos2f(double 3.000000e+02, double 6.000000e+02)
%11 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.4, i64 0, i64 0))
%12 = call i32 @glRasterPos2f(double 3.000000e+02, double 5.000000e+02)
%13 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.5, i64 0, i64 0))
%14 = call i32 @glRasterPos2f(double 3.000000e+02, double 2.000000e+02)
%15 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.6, i64 0, i64 0))
%16 = call i32 @glRasterPos2f(double 3.000000e+02, double 1.000000e+02)
%17 = call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.7, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [60 x i8] c"FREEWAY TRAFFIC AROUND A BASCULE BRIDGE IN 2D USING OpenGL \00"
@.str.1 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Mouse Functions *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.2 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-* Press Right click on your mouse *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.3 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Press Enter to select an option *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.4 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Keyboard Functions *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.5 = [104 x i8] c"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|* Press a|A-START, s|S-STOP or d|D-EXIT *|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\00"
@.str.6 = [104 x i8] c"-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-* Algorithm And Programming by: *-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-\00"
@.str.7 = [104 x i8] c"******************************** Akshay Raina '`'|'_`|'`' B.Roopini *********************************\00"
define void @title() {
%1 = tail call i32 @glColor3f(double 1.000000e+00, double 1.000000e+00, double 0.000000e+00)
%2 = tail call i32 @glRasterPos2f(double 6.500000e+02, double 1.400000e+03)
%3 = tail call i32 @declare(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str, i64 0, i64 0))
%4 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 1.100000e+03)
%5 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.1, i64 0, i64 0))
%6 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 1.000000e+03)
%7 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.2, i64 0, i64 0))
%8 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 9.000000e+02)
%9 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.3, i64 0, i64 0))
%10 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 6.000000e+02)
%11 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.4, i64 0, i64 0))
%12 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 5.000000e+02)
%13 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.5, i64 0, i64 0))
%14 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 2.000000e+02)
%15 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.6, i64 0, i64 0))
%16 = tail call i32 @glRasterPos2f(double 3.000000e+02, double 1.000000e+02)
%17 = tail call i32 @declare(i8* getelementptr inbounds ([104 x i8], [104 x i8]* @.str.7, i64 0, i64 0))
ret void
}