#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 */
typedef double GLfloat;
typedef int /*<<< orphan*/ GLUquadricObj;

/* Variables and functions */
int /*<<< orphan*/ GLU_FILL;
int /*<<< orphan*/ GLU_SMOOTH;
int /*<<< orphan*/ GL_DIFFUSE;
int /*<<< orphan*/ GL_FRONT;
int /*<<< orphan*/ GL_SHININESS;
int /*<<< orphan*/ GL_SPECULAR;
int /*<<< orphan*/ glMaterialf(int /*<<< orphan*/, int /*<<< orphan*/, int);
int /*<<< orphan*/ glMaterialfv(int /*<<< orphan*/, int /*<<< orphan*/,
                                double *);
int /*<<< orphan*/ glPopMatrix();
int /*<<< orphan*/ glPushMatrix();
int /*<<< orphan*/ glRotated(double, double, double, double);
int /*<<< orphan*/ glScaled(double, double, double);
int /*<<< orphan*/ glTranslated(double, double, double);
int /*<<< orphan*/ gluCylinder(int /*<<< orphan*/ *, double, double, double,
                               int, int);
int /*<<< orphan*/ *gluNewQuadric();
int /*<<< orphan*/ gluQuadricDrawStyle(int /*<<< orphan*/ *,
                                       int /*<<< orphan*/);
