// File: /workspace/github_cpp_makefile_star2_O1/XuhuiSun95[P]My-OpenGL/main.cpp
// Function: drawCube(double, double, double)
void drawCube (double length, double height, double depth)
{
    // FRONT
    myBegin(POLYGON);
    myVertex3d(  0.5*length, -0.5*height, 0.5*depth );
    myVertex3d(  0.5*length,  0.5*height, 0.5*depth );
    myVertex3d( -0.5*length,  0.5*height, 0.5*depth );
    myVertex3d( -0.5*length, -0.5*height, 0.5*depth );
    myEnd();
    
    // BACK
    myBegin(POLYGON);
    myVertex3d(  0.5*length, -0.5*height, -0.5*depth );
    myVertex3d(  0.5*length,  0.5*height, -0.5*depth );
    myVertex3d( -0.5*length,  0.5*height, -0.5*depth);
    myVertex3d( -0.5*length, -0.5*height, -0.5*depth );
    myEnd();
    
    // RIGHT
    myBegin(POLYGON);
    myVertex3d( 0.5*length, -0.5*height, -0.5*depth );
    myVertex3d( 0.5*length,  0.5*height, -0.5*depth );
    myVertex3d( 0.5*length,  0.5*height,  0.5*depth );
    myVertex3d( 0.5*length, -0.5*height,  0.5*depth );
    myEnd();
    
    // LEFT
    myBegin(POLYGON);
    myVertex3d( -0.5*length, -0.5*height,  0.5*depth );
    myVertex3d( -0.5*length,  0.5*height,  0.5*depth );
    myVertex3d( -0.5*length,  0.5*height, -0.5*depth );
    myVertex3d( -0.5*length, -0.5*height, -0.5*depth );
    myEnd();
    
    // TOP
    myBegin(POLYGON);
    myVertex3d(  0.5*length,  0.5*height,  0.5*depth );
    myVertex3d(  0.5*length,  0.5*height, -0.5*depth );
    myVertex3d( -0.5*length,  0.5*height, -0.5*depth );
    myVertex3d( -0.5*length,  0.5*height,  0.5*depth );
    myEnd();
    
    // BOTTOM
    myBegin(POLYGON);
    myVertex3d(  0.5*length, -0.5*height, -0.5*depth );
    myVertex3d(  0.5*length, -0.5*height,  0.5*depth );
    myVertex3d( -0.5*length, -0.5*height,  0.5*depth );
    myVertex3d( -0.5*length, -0.5*height, -0.5*depth );
    myEnd();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movsd %xmm2, -0x10(%rbp)
movsd %xmm1, -0x8(%rbp)
movsd %xmm0, -0x18(%rbp)
xorl %edi, %edi
callq 0x3d34
movsd 0x5c26(%rip), %xmm3     # 0x7008
movsd -0x18(%rbp), %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x8(%rbp), %xmm1
mulsd 0x5c13(%rip), %xmm1     # 0x7010
movsd %xmm1, -0x30(%rbp)
movsd -0x10(%rbp), %xmm2
mulsd %xmm3, %xmm2
movsd %xmm2, -0x28(%rbp)
callq 0x3d57
movsd -0x8(%rbp), %xmm1
mulsd 0x5be6(%rip), %xmm1     # 0x7008
movsd %xmm1, -0x8(%rbp)
movsd -0x20(%rbp), %xmm0
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
mulsd 0x5bcd(%rip), %xmm0     # 0x7010
movsd %xmm0, -0x18(%rbp)
movsd -0x8(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
callq 0x3dab
xorl %edi, %edi
callq 0x3d34
movsd -0x10(%rbp), %xmm2
mulsd 0x5b8c(%rip), %xmm2     # 0x7010
movsd %xmm2, -0x10(%rbp)
movsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
callq 0x3dab
xorl %edi, %edi
callq 0x3d34
movsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
callq 0x3dab
xorl %edi, %edi
callq 0x3d34
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
callq 0x3dab
xorl %edi, %edi
callq 0x3d34
movsd -0x20(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
callq 0x3dab
xorl %edi, %edi
callq 0x3d34
movsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
movsd -0x20(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
callq 0x3d57
movsd -0x18(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x10(%rbp), %xmm2
callq 0x3d57
addq $0x30, %rsp
popq %rbp
jmp 0x3dab