#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*/ GL_AUTO_NORMAL;
int /*<<< orphan*/ GL_NORMALIZE;
int /*<<< orphan*/ GL_QUADS;
int /*<<< orphan*/ display_wheel(float);
int /*<<< orphan*/ geel_texture();
int /*<<< orphan*/ glBegin(int /*<<< orphan*/);
int /*<<< orphan*/ glEnable(int /*<<< orphan*/);
int /*<<< orphan*/ glEnd();
int /*<<< orphan*/ glNormal3f(double, double, double);
int /*<<< orphan*/ glVertex3f(double, double, double);
int /*<<< orphan*/ zwart_texture();
void display_cart(float w) {
  display_wheel(w);
  geel_texture();
  glEnable(GL_AUTO_NORMAL);
  glEnable(GL_NORMALIZE);
  glBegin(GL_QUADS);
  glNormal3f(0.0, 1.0, 0.0);
  glVertex3f(0.5, 0.8, -0.70);
  glVertex3f(0.5, 0.8, 0.70);
  glVertex3f(-2.0, 0.8, 0.70);
  glVertex3f(-2.0, 0.8, -0.70);
  glNormal3f(1.0, 0.0, 0.0);
  glVertex3f(-2.0, 0.8, -0.70);
  glVertex3f(-2.0, 0.8, 0.70);
  glVertex3f(-2.0, 2.3, 0.70);
  glVertex3f(-2.0, 2.3, -0.70);
  glNormal3f(0.71, 0.71, 0.0);
  glVertex3f(-2.0, 2.3, -0.70);
  glVertex3f(-2.0, 2.3, 0.70);
  glVertex3f(-1.7, 2.0, 0.70);
  glVertex3f(-1.7, 2.0, -0.70);
  glNormal3f(0.12, 0.03, 0.0);
  glVertex3f(-1.7, 2.0, -0.70);
  glVertex3f(-1.7, 2.0, 0.70);
  glVertex3f(-1.4, 0.8, 0.70);
  glVertex3f(-1.4, 0.8, -0.70);
  glNormal3f(0.0, 1.0, 0.0);
  glVertex3f(-1.4, 0.8, -0.70);
  glVertex3f(-1.4, 0.8, 0.70);
  glVertex3f(0.0, 0.8, 0.70);
  glVertex3f(0.0, 0.8, -0.70);
  glNormal3f(1.0, 0.0, 0.0);
  glVertex3f(0.0, 0.8, -0.70);
  glVertex3f(0.0, 0.8, 0.70);
  glVertex3f(0.0, 1.5, 0.70);
  glVertex3f(0.0, 1.5, -0.70);
  glNormal3f(0.5, 0.3, 0.0);
  glVertex3f(0.0, 1.5, -0.70);
  glVertex3f(0.0, 1.5, 0.70);
  glVertex3f(-0.5, 1.8, 0.70);
  glVertex3f(-0.5, 1.8, -0.70);
  glNormal3f(1.0, 0.0, 0.0);
  glVertex3f(-0.5, 1.8, -0.70);
  glVertex3f(-0.5, 1.8, 0.70);
  glVertex3f(-0.5, 0.8, 0.70);
  glVertex3f(-0.5, 0.8, -0.70);
  zwart_texture();
  glNormal3f(0.0, 0.0, 1.0);
  glVertex3f(-1.8, 0.8, 0.70);
  glVertex3f(-1.8, 1.3, 0.70);
  glVertex3f(0.0, 1.3, 0.70);
  glVertex3f(0.0, 0.8, 0.70);
  glVertex3f(-1.8, 0.8, -0.70);
  glVertex3f(-1.8, 1.6, -0.70);
  glVertex3f(0.0, 1.4, -0.70);
  glVertex3f(0.0, 0.8, -0.70);
  glVertex3f(-2.0, 0.8, 0.70);
  glVertex3f(-2.0, 2.3, 0.70);
  glVertex3f(-1.7, 2.0, 0.70);
  glVertex3f(-1.4, 0.8, 0.70);
  glVertex3f(-2.0, 0.8, -0.70);
  glVertex3f(-2.0, 2.3, -0.70);
  glVertex3f(-1.7, 2.0, -0.70);
  glVertex3f(-1.4, 0.8, -0.70);
  glVertex3f(0.0, 0.8, -0.70);
  glVertex3f(0.0, 1.5, -0.70);
  glVertex3f(-0.5, 1.8, -0.70);
  glVertex3f(-0.5, 0.8, -0.70);
  glVertex3f(0.0, 0.8, 0.70);
  glVertex3f(0.0, 1.5, 0.70);
  glVertex3f(-0.5, 1.8, 0.70);
  glVertex3f(-0.5, 0.8, 0.70);
  glEnd();
}