int /*<<< orphan*/ gluQuadricNormals(int /*<<< orphan*/ *, int /*<<< orphan*/);
int /*<<< orphan*/ gluSphere(int /*<<< orphan*/ *, double, int, int);
int /*<<< orphan*/ glutSolidCone(double, double, int, int);
void myDrawHomerHead(void) {
  GLUquadricObj *qobj;
  GLfloat spec[] = {0.0, 0.0, 0.0, 1.0};
  GLfloat diffY[] = {1.0, 0.8, 0.0, 1.0};
  GLfloat diffB[] = {0.0, 0.0, 0.0, 0.0};
  GLfloat diffW[] = {1.0, 1.0, 1.0, 1.0};
  GLfloat diffBR[] = {0.5, 0.3, 0.1, 1.0};
  qobj = gluNewQuadric();
  gluQuadricDrawStyle(qobj, GLU_FILL);
  gluQuadricNormals(qobj, GLU_SMOOTH);
  glMaterialf(GL_FRONT, GL_SHININESS, 10);
  glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffY);
  glRotated(-90.0, 1.0, 0.0, 0.0);
  glPushMatrix();
  glPushMatrix();
  glTranslated(0.0, 0.0, -2.5);
  glScaled(1.0, 1.15, 1.5);
  gluSphere(qobj, 1.30, 30, 30);
  glTranslated(0.0, 0.0, -3.4);
  gluCylinder(qobj, 1.30, 1.30, 3.5, 30, 30);
  glPopMatrix();
  glMaterialf(GL_FRONT, GL_SHININESS, 100);
  glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffW);
  glPushMatrix();
  glTranslated(0.595, -1.0, -2.3);
  gluSphere(qobj, 0.6, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(-0.595, -1.0, -2.3);
  gluSphere(qobj, 0.6, 30, 30);
  glPopMatrix();
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffB);
  glPushMatrix();
  glTranslated(0.595, -1.50, -2.2);
  gluSphere(qobj, 0.175, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(-0.595, -1.50, -2.2);
  gluSphere(qobj, 0.175, 30, 30);
  glPopMatrix();
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffBR);
  glPushMatrix();
  glTranslated(0.0, -1.0, -3.3);
  glutSolidCone(1.2, 1.2, 22, 22);
  glRotated(180.0, 1.0, 0.0, 0.0);
  glutSolidCone(1.2, 1.2, 22, 22);
  glPopMatrix();
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffY);
  glTranslated(0.0, 0.0, -2.5);
  glRotated(90.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.25, 0.25, 2.2, 30, 30);
  glTranslated(0.0, 0.0, 2.2);
  gluSphere(qobj, 0.25, 30, 30);
  glPushMatrix();
  glTranslated(-1.3, 0.0, -2.4);
  gluSphere(qobj, 0.25, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(1.3, 0.0, -2.4);
  gluSphere(qobj, 0.25, 30, 30);
  glPopMatrix();
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffB);
  glPushMatrix();
  glRotated(70.0, 1.0, 0.0, 0.0);
  glRotated(20.0, 0.0, 0.0, 1.0);
  glTranslated(0.6, -1.8, 0.0);
  glTranslated(0.0, 0.0, -1.9);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  gluSphere(qobj, 0.06, 30, 30);
  glTranslated(0.0, 0.0, 0);
  glRotated(-321.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glRotated(70.0, 1.0, 0.0, 0.0);
  glRotated(20.0, 0.0, 0.0, 1.0);
  glRotated(8.0, 0.0, 1.0, 0.0);
  glTranslated(0.8, -2.3, -0.1);
  glTranslated(0.0, 0.0, -1.9);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  gluSphere(qobj, 0.06, 30, 30);
  glRotated(-321.0, 1.0, 0.0, 0.0);
  glRotated(-18.0, 0.0, 1.0, 0.0);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glRotated(70.0, 1.0, 0.0, 0.0);
  glRotated(20.0, 0.0, 0.0, 1.0);
  glTranslated(-2.0, -1.8, 0.0);
  glTranslated(0.0, 0.0, -1.9);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  gluSphere(qobj, 0.06, 30, 30);
  glTranslated(0.0, 0.0, 0);
  glRotated(-321.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glRotated(70.0, 1.0, 0.0, 0.0);
  glRotated(20.0, 0.0, 0.0, 1.0);
  glRotated(4.0, 0.0, 1.0, 0.0);
  glTranslated(-1.7, -1.3, 0.0);
  glTranslated(0.0, 0.0, -1.9);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  gluSphere(qobj, 0.06, 30, 30);
  glRotated(-321.0, 1.0, 0.0, 0.0);
  glRotated(-18.0, 0.0, 1.0, 0.0);
  gluCylinder(qobj, 0.06, 0.06, 0.8, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(-0.5, 2.0, -2.0);
  glRotated(75.0, 0.0, 1.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.8, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glRotated(110.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.4, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(0.655, 1.95, -1.755);
  glRotated(90.0, 0.0, 1.0, 0.0);
  glPushMatrix();
  glRotated(45.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.2, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glPopMatrix();
  glRotated(190.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.4, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(-0.5, 1.905, -2.35);
  glRotated(95.0, 0.0, 1.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 1.3, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glRotated(129.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.4, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glPopMatrix();
  glPushMatrix();
  glTranslated(-0.5, 1.905, -2.05);
  glRotated(95.0, 0.0, 1.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 1.3, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glRotated(129.0, 1.0, 0.0, 0.0);
  gluCylinder(qobj, 0.04, 0.04, 0.4, 30, 30);
  gluSphere(qobj, 0.04, 30, 30);
  glPopMatrix();
  glPopMatrix();
}


x86 assembly (clang, -O0):
<myDrawHomerHead>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
mov    0xfbe(%rip),%rax
mov    %rax,-0x30(%rbp)
mov    0xfbb(%rip),%rax
mov    %rax,-0x28(%rbp)
mov    0xfb8(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0xfb5(%rip),%rax
mov    %rax,-0x18(%rbp)
mov    0xfb2(%rip),%rax
mov    %rax,-0x50(%rbp)
mov    0xfaf(%rip),%rax
mov    %rax,-0x48(%rbp)
mov    0xfac(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0xfa9(%rip),%rax
mov    %rax,-0x38(%rbp)
lea    -0x70(%rbp),%rdi
xor    %esi,%esi
mov    $0x20,%edx
call   1060 <memset@plt>
mov    0xf96(%rip),%rax
mov    %rax,-0x90(%rbp)
mov    0xf90(%rip),%rax
mov    %rax,-0x88(%rbp)
mov    0xf8a(%rip),%rax
mov    %rax,-0x80(%rbp)
mov    0xf87(%rip),%rax
mov    %rax,-0x78(%rbp)
mov    0xf84(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    0xf7e(%rip),%rax
mov    %rax,-0xa8(%rbp)
mov    0xf78(%rip),%rax
mov    %rax,-0xa0(%rbp)
mov    0xf72(%rip),%rax
mov    %rax,-0x98(%rbp)
mov    $0x0,%al
call   1050 <gluNewQuadric@plt>
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
mov    0x2ced(%rip),%rax
mov    (%rax),%esi
call   10a0 <gluQuadricDrawStyle@plt>
mov    -0x8(%rbp),%rdi
mov    0x2ceb(%rip),%rax
mov    (%rax),%esi
call   10d0 <gluQuadricNormals@plt>
mov    0x2ce5(%rip),%rax
mov    (%rax),%edi
mov    0x2cf4(%rip),%rax
mov    (%rax),%esi
mov    $0xa,%edx
call   1040 <glMaterialf@plt>
mov    0x2cc9(%rip),%rax
mov    (%rax),%edi
mov    0x2cd0(%rip),%rax
mov    (%rax),%esi
lea    -0x30(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    0x2cae(%rip),%rax
mov    (%rax),%edi
mov    0x2c85(%rip),%rax
mov    (%rax),%esi
lea    -0x50(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
movsd  0xe62(%rip),%xmm0
movsd  0xcca(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
movsd  0xdc6(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
movsd  0xc96(%rip),%xmm0
movsd  0xe0e(%rip),%xmm1
movsd  0xe0e(%rip),%xmm2
call   1090 <glScaled@plt>
mov    -0x8(%rbp),%rdi
movsd  0xc7d(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
xorps  %xmm1,%xmm1
movsd  0xdd6(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xc52(%rip),%xmm1
movsd  0xdb2(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    0x2be5(%rip),%rax
mov    (%rax),%edi
mov    0x2bf4(%rip),%rax
mov    (%rax),%esi
mov    $0x64,%edx
call   1040 <glMaterialf@plt>
mov    0x2bc9(%rip),%rax
mov    (%rax),%edi
mov    0x2bd0(%rip),%rax
mov    (%rax),%esi
lea    -0x30(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    0x2bae(%rip),%rax
mov    (%rax),%edi
mov    0x2b85(%rip),%rax
mov    (%rax),%esi
lea    -0x90(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0xd30(%rip),%xmm0
movsd  0xcf8(%rip),%xmm1
movsd  0xca0(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xca7(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0xcd5(%rip),%xmm0
movsd  0xcb5(%rip),%xmm1
movsd  0xc5d(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xc64(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    0x2b0a(%rip),%rax
mov    (%rax),%edi
mov    0x2ae1(%rip),%rax
mov    (%rax),%esi
lea    -0x70(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0xc8f(%rip),%xmm0
movsd  0xc77(%rip),%xmm1
movsd  0xc77(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xc4e(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0xc34(%rip),%xmm0
movsd  0xc34(%rip),%xmm1
movsd  0xc34(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xc0b(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    0x2a69(%rip),%rax
mov    (%rax),%edi
mov    0x2a40(%rip),%rax
mov    (%rax),%esi
lea    -0xb0(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
xorps  %xmm0,%xmm0
movsd  0xbb8(%rip),%xmm1
movsd  0xbb8(%rip),%xmm2
call   10e0 <glTranslated@plt>
movsd  0xb93(%rip),%xmm1
mov    $0x16,%esi
movaps %xmm1,%xmm0
mov    %esi,%edi
call   1030 <glutSolidCone@plt>
movsd  0xb84(%rip),%xmm0
movsd  0xa4c(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0xb61(%rip),%xmm1
mov    $0x16,%esi
movaps %xmm1,%xmm0
mov    %esi,%edi
call   1030 <glutSolidCone@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    0x29dc(%rip),%rax
mov    (%rax),%edi
mov    0x29b3(%rip),%rax
mov    (%rax),%esi
lea    -0x50(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
xorps  %xmm1,%xmm1
movsd  0xb1d(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
movsd  0xa3d(%rip),%xmm0
movsd  0x9e5(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xad6(%rip),%xmm1
movsd  0xade(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
xorps  %xmm1,%xmm1
movsd  0xac4(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xaa0(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0xa3d(%rip),%xmm0
xorps  %xmm1,%xmm1
movsd  0xa82(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xa69(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x947(%rip),%xmm0
xorps  %xmm1,%xmm1
movsd  0xa44(%rip),%xmm2
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0xa2b(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    0x28c9(%rip),%rax
mov    (%rax),%edi
mov    0x28a0(%rip),%rax
mov    (%rax),%esi
lea    -0x70(%rbp),%rdx
call   10f0 <glMaterialfv@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x9be(%rip),%xmm0
movsd  0x8de(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x99b(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x8c0(%rip),%xmm3
movaps %xmm2,%xmm1
call   1100 <glRotated@plt>
movsd  0x9b0(%rip),%xmm0
movsd  0x988(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10e0 <glTranslated@plt>
xorps  %xmm1,%xmm1
movsd  0x945(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x919(%rip),%xmm1
movsd  0x8f1(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x8f6(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
movaps %xmm2,%xmm1
call   10e0 <glTranslated@plt>
movsd  0x8e4(%rip),%xmm0
movsd  0x834(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x8b5(%rip),%xmm1
movsd  0x88d(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x8c8(%rip),%xmm0
movsd  0x7e8(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x8a5(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x7ca(%rip),%xmm3
movaps %xmm2,%xmm1
call   1100 <glRotated@plt>
movsd  0x8b2(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x7af(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
movsd  0x817(%rip),%xmm0
movsd  0x87f(%rip),%xmm1
movsd  0x87f(%rip),%xmm2
call   10e0 <glTranslated@plt>
xorps  %xmm1,%xmm1
movsd  0x82f(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x803(%rip),%xmm1
movsd  0x7db(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x7e0(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
movsd  0x7dc(%rip),%xmm0
movsd  0x72c(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x7b9(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x70e(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x792(%rip),%xmm1
movsd  0x76a(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x7a5(%rip),%xmm0
movsd  0x6c5(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x782(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x6a7(%rip),%xmm3
movaps %xmm2,%xmm1
call   1100 <glRotated@plt>
movsd  0x727(%rip),%xmm0
movsd  0x76f(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10e0 <glTranslated@plt>
xorps  %xmm1,%xmm1
movsd  0x72c(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x700(%rip),%xmm1
movsd  0x6d8(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x6dd(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm0
movaps %xmm2,%xmm1
call   10e0 <glTranslated@plt>
movsd  0x6cb(%rip),%xmm0
movsd  0x61b(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x69c(%rip),%xmm1
movsd  0x674(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x6af(%rip),%xmm0
movsd  0x5cf(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x68c(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x5b1(%rip),%xmm3
movaps %xmm2,%xmm1
call   1100 <glRotated@plt>
movsd  0x669(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x596(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
movsd  0x63e(%rip),%xmm0
movsd  0x63e(%rip),%xmm1
xorps  %xmm2,%xmm2
call   10e0 <glTranslated@plt>
xorps  %xmm1,%xmm1
movsd  0x61b(%rip),%xmm2
movaps %xmm1,%xmm0
call   10e0 <glTranslated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x5ef(%rip),%xmm1
movsd  0x5c7(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x5cc(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
movsd  0x5c8(%rip),%xmm0
movsd  0x518(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
movsd  0x5a5(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x4fa(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x57e(%rip),%xmm1
movsd  0x556(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x4d1(%rip),%xmm0
movsd  0x539(%rip),%xmm1
movsd  0x539(%rip),%xmm2
call   10e0 <glTranslated@plt>
movsd  0x51c(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x491(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x465(%rip),%xmm1
movsd  0x4ed(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x442(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
movsd  0x4b6(%rip),%xmm0
movsd  0x43e(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x40f(%rip),%xmm1
movsd  0x40f(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x3ec(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x43a(%rip),%xmm0
movsd  0x43a(%rip),%xmm1
movsd  0x43a(%rip),%xmm2
call   10e0 <glTranslated@plt>
movsd  0x415(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x3ba(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x3eb(%rip),%xmm0
movsd  0x39b(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x36c(%rip),%xmm1
movsd  0x3bc(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x349(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
movsd  0x37e(%rip),%xmm0
movsd  0x33e(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x30f(%rip),%xmm1
movsd  0x30f(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x2ec(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x2fa(%rip),%xmm0
movsd  0x2fa(%rip),%xmm1
movsd  0x302(%rip),%xmm2
call   10e0 <glTranslated@plt>
movsd  0x2d5(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x2ba(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x28e(%rip),%xmm1
movsd  0x2a6(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x26b(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
movsd  0x267(%rip),%xmm0
movsd  0x267(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x238(%rip),%xmm1
movsd  0x238(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x215(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   10b0 <glPushMatrix@plt>
movsd  0x223(%rip),%xmm0
movsd  0x223(%rip),%xmm1
movsd  0x223(%rip),%xmm2
call   10e0 <glTranslated@plt>
movsd  0x1fe(%rip),%xmm0
xorps  %xmm3,%xmm3
movsd  0x1e3(%rip),%xmm2
movaps %xmm3,%xmm1
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x1b7(%rip),%xmm1
movsd  0x1cf(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x194(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
movsd  0x190(%rip),%xmm0
movsd  0x190(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm2
call   1100 <glRotated@plt>
mov    -0x8(%rbp),%rdi
movsd  0x161(%rip),%xmm1
movsd  0x161(%rip),%xmm2
mov    $0x1e,%edx
movaps %xmm1,%xmm0
mov    %edx,%esi
call   10c0 <gluCylinder@plt>
mov    -0x8(%rbp),%rdi
movsd  0x13e(%rip),%xmm0
mov    $0x1e,%edx
mov    %edx,%esi
call   1070 <gluSphere@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
mov    $0x0,%al
call   1080 <glPopMatrix@plt>
add    $0xb0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<myDrawHomerHead>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
movaps 0xfd8(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xfb9(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xfda(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movaps 0xfbe(%rip),%xmm0
movaps %xmm0,(%rsp)
xorps  %xmm0,%xmm0
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x60(%rsp)
movaps 0xfd6(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xfba(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0xfde(%rip),%xmm0
movaps %xmm0,0x30(%rsp)
movaps 0xfc2(%rip),%xmm0
movaps %xmm0,0x20(%rsp)
xor    %eax,%eax
call   1050 <gluNewQuadric@plt>
mov    %rax,%rbx
mov    0x2d5c(%rip),%rax
mov    (%rax),%esi
mov    %rbx,%rdi
call   1090 <gluQuadricDrawStyle@plt>
mov    0x2d5b(%rip),%rax
mov    (%rax),%esi
mov    %rbx,%rdi
call   10c0 <gluQuadricNormals@plt>
mov    0x2d52(%rip),%r12
mov    (%r12),%edi
mov    0x2d5f(%rip),%rbp
mov    0x0(%rbp),%esi
mov    $0xa,%edx
call   1040 <glMaterialf@plt>
mov    (%r12),%edi
mov    0x2d3f(%rip),%r14
mov    (%r14),%esi
lea    0x80(%rsp),%r15
mov    %r15,%rdx
call   10e0 <glMaterialfv@plt>
mov    (%r12),%edi
mov    0x2cf1(%rip),%r13
mov    0x0(%r13),%esi
mov    %rsp,%rdx
call   10e0 <glMaterialfv@plt>
movsd  0xd25(%rip),%xmm0
movsd  0xd25(%rip),%xmm1
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
call   10f0 <glRotated@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xd0c(%rip),%xmm2
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   10d0 <glTranslated@plt>
movsd  0xd01(%rip),%xmm1
movsd  0xd01(%rip),%xmm2
movsd  0xce1(%rip),%xmm0
call   1080 <glScaled@plt>
movsd  0xcf4(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
movsd  0xce2(%rip),%xmm2
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   10d0 <glTranslated@plt>
movsd  0xcd7(%rip),%xmm2
mov    %rbx,%rdi
movsd  0xcbc(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
mov    (%r12),%edi
mov    0x0(%rbp),%esi
mov    $0x64,%edx
call   1040 <glMaterialf@plt>
mov    (%r12),%edi
mov    (%r14),%esi
mov    %r15,%rdx
call   10e0 <glMaterialfv@plt>
mov    (%r12),%edi
mov    0x0(%r13),%esi
lea    0x40(%rsp),%rdx
call   10e0 <glMaterialfv@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xc7a(%rip),%xmm0
movsd  0xc7a(%rip),%xmm1
movsd  0xc7a(%rip),%xmm2
call   10d0 <glTranslated@plt>
movsd  0xc75(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xc55(%rip),%xmm0
movsd  0xc35(%rip),%xmm1
movsd  0xc35(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0xc2d(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
mov    (%r12),%edi
mov    0x0(%r13),%esi
lea    0x60(%rsp),%r15
mov    %r15,%rdx
call   10e0 <glMaterialfv@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xc03(%rip),%xmm1
movsd  0xc03(%rip),%xmm2
movsd  0xbcb(%rip),%xmm0
call   10d0 <glTranslated@plt>
movsd  0xbf6(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xbb6(%rip),%xmm0
movsd  0xbb6(%rip),%xmm1
movsd  0xbb6(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0xbae(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
mov    (%r12),%edi
mov    0x0(%r13),%esi
lea    0x20(%rsp),%rdx
call   10e0 <glMaterialfv@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xb7f(%rip),%xmm2
xorps  %xmm0,%xmm0
movsd  0xb3c(%rip),%xmm1
call   10d0 <glTranslated@plt>
movsd  0xb6f(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x16,%edi
mov    $0x16,%esi
call   1030 <glutSolidCone@plt>
movsd  0xb5d(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0xac7(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0xb3a(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x16,%edi
mov    $0x16,%esi
call   1030 <glutSolidCone@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
mov    (%r12),%edi
mov    0x0(%r13),%esi
mov    %rsp,%rdx
call   10e0 <glMaterialfv@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0xa8b(%rip),%xmm2
call   10d0 <glTranslated@plt>
movsd  0xb06(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0xa68(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0xaf3(%rip),%xmm0
movsd  0xaf3(%rip),%xmm2
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0xad0(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0xab8(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xaaa(%rip),%xmm0
movsd  0xaaa(%rip),%xmm2
xorps  %xmm1,%xmm1
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0xa7f(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
movsd  0x9df(%rip),%xmm0
movsd  0xa67(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0xa3f(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
mov    (%r12),%edi
mov    0x0(%r13),%esi
mov    %r15,%rdx
call   10e0 <glMaterialfv@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0xa2a(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x964(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0xa17(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x949(%rip),%xmm3
call   10f0 <glRotated@plt>
movsd  0xa04(%rip),%xmm1
xorps  %xmm2,%xmm2
movsd  0x981(%rip),%xmm0
call   10d0 <glTranslated@plt>
movsd  0x9f4(%rip),%xmm2
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   10d0 <glTranslated@plt>
movsd  0x9e9(%rip),%xmm0
movsd  0x9e9(%rip),%xmm2
mov    %rbx,%rdi
movaps %xmm0,%xmm1
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x9c1(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
call   10d0 <glTranslated@plt>
movsd  0x9ac(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x8b6(%rip),%xmm1
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x97e(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x97b(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x928(%rip),%xmm0
movsd  0x868(%rip),%xmm1
call   10f0 <glRotated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x915(%rip),%xmm0
movsd  0x84d(%rip),%xmm3
call   10f0 <glRotated@plt>
movsd  0x930(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x832(%rip),%xmm2
call   10f0 <glRotated@plt>
movsd  0x91d(%rip),%xmm2
movsd  0x8fd(%rip),%xmm0
movsd  0x85d(%rip),%xmm1
call   10d0 <glTranslated@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0x8d2(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0x8ca(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x8c7(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x8a5(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x898(%rip),%xmm0
movsd  0x7a8(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0x89b(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x78d(%rip),%xmm2
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x855(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x852(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x7ff(%rip),%xmm0
movsd  0x73f(%rip),%xmm1
call   10f0 <glRotated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x7ec(%rip),%xmm0
movsd  0x724(%rip),%xmm3
call   10f0 <glRotated@plt>
movsd  0x81f(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x7d4(%rip),%xmm1
call   10d0 <glTranslated@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0x7c9(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0x7c1(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x7be(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x79c(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
call   10d0 <glTranslated@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x781(%rip),%xmm0
movsd  0x691(%rip),%xmm1
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x759(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x756(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x703(%rip),%xmm0
movsd  0x643(%rip),%xmm1
call   10f0 <glRotated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x6f0(%rip),%xmm0
movsd  0x628(%rip),%xmm3
call   10f0 <glRotated@plt>
movsd  0x72b(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x60d(%rip),%xmm2
call   10f0 <glRotated@plt>
movsd  0x718(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0x69d(%rip),%xmm1
call   10d0 <glTranslated@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movsd  0x6b2(%rip),%xmm2
call   10d0 <glTranslated@plt>
mov    %rbx,%rdi
movsd  0x6aa(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x6a7(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x685(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x678(%rip),%xmm0
movsd  0x588(%rip),%xmm1
call   10f0 <glRotated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x675(%rip),%xmm0
movsd  0x56d(%rip),%xmm2
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x635(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x632(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0x64d(%rip),%xmm0
movsd  0x64d(%rip),%xmm1
movsd  0x625(%rip),%xmm2
call   10d0 <glTranslated@plt>
movsd  0x640(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x502(%rip),%xmm2
call   10f0 <glRotated@plt>
movsd  0x62d(%rip),%xmm0
mov    %rbx,%rdi
movaps %xmm0,%xmm1
movsd  0x5c7(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x605(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
movsd  0x5f6(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x4a8(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0x5e3(%rip),%xmm2
mov    %rbx,%rdi
movsd  0x5c8(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x5ab(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0x59e(%rip),%xmm0
movsd  0x59e(%rip),%xmm1
movsd  0x59e(%rip),%xmm2
call   10d0 <glTranslated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x4bb(%rip),%xmm0
movsd  0x423(%rip),%xmm2
call   10f0 <glRotated@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0x577(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x401(%rip),%xmm1
call   10f0 <glRotated@plt>
movsd  0x564(%rip),%xmm2
mov    %rbx,%rdi
movsd  0x521(%rip),%xmm0
movaps %xmm0,%xmm1
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x504(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
movsd  0x526(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x3a0(%rip),%xmm1
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x4c8(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x4cd(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x4a3(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0x4c6(%rip),%xmm1
movsd  0x4c6(%rip),%xmm2
movsd  0x456(%rip),%xmm0
call   10d0 <glTranslated@plt>
movsd  0x4b9(%rip),%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x31b(%rip),%xmm2
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x443(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x320(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x41e(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
movsd  0x467(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x2c1(%rip),%xmm1
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x3e9(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x3ee(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x3c4(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   10a0 <glPushMatrix@plt>
movsd  0x407(%rip),%xmm2
movsd  0x37f(%rip),%xmm0
movsd  0x3d7(%rip),%xmm1
call   10d0 <glTranslated@plt>
xorps  %xmm1,%xmm1
xorps  %xmm3,%xmm3
movsd  0x3d4(%rip),%xmm0
movsd  0x23c(%rip),%xmm2
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x364(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x241(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x33f(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movsd  0x382(%rip),%xmm0
movsd  0x1e2(%rip),%xmm1
call   10f0 <glRotated@plt>
mov    %rbx,%rdi
movsd  0x30a(%rip),%xmm0
movaps %xmm0,%xmm1
movsd  0x30f(%rip),%xmm2
mov    $0x1e,%esi
mov    $0x1e,%edx
call   10b0 <gluCylinder@plt>
mov    %rbx,%rdi
movsd  0x2e5(%rip),%xmm0
mov    $0x1e,%esi
mov    $0x1e,%edx
call   1060 <gluSphere@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
xor    %eax,%eax
call   1070 <glPopMatrix@plt>
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.myDrawHomerHead.spec = [4 x double] [double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffY = [4 x double] [double 1.000000e+00, double 8.000000e-01, double 0.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffW = [4 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffBR = [4 x double] [double 5.000000e-01, double 3.000000e-01, double 1.000000e-01, double 1.000000e+00]
@GLU_FILL = global i32 0
@GLU_SMOOTH = global i32 0
@GL_FRONT = global i32 0
@GL_SHININESS = global i32 0
@GL_SPECULAR = global i32 0
@GL_DIFFUSE = global i32 0
define void @myDrawHomerHead() {
%1 = alloca i32*
%2 = alloca [4 x double]
%3 = alloca [4 x double]
%4 = alloca [4 x double]
%5 = alloca [4 x double]
%6 = alloca [4 x double]
%7 = bitcast [4 x double]* %2 to i8*
%8 = bitcast [4 x double]* %3 to i8*
%9 = bitcast [4 x double]* %4 to i8*
%10 = bitcast [4 x double]* %5 to i8*
%11 = bitcast [4 x double]* %6 to i8*
%12 = call i32* (...) @gluNewQuadric()
store i32* %12, i32** %1
%13 = load i32*, i32** %1
%14 = load i32, i32* @GLU_FILL
%15 = call i32 @gluQuadricDrawStyle(i32* %13, i32 %14)
%16 = load i32*, i32** %1
%17 = load i32, i32* @GLU_SMOOTH
%18 = call i32 @gluQuadricNormals(i32* %16, i32 %17)
%19 = load i32, i32* @GL_FRONT
%20 = load i32, i32* @GL_SHININESS
%21 = call i32 @glMaterialf(i32 %19, i32 %20, i32 10)
%22 = load i32, i32* @GL_FRONT
%23 = load i32, i32* @GL_SPECULAR
%24 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%25 = call i32 @glMaterialfv(i32 %22, i32 %23, double* %24)
%26 = load i32, i32* @GL_FRONT
%27 = load i32, i32* @GL_DIFFUSE
%28 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%29 = call i32 @glMaterialfv(i32 %26, i32 %27, double* %28)
%30 = call i32 @glRotated(double -9.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%31 = call i32 (...) @glPushMatrix()
%32 = call i32 (...) @glPushMatrix()
%33 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -2.500000e+00)
%34 = call i32 @glScaled(double 1.000000e+00, double 1.150000e+00, double 1.500000e+00)
%35 = load i32*, i32** %1
%36 = call i32 @gluSphere(i32* %35, double 1.300000e+00, i32 30, i32 30)
%37 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -3.400000e+00)
%38 = load i32*, i32** %1
%39 = call i32 @gluCylinder(i32* %38, double 1.300000e+00, double 1.300000e+00, double 3.500000e+00, i32 30, i32 30)
%40 = call i32 (...) @glPopMatrix()
%41 = load i32, i32* @GL_FRONT
%42 = load i32, i32* @GL_SHININESS
%43 = call i32 @glMaterialf(i32 %41, i32 %42, i32 100)
%44 = load i32, i32* @GL_FRONT
%45 = load i32, i32* @GL_SPECULAR
%46 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%47 = call i32 @glMaterialfv(i32 %44, i32 %45, double* %46)
%48 = load i32, i32* @GL_FRONT
%49 = load i32, i32* @GL_DIFFUSE
%50 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%51 = call i32 @glMaterialfv(i32 %48, i32 %49, double* %50)
%52 = call i32 (...) @glPushMatrix()
%53 = call i32 @glTranslated(double 5.950000e-01, double -1.000000e+00, double -2.300000e+00)
%54 = load i32*, i32** %1
%55 = call i32 @gluSphere(i32* %54, double 6.000000e-01, i32 30, i32 30)
%56 = call i32 (...) @glPopMatrix()
%57 = call i32 (...) @glPushMatrix()
%58 = call i32 @glTranslated(double -5.950000e-01, double -1.000000e+00, double -2.300000e+00)
%59 = load i32*, i32** %1
%60 = call i32 @gluSphere(i32* %59, double 6.000000e-01, i32 30, i32 30)
%61 = call i32 (...) @glPopMatrix()
%62 = load i32, i32* @GL_FRONT
%63 = load i32, i32* @GL_DIFFUSE
%64 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%65 = call i32 @glMaterialfv(i32 %62, i32 %63, double* %64)
%66 = call i32 (...) @glPushMatrix()
%67 = call i32 @glTranslated(double 5.950000e-01, double -1.500000e+00, double -2.200000e+00)
%68 = load i32*, i32** %1
%69 = call i32 @gluSphere(i32* %68, double 1.750000e-01, i32 30, i32 30)
%70 = call i32 (...) @glPopMatrix()
%71 = call i32 (...) @glPushMatrix()
%72 = call i32 @glTranslated(double -5.950000e-01, double -1.500000e+00, double -2.200000e+00)
%73 = load i32*, i32** %1
%74 = call i32 @gluSphere(i32* %73, double 1.750000e-01, i32 30, i32 30)
%75 = call i32 (...) @glPopMatrix()
%76 = load i32, i32* @GL_FRONT
%77 = load i32, i32* @GL_DIFFUSE
%78 = getelementptr inbounds [4 x double], [4 x double]* %6, i64 0, i64 0
%79 = call i32 @glMaterialfv(i32 %76, i32 %77, double* %78)
%80 = call i32 (...) @glPushMatrix()
%81 = call i32 @glTranslated(double 0.000000e+00, double -1.000000e+00, double -3.300000e+00)
%82 = call i32 @glutSolidCone(double 1.200000e+00, double 1.200000e+00, i32 22, i32 22)
%83 = call i32 @glRotated(double 1.800000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%84 = call i32 @glutSolidCone(double 1.200000e+00, double 1.200000e+00, i32 22, i32 22)
%85 = call i32 (...) @glPopMatrix()
%86 = load i32, i32* @GL_FRONT
%87 = load i32, i32* @GL_DIFFUSE
%88 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%89 = call i32 @glMaterialfv(i32 %86, i32 %87, double* %88)
%90 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -2.500000e+00)
%91 = call i32 @glRotated(double 9.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%92 = load i32*, i32** %1
%93 = call i32 @gluCylinder(i32* %92, double 2.500000e-01, double 2.500000e-01, double 2.200000e+00, i32 30, i32 30)
%94 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 2.200000e+00)
%95 = load i32*, i32** %1
%96 = call i32 @gluSphere(i32* %95, double 2.500000e-01, i32 30, i32 30)
%97 = call i32 (...) @glPushMatrix()
%98 = call i32 @glTranslated(double -1.300000e+00, double 0.000000e+00, double -2.400000e+00)
%99 = load i32*, i32** %1
%100 = call i32 @gluSphere(i32* %99, double 2.500000e-01, i32 30, i32 30)
%101 = call i32 (...) @glPopMatrix()
%102 = call i32 (...) @glPushMatrix()
%103 = call i32 @glTranslated(double 1.300000e+00, double 0.000000e+00, double -2.400000e+00)
%104 = load i32*, i32** %1
%105 = call i32 @gluSphere(i32* %104, double 2.500000e-01, i32 30, i32 30)
%106 = call i32 (...) @glPopMatrix()
%107 = load i32, i32* @GL_FRONT
%108 = load i32, i32* @GL_DIFFUSE
%109 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%110 = call i32 @glMaterialfv(i32 %107, i32 %108, double* %109)
%111 = call i32 (...) @glPushMatrix()
%112 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%113 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%114 = call i32 @glTranslated(double 6.000000e-01, double -1.800000e+00, double 0.000000e+00)
%115 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%116 = load i32*, i32** %1
%117 = call i32 @gluCylinder(i32* %116, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%118 = load i32*, i32** %1
%119 = call i32 @gluSphere(i32* %118, double 6.000000e-02, i32 30, i32 30)
%120 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%121 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%122 = load i32*, i32** %1
%123 = call i32 @gluCylinder(i32* %122, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%124 = call i32 (...) @glPopMatrix()
%125 = call i32 (...) @glPushMatrix()
%126 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%127 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%128 = call i32 @glRotated(double 8.000000e+00, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%129 = call i32 @glTranslated(double 8.000000e-01, double -2.300000e+00, double -1.000000e-01)
%130 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%131 = load i32*, i32** %1
%132 = call i32 @gluCylinder(i32* %131, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%133 = load i32*, i32** %1
%134 = call i32 @gluSphere(i32* %133, double 6.000000e-02, i32 30, i32 30)
%135 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%136 = call i32 @glRotated(double -1.800000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%137 = load i32*, i32** %1
%138 = call i32 @gluCylinder(i32* %137, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%139 = call i32 (...) @glPopMatrix()
%140 = call i32 (...) @glPushMatrix()
%141 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%142 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%143 = call i32 @glTranslated(double -2.000000e+00, double -1.800000e+00, double 0.000000e+00)
%144 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%145 = load i32*, i32** %1
%146 = call i32 @gluCylinder(i32* %145, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%147 = load i32*, i32** %1
%148 = call i32 @gluSphere(i32* %147, double 6.000000e-02, i32 30, i32 30)
%149 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%150 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%151 = load i32*, i32** %1
%152 = call i32 @gluCylinder(i32* %151, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%153 = call i32 (...) @glPopMatrix()
%154 = call i32 (...) @glPushMatrix()
%155 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%156 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%157 = call i32 @glRotated(double 4.000000e+00, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%158 = call i32 @glTranslated(double -1.700000e+00, double -1.300000e+00, double 0.000000e+00)
%159 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%160 = load i32*, i32** %1
%161 = call i32 @gluCylinder(i32* %160, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%162 = load i32*, i32** %1
%163 = call i32 @gluSphere(i32* %162, double 6.000000e-02, i32 30, i32 30)
%164 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%165 = call i32 @glRotated(double -1.800000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%166 = load i32*, i32** %1
%167 = call i32 @gluCylinder(i32* %166, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%168 = call i32 (...) @glPopMatrix()
%169 = call i32 (...) @glPushMatrix()
%170 = call i32 @glTranslated(double -5.000000e-01, double 2.000000e+00, double -2.000000e+00)
%171 = call i32 @glRotated(double 7.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%172 = load i32*, i32** %1
%173 = call i32 @gluCylinder(i32* %172, double 4.000000e-02, double 4.000000e-02, double 8.000000e-01, i32 30, i32 30)
%174 = load i32*, i32** %1
%175 = call i32 @gluSphere(i32* %174, double 4.000000e-02, i32 30, i32 30)
%176 = call i32 @glRotated(double 1.100000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%177 = load i32*, i32** %1
%178 = call i32 @gluCylinder(i32* %177, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%179 = load i32*, i32** %1
%180 = call i32 @gluSphere(i32* %179, double 4.000000e-02, i32 30, i32 30)
%181 = call i32 (...) @glPopMatrix()
%182 = call i32 (...) @glPushMatrix()
%183 = call i32 @glTranslated(double 6.550000e-01, double 1.950000e+00, double -1.755000e+00)
%184 = call i32 @glRotated(double 9.000000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%185 = call i32 (...) @glPushMatrix()
%186 = call i32 @glRotated(double 4.500000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%187 = load i32*, i32** %1
%188 = call i32 @gluCylinder(i32* %187, double 4.000000e-02, double 4.000000e-02, double 2.000000e-01, i32 30, i32 30)
%189 = load i32*, i32** %1
%190 = call i32 @gluSphere(i32* %189, double 4.000000e-02, i32 30, i32 30)
%191 = call i32 (...) @glPopMatrix()
%192 = call i32 @glRotated(double 1.900000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%193 = load i32*, i32** %1
%194 = call i32 @gluCylinder(i32* %193, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%195 = load i32*, i32** %1
%196 = call i32 @gluSphere(i32* %195, double 4.000000e-02, i32 30, i32 30)
%197 = call i32 (...) @glPopMatrix()
%198 = call i32 (...) @glPushMatrix()
%199 = call i32 @glTranslated(double -5.000000e-01, double 1.905000e+00, double -2.350000e+00)
%200 = call i32 @glRotated(double 9.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%201 = load i32*, i32** %1
%202 = call i32 @gluCylinder(i32* %201, double 4.000000e-02, double 4.000000e-02, double 1.300000e+00, i32 30, i32 30)
%203 = load i32*, i32** %1
%204 = call i32 @gluSphere(i32* %203, double 4.000000e-02, i32 30, i32 30)
%205 = call i32 @glRotated(double 1.290000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%206 = load i32*, i32** %1
%207 = call i32 @gluCylinder(i32* %206, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%208 = load i32*, i32** %1
%209 = call i32 @gluSphere(i32* %208, double 4.000000e-02, i32 30, i32 30)
%210 = call i32 (...) @glPopMatrix()
%211 = call i32 (...) @glPushMatrix()
%212 = call i32 @glTranslated(double -5.000000e-01, double 1.905000e+00, double -2.050000e+00)
%213 = call i32 @glRotated(double 9.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%214 = load i32*, i32** %1
%215 = call i32 @gluCylinder(i32* %214, double 4.000000e-02, double 4.000000e-02, double 1.300000e+00, i32 30, i32 30)
%216 = load i32*, i32** %1
%217 = call i32 @gluSphere(i32* %216, double 4.000000e-02, i32 30, i32 30)
%218 = call i32 @glRotated(double 1.290000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%219 = load i32*, i32** %1
%220 = call i32 @gluCylinder(i32* %219, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%221 = load i32*, i32** %1
%222 = call i32 @gluSphere(i32* %221, double 4.000000e-02, i32 30, i32 30)
%223 = call i32 (...) @glPopMatrix()
%224 = call i32 (...) @glPopMatrix()
ret void
}

LLVM IR (-O2):
@__const.myDrawHomerHead.spec = [4 x double] [double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffY = [4 x double] [double 1.000000e+00, double 8.000000e-01, double 0.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffW = [4 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00]
@__const.myDrawHomerHead.diffBR = [4 x double] [double 5.000000e-01, double 3.000000e-01, double 1.000000e-01, double 1.000000e+00]
@GLU_FILL = global i32 0
@GLU_SMOOTH = global i32 0
@GL_FRONT = global i32 0
@GL_SHININESS = global i32 0
@GL_SPECULAR = global i32 0
@GL_DIFFUSE = global i32 0
define void @myDrawHomerHead() {
%1 = alloca [4 x double]
%2 = alloca [4 x double]
%3 = alloca [4 x double]
%4 = alloca [4 x double]
%5 = alloca [4 x double]
%6 = bitcast [4 x double]* %1 to i8*
%7 = bitcast [4 x double]* %2 to i8*
%8 = bitcast [4 x double]* %3 to i8*
%9 = bitcast [4 x double]* %4 to i8*
%10 = bitcast [4 x double]* %5 to i8*
%11 = tail call i32* (...) @gluNewQuadric()
%12 = load i32, i32* @GLU_FILL
%13 = tail call i32 @gluQuadricDrawStyle(i32* %11, i32 %12)
%14 = load i32, i32* @GLU_SMOOTH
%15 = tail call i32 @gluQuadricNormals(i32* %11, i32 %14)
%16 = load i32, i32* @GL_FRONT
%17 = load i32, i32* @GL_SHININESS
%18 = tail call i32 @glMaterialf(i32 %16, i32 %17, i32 10)
%19 = load i32, i32* @GL_FRONT
%20 = load i32, i32* @GL_SPECULAR
%21 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%22 = call i32 @glMaterialfv(i32 %19, i32 %20, double* %21)
%23 = load i32, i32* @GL_FRONT
%24 = load i32, i32* @GL_DIFFUSE
%25 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%26 = call i32 @glMaterialfv(i32 %23, i32 %24, double* %25)
%27 = call i32 @glRotated(double -9.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%28 = call i32 (...) @glPushMatrix()
%29 = call i32 (...) @glPushMatrix()
%30 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -2.500000e+00)
%31 = call i32 @glScaled(double 1.000000e+00, double 1.150000e+00, double 1.500000e+00)
%32 = call i32 @gluSphere(i32* %11, double 1.300000e+00, i32 30, i32 30)
%33 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -3.400000e+00)
%34 = call i32 @gluCylinder(i32* %11, double 1.300000e+00, double 1.300000e+00, double 3.500000e+00, i32 30, i32 30)
%35 = call i32 (...) @glPopMatrix()
%36 = load i32, i32* @GL_FRONT
%37 = load i32, i32* @GL_SHININESS
%38 = call i32 @glMaterialf(i32 %36, i32 %37, i32 100)
%39 = load i32, i32* @GL_FRONT
%40 = load i32, i32* @GL_SPECULAR
%41 = call i32 @glMaterialfv(i32 %39, i32 %40, double* %21)
%42 = load i32, i32* @GL_FRONT
%43 = load i32, i32* @GL_DIFFUSE
%44 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%45 = call i32 @glMaterialfv(i32 %42, i32 %43, double* %44)
%46 = call i32 (...) @glPushMatrix()
%47 = call i32 @glTranslated(double 5.950000e-01, double -1.000000e+00, double -2.300000e+00)
%48 = call i32 @gluSphere(i32* %11, double 6.000000e-01, i32 30, i32 30)
%49 = call i32 (...) @glPopMatrix()
%50 = call i32 (...) @glPushMatrix()
%51 = call i32 @glTranslated(double -5.950000e-01, double -1.000000e+00, double -2.300000e+00)
%52 = call i32 @gluSphere(i32* %11, double 6.000000e-01, i32 30, i32 30)
%53 = call i32 (...) @glPopMatrix()
%54 = load i32, i32* @GL_FRONT
%55 = load i32, i32* @GL_DIFFUSE
%56 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%57 = call i32 @glMaterialfv(i32 %54, i32 %55, double* %56)
%58 = call i32 (...) @glPushMatrix()
%59 = call i32 @glTranslated(double 5.950000e-01, double -1.500000e+00, double -2.200000e+00)
%60 = call i32 @gluSphere(i32* %11, double 1.750000e-01, i32 30, i32 30)
%61 = call i32 (...) @glPopMatrix()
%62 = call i32 (...) @glPushMatrix()
%63 = call i32 @glTranslated(double -5.950000e-01, double -1.500000e+00, double -2.200000e+00)
%64 = call i32 @gluSphere(i32* %11, double 1.750000e-01, i32 30, i32 30)
%65 = call i32 (...) @glPopMatrix()
%66 = load i32, i32* @GL_FRONT
%67 = load i32, i32* @GL_DIFFUSE
%68 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%69 = call i32 @glMaterialfv(i32 %66, i32 %67, double* %68)
%70 = call i32 (...) @glPushMatrix()
%71 = call i32 @glTranslated(double 0.000000e+00, double -1.000000e+00, double -3.300000e+00)
%72 = call i32 @glutSolidCone(double 1.200000e+00, double 1.200000e+00, i32 22, i32 22)
%73 = call i32 @glRotated(double 1.800000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%74 = call i32 @glutSolidCone(double 1.200000e+00, double 1.200000e+00, i32 22, i32 22)
%75 = call i32 (...) @glPopMatrix()
%76 = load i32, i32* @GL_FRONT
%77 = load i32, i32* @GL_DIFFUSE
%78 = call i32 @glMaterialfv(i32 %76, i32 %77, double* %25)
%79 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -2.500000e+00)
%80 = call i32 @glRotated(double 9.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%81 = call i32 @gluCylinder(i32* %11, double 2.500000e-01, double 2.500000e-01, double 2.200000e+00, i32 30, i32 30)
%82 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 2.200000e+00)
%83 = call i32 @gluSphere(i32* %11, double 2.500000e-01, i32 30, i32 30)
%84 = call i32 (...) @glPushMatrix()
%85 = call i32 @glTranslated(double -1.300000e+00, double 0.000000e+00, double -2.400000e+00)
%86 = call i32 @gluSphere(i32* %11, double 2.500000e-01, i32 30, i32 30)
%87 = call i32 (...) @glPopMatrix()
%88 = call i32 (...) @glPushMatrix()
%89 = call i32 @glTranslated(double 1.300000e+00, double 0.000000e+00, double -2.400000e+00)
%90 = call i32 @gluSphere(i32* %11, double 2.500000e-01, i32 30, i32 30)
%91 = call i32 (...) @glPopMatrix()
%92 = load i32, i32* @GL_FRONT
%93 = load i32, i32* @GL_DIFFUSE
%94 = call i32 @glMaterialfv(i32 %92, i32 %93, double* %56)
%95 = call i32 (...) @glPushMatrix()
%96 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%97 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%98 = call i32 @glTranslated(double 6.000000e-01, double -1.800000e+00, double 0.000000e+00)
%99 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%100 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%101 = call i32 @gluSphere(i32* %11, double 6.000000e-02, i32 30, i32 30)
%102 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%103 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%104 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%105 = call i32 (...) @glPopMatrix()
%106 = call i32 (...) @glPushMatrix()
%107 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%108 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%109 = call i32 @glRotated(double 8.000000e+00, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%110 = call i32 @glTranslated(double 8.000000e-01, double -2.300000e+00, double -1.000000e-01)
%111 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%112 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%113 = call i32 @gluSphere(i32* %11, double 6.000000e-02, i32 30, i32 30)
%114 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%115 = call i32 @glRotated(double -1.800000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%116 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%117 = call i32 (...) @glPopMatrix()
%118 = call i32 (...) @glPushMatrix()
%119 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%120 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%121 = call i32 @glTranslated(double -2.000000e+00, double -1.800000e+00, double 0.000000e+00)
%122 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%123 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%124 = call i32 @gluSphere(i32* %11, double 6.000000e-02, i32 30, i32 30)
%125 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%126 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%127 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%128 = call i32 (...) @glPopMatrix()
%129 = call i32 (...) @glPushMatrix()
%130 = call i32 @glRotated(double 7.000000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%131 = call i32 @glRotated(double 2.000000e+01, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00)
%132 = call i32 @glRotated(double 4.000000e+00, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%133 = call i32 @glTranslated(double -1.700000e+00, double -1.300000e+00, double 0.000000e+00)
%134 = call i32 @glTranslated(double 0.000000e+00, double 0.000000e+00, double -1.900000e+00)
%135 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%136 = call i32 @gluSphere(i32* %11, double 6.000000e-02, i32 30, i32 30)
%137 = call i32 @glRotated(double -3.210000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%138 = call i32 @glRotated(double -1.800000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%139 = call i32 @gluCylinder(i32* %11, double 6.000000e-02, double 6.000000e-02, double 8.000000e-01, i32 30, i32 30)
%140 = call i32 (...) @glPopMatrix()
%141 = call i32 (...) @glPushMatrix()
%142 = call i32 @glTranslated(double -5.000000e-01, double 2.000000e+00, double -2.000000e+00)
%143 = call i32 @glRotated(double 7.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%144 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 8.000000e-01, i32 30, i32 30)
%145 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%146 = call i32 @glRotated(double 1.100000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%147 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%148 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%149 = call i32 (...) @glPopMatrix()
%150 = call i32 (...) @glPushMatrix()
%151 = call i32 @glTranslated(double 6.550000e-01, double 1.950000e+00, double -1.755000e+00)
%152 = call i32 @glRotated(double 9.000000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%153 = call i32 (...) @glPushMatrix()
%154 = call i32 @glRotated(double 4.500000e+01, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%155 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 2.000000e-01, i32 30, i32 30)
%156 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%157 = call i32 (...) @glPopMatrix()
%158 = call i32 @glRotated(double 1.900000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%159 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%160 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%161 = call i32 (...) @glPopMatrix()
%162 = call i32 (...) @glPushMatrix()
%163 = call i32 @glTranslated(double -5.000000e-01, double 1.905000e+00, double -2.350000e+00)
%164 = call i32 @glRotated(double 9.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%165 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 1.300000e+00, i32 30, i32 30)
%166 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%167 = call i32 @glRotated(double 1.290000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%168 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%169 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%170 = call i32 (...) @glPopMatrix()
%171 = call i32 (...) @glPushMatrix()
%172 = call i32 @glTranslated(double -5.000000e-01, double 1.905000e+00, double -2.050000e+00)
%173 = call i32 @glRotated(double 9.500000e+01, double 0.000000e+00, double 1.000000e+00, double 0.000000e+00)
%174 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 1.300000e+00, i32 30, i32 30)
%175 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%176 = call i32 @glRotated(double 1.290000e+02, double 1.000000e+00, double 0.000000e+00, double 0.000000e+00)
%177 = call i32 @gluCylinder(i32* %11, double 4.000000e-02, double 4.000000e-02, double 4.000000e-01, i32 30, i32 30)
%178 = call i32 @gluSphere(i32* %11, double 4.000000e-02, i32 30, i32 30)
%179 = call i32 (...) @glPopMatrix()
%180 = call i32 (...) @glPopMatrix()
ret void
}