// File: /workspace/github_cpp_makefile_star2_O2/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 0x38ea(%rip), %xmm3     # 0x61e8
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 0x12dc
callq 0x3bd7
movsd 0x38be(%rip), %xmm0     # 0x61f0
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 0x35c1
movsd 0x36e9(%rip), %xmm0     # 0x6048
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 0x12dc
callq 0x3c70
callq 0x3bd7
movsd -0x38(%rbp), %xmm1
mulsd 0x385c(%rip), %xmm1     # 0x61f8
movsd %xmm1, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd -0x68(%rbp), %xmm2
callq 0x35c1
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
movsd -0x30(%rbp), %xmm2
mulsd 0x381f(%rip), %xmm2     # 0x61f8
movsd %xmm2, -0x60(%rbp)
xorps %xmm0, %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x35c1
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm0, %xmm0
movsd -0x80(%rbp), %xmm1
movsd -0x60(%rbp), %xmm2
callq 0x35c1
movsd -0x40(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
movsd 0x37af(%rip), %xmm0     # 0x61f0
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x35c1
movsd 0x35e5(%rip), %xmm0     # 0x6048
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
movsd 0x376a(%rip), %xmm0     # 0x61f8
mulsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
movsd -0x70(%rbp), %xmm0
movsd -0x60(%rbp), %xmm2
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
movsd -0x88(%rbp), %xmm0
movsd -0x60(%rbp), %xmm2
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x50(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
movsd -0x78(%rbp), %xmm1
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
callq 0x35c1
movsd -0x48(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x12dc
callq 0x3c70
callq 0x3bd7
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
movsd -0x68(%rbp), %xmm2
callq 0x35c1
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl %ebx, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
movsd -0x60(%rbp), %xmm2
callq 0x35c1
movsd 0x35c7(%rip), %xmm0     # 0x6200
movsd 0x33ef(%rip), %xmm2     # 0x6030
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
callq 0x3762
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl %r13d, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
movsd -0x78(%rbp), %xmm1
callq 0x35c1
movsd 0x341d(%rip), %xmm0     # 0x60a8
xorps %xmm2, %xmm2
xorpd %xmm3, %xmm3
movsd 0x3396(%rip), %xmm1     # 0x6030
callq 0x3762
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl %r12d, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
movsd -0x80(%rbp), %xmm1
callq 0x35c1
movsd 0x352b(%rip), %xmm0     # 0x6208
xorps %xmm2, %xmm2
xorpd %xmm3, %xmm3
movsd 0x3344(%rip), %xmm1     # 0x6030
callq 0x3762
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl %r15d, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd -0x70(%rbp), %xmm0
callq 0x35c1
movsd 0x34e1(%rip), %xmm2     # 0x6210
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
movsd 0x34ca(%rip), %xmm0     # 0x6208
callq 0x3762
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl %r14d, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd -0x88(%rbp), %xmm0
callq 0x35c1
xorps %xmm1, %xmm1
xorpd %xmm3, %xmm3
movsd 0x347d(%rip), %xmm0     # 0x6208
movsd 0x329d(%rip), %xmm2     # 0x6030
callq 0x3762
movsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
callq 0x36c4
movl -0x8c(%rbp), %edi
callq 0x1bd5
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3c70