// File: tomfunkhouser[P]gaps/pkgs/fglut/freeglut_geometry.c
// Function: glutSolidTetrahedron
void FGAPIENTRY glutSolidTetrahedron( void )
{
  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTetrahedron" );

  glBegin( GL_TRIANGLES ) ;
    glNormal3d ( -tet_r[0][0], -tet_r[0][1], -tet_r[0][2] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[2] ) ;
    glNormal3d ( -tet_r[1][0], -tet_r[1][1], -tet_r[1][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[2] ) ; glVertex3dv ( tet_r[3] ) ;
    glNormal3d ( -tet_r[2][0], -tet_r[2][1], -tet_r[2][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[1] ) ;
    glNormal3d ( -tet_r[3][0], -tet_r[3][1], -tet_r[3][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[2] ) ;
  glEnd() ;
}

// Assembly:
pushq %rax
leaq 0x6efd8(%rip), %rax     # 0x1fa390
cmpb $0x0, 0x1c(%rax)
jne 0x18b3d3
leaq 0x1250d(%rip), %rdi     # 0x19d8d2
leaq 0x23ec5(%rip), %rsi     # 0x1af291
movb $0x0, %al
callq 0x17de70
movl $0x4, %edi
callq 0x221b0
movsd 0x6f1eb(%rip), %xmm0    # 0x1fa5d0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x6f1d4(%rip), %xmm1    # 0x1fa5d8
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x6f1bd(%rip), %xmm2    # 0x1fa5e0
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
callq 0x22330
leaq 0x6f18a(%rip), %rdi     # 0x1fa5d0
addq $0x18, %rdi
callq 0x221d0
leaq 0x6f17a(%rip), %rdi     # 0x1fa5d0
addq $0x48, %rdi
callq 0x221d0
leaq 0x6f16a(%rip), %rdi     # 0x1fa5d0
addq $0x30, %rdi
callq 0x221d0
movsd 0x6f171(%rip), %xmm0    # 0x1fa5e8
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x6f15a(%rip), %xmm1    # 0x1fa5f0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x6f143(%rip), %xmm2    # 0x1fa5f8
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
callq 0x22330
leaq 0x6f0f8(%rip), %rdi     # 0x1fa5d0
callq 0x221d0
leaq 0x6f0ec(%rip), %rdi     # 0x1fa5d0
addq $0x30, %rdi
callq 0x221d0
leaq 0x6f0dc(%rip), %rdi     # 0x1fa5d0
addq $0x48, %rdi
callq 0x221d0
movsd 0x6f0fb(%rip), %xmm0    # 0x1fa600
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x6f0e4(%rip), %xmm1    # 0x1fa608
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x6f0cd(%rip), %xmm2    # 0x1fa610
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
callq 0x22330
leaq 0x6f06a(%rip), %rdi     # 0x1fa5d0
callq 0x221d0
leaq 0x6f05e(%rip), %rdi     # 0x1fa5d0
addq $0x48, %rdi
callq 0x221d0
leaq 0x6f04e(%rip), %rdi     # 0x1fa5d0
addq $0x18, %rdi
callq 0x221d0
movsd 0x6f085(%rip), %xmm0    # 0x1fa618
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x6f06e(%rip), %xmm1    # 0x1fa620
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movsd 0x6f057(%rip), %xmm2    # 0x1fa628
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
callq 0x22330
leaq 0x6efdc(%rip), %rdi     # 0x1fa5d0
callq 0x221d0
leaq 0x6efd0(%rip), %rdi     # 0x1fa5d0
addq $0x18, %rdi
callq 0x221d0
leaq 0x6efc0(%rip), %rdi     # 0x1fa5d0
addq $0x30, %rdi
callq 0x221d0
callq 0x22de0
popq %rax
retq