// File: /workspace/github_cpp_makefile_star2_O3/XuhuiSun95[P]My-OpenGL/main.cpp
// Function: drawBlock(float, float, float, char, char, char, char, char, char)
void drawBlock(float length, float height, float depth, char front, char back, char top , char bot, char left, char right)
{
    //draw inner cube
    drawCube(0.9*length, 0.9*height, 0.9*depth);
    
    //draw edges
    myPushMatrix();
    myTranslated(0.0, 0.475*height, 0.475*depth);
    drawCube(1.0*length, 0.05*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.0, -0.475*height, 0.475*depth);
    drawCube(1.0*length, 0.05*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.0, 0.475*height, -0.475*depth);
    drawCube(1.0*length, 0.05*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.0, -0.475*height, -0.475*depth);
    drawCube(1.0*length, 0.05*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.475*length, 0.0, 0.475*depth);
    drawCube(0.05*length, 1.0*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(-0.475*length, 0.0, 0.475*depth);
    drawCube(0.05*length, 1.0*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(-0.475*length, 0.0, -0.475*depth);
    drawCube(0.05*length, 1.0*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.475*length, 0.0, -0.475*depth);
    drawCube(0.05*length, 1.0*height, 0.05*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.475*length, 0.475*height, 0.0);
    drawCube(0.05*length, 0.05*height, 1.0*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(-0.475*length, 0.475*height, 0.0);
    drawCube(0.05*length, 0.05*height, 1.0*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(0.475*length, -0.475*height, 0.0);
    drawCube(0.05*length, 0.05*height, 1.0*depth);
    myPopMatrix();
    
    myPushMatrix();
    myTranslated(-0.475*length, -0.475*height, 0.0);
    drawCube(0.05*length, 0.05*height, 1.0*depth);
    myPopMatrix();

    // FRONT
    myPushMatrix();
    myTranslated(0.0, 0.0, 0.475*depth);
    myScaled(length, height, depth);
    drawLetter(front);
    myPopMatrix();
    
    // BACK
    myPushMatrix();
    myTranslated(0.0, 0.0, -0.475*depth);
    myRotated(180.0, 0.0, 1.0, 0.0);
    myScaled(length, height, depth);
    drawLetter(back);
    myPopMatrix();
    
    // TOP
    myPushMatrix();
    myTranslated(0.0, 0.475*height, 0.0);
    myRotated(-90.0, 1.0, 0.0, 0.0);
    myScaled(length, height, depth);
    drawLetter(top);
    myPopMatrix();
    
    // BOTTOM
    myPushMatrix();
    myTranslated(0.0, -0.475*height, 0.0);
    myRotated(90.0, 1.0, 0.0, 0.0);
    myScaled(length, height, depth);
    drawLetter(bot);
    myPopMatrix();
    
    // LEFT
    myPushMatrix();
    myTranslated(-0.475*length, 0.0, 0.0);
    myRotated(90.0, 0.0, -1.0, 0.0);
    myScaled(length, height, depth);
    drawLetter(left);
    myPopMatrix();
    
    // RIGHT
    myPushMatrix();
    myTranslated(0.475*length, 0.0, 0.0);
    myRotated(90.0, 0.0, 1.0, 0.0);
    myScaled(length, height, depth);
    drawLetter(right);
    myPopMatrix();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %r9d, -0x8c(%rbp)
movl %r8d, %r14d
movl %ecx, %r15d
movl %edx, %r12d
movl %esi, %r13d
movl %edi, %ebx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x46e9(%rip), %xmm3     # 0x71e8
mulsd %xmm3, %xmm0
cvtss2sd %xmm1, %xmm1
movsd %xmm1, -0x38(%rbp)
mulsd %xmm3, %xmm1
cvtss2sd %xmm2, %xmm2
movsd %xmm2, -0x30(%rbp)
mulsd %xmm2, %xmm3
movapd %xmm3, %xmm2
callq 0x13ac
callq 0x4053
movsd 0x46bd(%rip), %xmm0     # 0x71f0
movsd -0x38(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, -0x78(%rbp)
movsd -0x30(%rbp), %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, -0x68(%rbp)
xorpd %xmm0, %xmm0
callq 0x38bb
movsd 0x44e8(%rip), %xmm0     # 0x7048
movsd -0x38(%rbp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, -0x58(%rbp)
movsd -0x30(%rbp), %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, -0x50(%rbp)
movsd -0x40(%rbp), %xmm0
callq 0x13ac
callq 0x4109
callq 0x4053
movsd -0x38(%rbp), %xmm1
mulsd 0x465b(%rip), %xmm1     # 0x71f8
movsd %xmm1, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd -0x68(%rbp), %xmm2
callq 0x38bb
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
movsd -0x30(%rbp), %xmm2
mulsd 0x461e(%rip), %xmm2     # 0x71f8
movsd %xmm2, -0x60(%rbp)
xorps %xmm0, %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x38bb
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
movsd -0x80(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
callq 0x38bb
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
movsd 0x45ae(%rip), %xmm0     # 0x71f0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x38bb
movsd 0x43e4(%rip), %xmm0     # 0x7048
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
movsd 0x4569(%rip), %xmm0     # 0x71f8
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
movsd -0x70(%rbp), %xmm0
movsd -0x60(%rbp), %xmm2
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
movsd -0x88(%rbp), %xmm0
movsd -0x60(%rbp), %xmm2
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
callq 0x38bb
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x13ac
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x38bb
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl %ebx, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
movsd -0x60(%rbp), %xmm2
callq 0x38bb
movsd 0x43c6(%rip), %xmm0     # 0x7200
movsd 0x41ee(%rip), %xmm2     # 0x7030
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
callq 0x3a49
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl %r13d, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
movsd -0x78(%rbp), %xmm1
callq 0x38bb
movsd 0x421c(%rip), %xmm0     # 0x70a8
xorps %xmm2, %xmm2
xorpd %xmm3, %xmm3
movsd 0x4195(%rip), %xmm1     # 0x7030
callq 0x3a49
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl %r12d, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
movsd -0x80(%rbp), %xmm1
callq 0x38bb
movsd 0x432a(%rip), %xmm0     # 0x7208
xorps %xmm2, %xmm2
xorpd %xmm3, %xmm3
movsd 0x4143(%rip), %xmm1     # 0x7030
callq 0x3a49
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl %r15d, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
callq 0x38bb
movsd 0x42e0(%rip), %xmm2     # 0x7210
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
movsd 0x42c9(%rip), %xmm0     # 0x7208
callq 0x3a49
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl %r14d, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
callq 0x38bb
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
movsd 0x427c(%rip), %xmm0     # 0x7208
movsd 0x409c(%rip), %xmm2     # 0x7030
callq 0x3a49
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x39bb
movl -0x8c(%rbp), %edi
callq 0x1dd6
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4109