x86 assembly (clang, -O0):
<display_cart>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movss  %xmm0,-0x4(%rbp)
movss  -0x4(%rbp),%xmm0
call   1060 <display_wheel@plt>
mov    $0x0,%al
call   1070 <geel_texture@plt>
mov    0x2e33(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e1d(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e27(%rip),%rax
mov    (%rax),%edi
call   1090 <glBegin@plt>
xorps  %xmm2,%xmm2
movsd  0xea5(%rip),%xmm1
movaps %xmm2,%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xe9d(%rip),%xmm0
movsd  0xe1d(%rip),%xmm1
movsd  0xe35(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe80(%rip),%xmm0
movsd  0xe00(%rip),%xmm1
movsd  0xe00(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe2b(%rip),%xmm0
movsd  0xde3(%rip),%xmm1
movsd  0xde3(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe0e(%rip),%xmm0
movsd  0xdc6(%rip),%xmm1
movsd  0xdde(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe21(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   10a0 <glNormal3f@plt>
movsd  0xdde(%rip),%xmm0
movsd  0xd96(%rip),%xmm1
movsd  0xdae(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdc1(%rip),%xmm0
movsd  0xd79(%rip),%xmm1
movsd  0xd79(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xda4(%rip),%xmm0
movsd  0xda4(%rip),%xmm1
movsd  0xd5c(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd87(%rip),%xmm0
movsd  0xd87(%rip),%xmm1
movsd  0xd57(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdc2(%rip),%xmm1
xorps  %xmm2,%xmm2
movaps %xmm1,%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xd57(%rip),%xmm0
movsd  0xd57(%rip),%xmm1
movsd  0xd27(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd3a(%rip),%xmm0
movsd  0xd3a(%rip),%xmm1
movsd  0xcf2(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd0d(%rip),%xmm0
movsd  0xd0d(%rip),%xmm1
movsd  0xcd5(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xcf0(%rip),%xmm0
movsd  0xcf0(%rip),%xmm1
movsd  0xcd0(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd2b(%rip),%xmm0
movsd  0xd2b(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10a0 <glNormal3f@plt>
movsd  0xcbb(%rip),%xmm0
movsd  0xcbb(%rip),%xmm1
movsd  0xc9b(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc9e(%rip),%xmm0
movsd  0xc9e(%rip),%xmm1
movsd  0xc66(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc79(%rip),%xmm0
movsd  0xc49(%rip),%xmm1
movsd  0xc49(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc5c(%rip),%xmm0
movsd  0xc2c(%rip),%xmm1
movsd  0xc44(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm2,%xmm2
movsd  0xc84(%rip),%xmm1
movaps %xmm2,%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xc2c(%rip),%xmm0
movsd  0xbfc(%rip),%xmm1
movsd  0xc14(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc0f(%rip),%xmm0
movsd  0xbdf(%rip),%xmm1
movsd  0xbdf(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbc7(%rip),%xmm1
movsd  0xbc7(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbaf(%rip),%xmm1
movsd  0xbc7(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc0a(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   10a0 <glNormal3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb84(%rip),%xmm1
movsd  0xb9c(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb6c(%rip),%xmm1
movsd  0xb6c(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb6c(%rip),%xmm1
movsd  0xb54(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb54(%rip),%xmm1
movsd  0xb54(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb9f(%rip),%xmm0
movsd  0xb9f(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10a0 <glNormal3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb24(%rip),%xmm1
movsd  0xb24(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb0c(%rip),%xmm1
movsd  0xaf4(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xad7(%rip),%xmm0
movsd  0xae7(%rip),%xmm1
movsd  0xad7(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xaba(%rip),%xmm0
movsd  0xaca(%rip),%xmm1
movsd  0xad2(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb15(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   10a0 <glNormal3f@plt>
movsd  0xa8a(%rip),%xmm0
movsd  0xa9a(%rip),%xmm1
movsd  0xaa2(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa6d(%rip),%xmm0
movsd  0xa7d(%rip),%xmm1
movsd  0xa6d(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa50(%rip),%xmm0
movsd  0xa50(%rip),%xmm1
movsd  0xa50(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa33(%rip),%xmm0
movsd  0xa33(%rip),%xmm1
movsd  0xa4b(%rip),%xmm2
call   1030 <glVertex3f@plt>
mov    $0x0,%al
call   1080 <zwart_texture@plt>
xorps  %xmm1,%xmm1
movsd  0xa84(%rip),%xmm2
movaps %xmm1,%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xa5c(%rip),%xmm0
movsd  0x9fc(%rip),%xmm1
movsd  0x9fc(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa3f(%rip),%xmm0
movsd  0xa47(%rip),%xmm1
movsd  0x9df(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xa2f(%rip),%xmm1
movsd  0x9c7(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x9af(%rip),%xmm1
movsd  0x9af(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x9f2(%rip),%xmm0
movsd  0x992(%rip),%xmm1
movsd  0x9aa(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x9d5(%rip),%xmm0
movsd  0x9d5(%rip),%xmm1
movsd  0x98d(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x9ad(%rip),%xmm1
movsd  0x975(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x945(%rip),%xmm1
movsd  0x95d(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x970(%rip),%xmm0
movsd  0x928(%rip),%xmm1
movsd  0x928(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x953(%rip),%xmm0
movsd  0x953(%rip),%xmm1
movsd  0x90b(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x926(%rip),%xmm0
movsd  0x926(%rip),%xmm1
movsd  0x8ee(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x901(%rip),%xmm0
movsd  0x8d1(%rip),%xmm1
movsd  0x8d1(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8fc(%rip),%xmm0
movsd  0x8b4(%rip),%xmm1
movsd  0x8cc(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8df(%rip),%xmm0
movsd  0x8df(%rip),%xmm1
movsd  0x8af(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8b2(%rip),%xmm0
movsd  0x8b2(%rip),%xmm1
movsd  0x892(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x88d(%rip),%xmm0
movsd  0x85d(%rip),%xmm1
movsd  0x875(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x845(%rip),%xmm1
movsd  0x85d(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x845(%rip),%xmm1
movsd  0x845(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x810(%rip),%xmm0
movsd  0x820(%rip),%xmm1
movsd  0x828(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x7f3(%rip),%xmm0
movsd  0x7f3(%rip),%xmm1
movsd  0x80b(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x7db(%rip),%xmm1
movsd  0x7db(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x7db(%rip),%xmm1
movsd  0x7c3(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x7a6(%rip),%xmm0
movsd  0x7b6(%rip),%xmm1
movsd  0x7a6(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x789(%rip),%xmm0
movsd  0x789(%rip),%xmm1
movsd  0x789(%rip),%xmm2
call   1030 <glVertex3f@plt>
mov    $0x0,%al
call   1050 <glEnd@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<display_cart>:
push   %rax
call   1060 <display_wheel@plt>
xor    %eax,%eax
call   1070 <geel_texture@plt>
mov    0x2e44(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e2e(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e38(%rip),%rax
mov    (%rax),%edi
call   1090 <glBegin@plt>
movsd  0xe41(%rip),%xmm1
xorps  %xmm0,%xmm0
xorps  %xmm2,%xmm2
call   10a0 <glNormal3f@plt>
movsd  0xe36(%rip),%xmm0
movsd  0xe36(%rip),%xmm1
movsd  0xe36(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe31(%rip),%xmm2
movsd  0xe11(%rip),%xmm0
movsd  0xe11(%rip),%xmm1
call   1030 <glVertex3f@plt>
movsd  0xe1c(%rip),%xmm0
movsd  0xdfc(%rip),%xmm1
movsd  0xe04(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdff(%rip),%xmm0
movsd  0xddf(%rip),%xmm1
movsd  0xddf(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0xdb4(%rip),%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xdcf(%rip),%xmm0
movsd  0xdaf(%rip),%xmm1
movsd  0xdaf(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdb2(%rip),%xmm0
movsd  0xd92(%rip),%xmm1
movsd  0xd9a(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd9d(%rip),%xmm1
movsd  0xd8d(%rip),%xmm0
movsd  0xd7d(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd78(%rip),%xmm0
movsd  0xd78(%rip),%xmm1
movsd  0xd58(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd6b(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm0,%xmm1
call   10a0 <glNormal3f@plt>
movsd  0xd48(%rip),%xmm0
movsd  0xd48(%rip),%xmm1
movsd  0xd28(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd2b(%rip),%xmm0
movsd  0xd2b(%rip),%xmm1
movsd  0xd13(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd26(%rip),%xmm0
movsd  0xd26(%rip),%xmm1
movsd  0xcf6(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd09(%rip),%xmm0
movsd  0xd09(%rip),%xmm1
movsd  0xcd1(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xcfc(%rip),%xmm0
movsd  0xcfc(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10a0 <glNormal3f@plt>
movsd  0xcd4(%rip),%xmm0
movsd  0xcd4(%rip),%xmm1
movsd  0xc9c(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xcb7(%rip),%xmm0
movsd  0xcb7(%rip),%xmm1
movsd  0xc87(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xcba(%rip),%xmm0
movsd  0xc62(%rip),%xmm1
movsd  0xc6a(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc9d(%rip),%xmm0
movsd  0xc45(%rip),%xmm1
movsd  0xc45(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm2,%xmm2
movsd  0xc1a(%rip),%xmm1
call   10a0 <glNormal3f@plt>
movsd  0xc6d(%rip),%xmm0
movsd  0xc15(%rip),%xmm1
movsd  0xc15(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc50(%rip),%xmm0
movsd  0xbf8(%rip),%xmm1
movsd  0xc00(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbe0(%rip),%xmm1
movsd  0xbe8(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbc8(%rip),%xmm1
movsd  0xbc8(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0xb9d(%rip),%xmm0
call   10a0 <glNormal3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb9d(%rip),%xmm1
movsd  0xb9d(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb85(%rip),%xmm1
movsd  0xb8d(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xbc8(%rip),%xmm1
xorps  %xmm0,%xmm0
movsd  0xb75(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbad(%rip),%xmm1
movsd  0xb55(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xba0(%rip),%xmm1
xorps  %xmm2,%xmm2
movsd  0xb2d(%rip),%xmm0
call   10a0 <glNormal3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb7d(%rip),%xmm1
movsd  0xb25(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb65(%rip),%xmm1
movsd  0xb15(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb60(%rip),%xmm0
movsd  0xb60(%rip),%xmm1
movsd  0xaf8(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb43(%rip),%xmm0
movsd  0xb43(%rip),%xmm1
movsd  0xad3(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0xaa8(%rip),%xmm0
call   10a0 <glNormal3f@plt>
movsd  0xb13(%rip),%xmm0
movsd  0xb13(%rip),%xmm1
movsd  0xaa3(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xaf6(%rip),%xmm0
movsd  0xaf6(%rip),%xmm1
movsd  0xa8e(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xad9(%rip),%xmm0
movsd  0xa69(%rip),%xmm1
movsd  0xa71(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xabc(%rip),%xmm0
movsd  0xa4c(%rip),%xmm1
movsd  0xa4c(%rip),%xmm2
call   1030 <glVertex3f@plt>
xor    %eax,%eax
call   1080 <zwart_texture@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0xa1a(%rip),%xmm2
call   10a0 <glNormal3f@plt>
movsd  0xa95(%rip),%xmm0
movsd  0xa15(%rip),%xmm1
movsd  0xa1d(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa80(%rip),%xmm1
movsd  0xa70(%rip),%xmm0
movsd  0xa00(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xa60(%rip),%xmm1
movsd  0x9e8(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x9c8(%rip),%xmm1
movsd  0x9d0(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa2b(%rip),%xmm0
movsd  0x9ab(%rip),%xmm1
movsd  0x9ab(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa1e(%rip),%xmm1
movsd  0xa06(%rip),%xmm0
movsd  0x98e(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa09(%rip),%xmm1
xorps  %xmm0,%xmm0
movsd  0x976(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x95e(%rip),%xmm1
movsd  0x95e(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x961(%rip),%xmm0
movsd  0x941(%rip),%xmm1
movsd  0x949(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x944(%rip),%xmm0
movsd  0x944(%rip),%xmm1
movsd  0x92c(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x93f(%rip),%xmm0
movsd  0x93f(%rip),%xmm1
movsd  0x90f(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x942(%rip),%xmm0
movsd  0x8ea(%rip),%xmm1
movsd  0x8f2(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8ed(%rip),%xmm0
movsd  0x8cd(%rip),%xmm1
movsd  0x8cd(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8d0(%rip),%xmm0
movsd  0x8d0(%rip),%xmm1
movsd  0x8b0(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8cb(%rip),%xmm0
movsd  0x8cb(%rip),%xmm1
movsd  0x893(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x8ce(%rip),%xmm0
movsd  0x876(%rip),%xmm1
movsd  0x876(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x85e(%rip),%xmm1
movsd  0x85e(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x89e(%rip),%xmm1
movsd  0x846(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x899(%rip),%xmm0
movsd  0x899(%rip),%xmm1
movsd  0x829(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x87c(%rip),%xmm0
movsd  0x80c(%rip),%xmm1
movsd  0x80c(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x7f4(%rip),%xmm1
movsd  0x7fc(%rip),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x834(%rip),%xmm1
movsd  0x7e4(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x82f(%rip),%xmm0
movsd  0x82f(%rip),%xmm1
movsd  0x7c7(%rip),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x812(%rip),%xmm0
movsd  0x7a2(%rip),%xmm1
movsd  0x7aa(%rip),%xmm2
call   1030 <glVertex3f@plt>
xor    %eax,%eax
pop    %rcx
jmp    1050 <glEnd@plt>

LLVM IR (-O0):
@GL_AUTO_NORMAL = global i32 0
@GL_NORMALIZE = global i32 0
@GL_QUADS = global i32 0
define void @display_cart(float %0) {
%2 = alloca float
store float %0, float* %2
%3 = load float, float* %2
%4 = call i32 @display_wheel(float %3)
%5 = call i32 (...) @geel_texture()
%6 = load i32, i32* @GL_AUTO_NORMAL
%7 = call i32 @glEnable(i32 %6)
%8 = load i32, i32* @GL_NORMALIZE
%9 = call i32 @glEnable(i32 %8)
%10 = load i32, i32* @GL_QUADS
%11 = call i32 @glBegin(i32 %10)
%12 = call i32 @glNormal3f(double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%13 = call i32 @glVertex3f(double 5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%14 = call i32 @glVertex3f(double 5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%15 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%16 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%17 = call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%18 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%19 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%20 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%21 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%22 = call i32 @glNormal3f(double 7.100000e-01, double 7.100000e-01, double 0.000000e+00)
%23 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%24 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%25 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%26 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%27 = call i32 @glNormal3f(double 1.200000e-01, double 3.000000e-02, double 0.000000e+00)
%28 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%29 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%30 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%31 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%32 = call i32 @glNormal3f(double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%33 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%34 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%35 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%36 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%37 = call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%38 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%39 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%40 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%41 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%42 = call i32 @glNormal3f(double 5.000000e-01, double 3.000000e-01, double 0.000000e+00)
%43 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%44 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%45 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%46 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%47 = call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%48 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%49 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%50 = call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%51 = call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%52 = call i32 (...) @zwart_texture()
%53 = call i32 @glNormal3f(double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%54 = call i32 @glVertex3f(double -1.800000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%55 = call i32 @glVertex3f(double -1.800000e+00, double 1.300000e+00, double 0x3FE6666666666666)
%56 = call i32 @glVertex3f(double 0.000000e+00, double 1.300000e+00, double 0x3FE6666666666666)
%57 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%58 = call i32 @glVertex3f(double -1.800000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%59 = call i32 @glVertex3f(double -1.800000e+00, double 1.600000e+00, double 0xBFE6666666666666)
%60 = call i32 @glVertex3f(double 0.000000e+00, double 1.400000e+00, double 0xBFE6666666666666)
%61 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%62 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%63 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%64 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%65 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%66 = call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%67 = call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%68 = call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%69 = call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%70 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%71 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%72 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%73 = call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%74 = call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%75 = call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%76 = call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%77 = call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%78 = call i32 (...) @glEnd()
ret void
}

LLVM IR (-O2):
@GL_AUTO_NORMAL = global i32 0
@GL_NORMALIZE = global i32 0
@GL_QUADS = global i32 0
define void @display_cart(float %0) {
%2 = tail call i32 @display_wheel(float %0)
%3 = tail call i32 (...) @geel_texture()
%4 = load i32, i32* @GL_AUTO_NORMAL
%5 = tail call i32 @glEnable(i32 %4)
%6 = load i32, i32* @GL_NORMALIZE
%7 = tail call i32 @glEnable(i32 %6)
%8 = load i32, i32* @GL_QUADS
%9 = tail call i32 @glBegin(i32 %8)
%10 = tail call i32 @glNormal3f(double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%11 = tail call i32 @glVertex3f(double 5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%12 = tail call i32 @glVertex3f(double 5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%13 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%14 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%15 = tail call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%16 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%17 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%18 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%19 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%20 = tail call i32 @glNormal3f(double 7.100000e-01, double 7.100000e-01, double 0.000000e+00)
%21 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%22 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%23 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%24 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%25 = tail call i32 @glNormal3f(double 1.200000e-01, double 3.000000e-02, double 0.000000e+00)
%26 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%27 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%28 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%29 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%30 = tail call i32 @glNormal3f(double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%31 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%32 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%33 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%34 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%35 = tail call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%36 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%37 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%38 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%39 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%40 = tail call i32 @glNormal3f(double 5.000000e-01, double 3.000000e-01, double 0.000000e+00)
%41 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%42 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%43 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%44 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%45 = tail call i32 @glNormal3f(double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%46 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%47 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%48 = tail call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%49 = tail call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%50 = tail call i32 (...) @zwart_texture()
%51 = tail call i32 @glNormal3f(double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%52 = tail call i32 @glVertex3f(double -1.800000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%53 = tail call i32 @glVertex3f(double -1.800000e+00, double 1.300000e+00, double 0x3FE6666666666666)
%54 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.300000e+00, double 0x3FE6666666666666)
%55 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%56 = tail call i32 @glVertex3f(double -1.800000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%57 = tail call i32 @glVertex3f(double -1.800000e+00, double 1.600000e+00, double 0xBFE6666666666666)
%58 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.400000e+00, double 0xBFE6666666666666)
%59 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%60 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%61 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0x3FE6666666666666)
%62 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0x3FE6666666666666)
%63 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%64 = tail call i32 @glVertex3f(double -2.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%65 = tail call i32 @glVertex3f(double -2.000000e+00, double 2.300000e+00, double 0xBFE6666666666666)
%66 = tail call i32 @glVertex3f(double -1.700000e+00, double 2.000000e+00, double 0xBFE6666666666666)
%67 = tail call i32 @glVertex3f(double -1.400000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%68 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0xBFE6666666666666)
%69 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0xBFE6666666666666)
%70 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0xBFE6666666666666)
%71 = tail call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0xBFE6666666666666)
%72 = tail call i32 @glVertex3f(double 0.000000e+00, double 8.000000e-01, double 0x3FE6666666666666)
%73 = tail call i32 @glVertex3f(double 0.000000e+00, double 1.500000e+00, double 0x3FE6666666666666)
%74 = tail call i32 @glVertex3f(double -5.000000e-01, double 1.800000e+00, double 0x3FE6666666666666)
%75 = tail call i32 @glVertex3f(double -5.000000e-01, double 8.000000e-01, double 0x3FE6666666666666)
%76 = tail call i32 (...) @glEnd()
ret void
}