// File: /workspace/github_cpp_makefile_star2_O1/XuhuiSun95[P]My-OpenGL/main.cpp
// Function: display()
void display(void)
{
    myLoadIdentity();
    myLookAt(0.0, 10.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

    myScaled(0.15,0.15,0.15);
    
    for(int i = 0; i < 200; i++){
        mySetBackground();
        
        // Blocks
        myPushMatrix();
        myTranslated(-5.0, 0.0, 0.0);
        myRotated(45.0+2*i, 0.0, 1.0, 0.0);
        drawBlock(1.0, 1.0, 1.0, 'a', 3, 6, 8, 'h', 'i');
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(-2.5, 0.0, 0.0);
        myRotated(30.0-2*i, 0.0, 1.0, 0.0);
        drawBlock(1.0, 1.0, 1.0, 4, 1, 9, 'b', 'd', 0);
        myPopMatrix();
        
        myPushMatrix();
        myRotated(2*i, 0.0, 1.0, 0.0);
        drawBlock(1.0, 1.0, 1.0, 'k', 5, 'l', 2, 'e', 'f');
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(2.5, 0.0, 0.0);
        myRotated(-30.0-2*i, 0.0, 1.0, 0.0);
        drawBlock(1.0, 1.0, 1.0, 1, 6, 2, 4, 5, 3);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(5.0, 0.0, 0.0);
        myRotated(-45.0+2*i, 0.0, 1.0, 0.0);
        drawBlock(1.0, 1.0, 1.0, 'm', 2, 5, 4, 1, 7);
        myPopMatrix();

        // Numbers
	int j = i%20;
	
        myPushMatrix();
        myTranslated(-10.0+j, 2.0, 10.0-j);
        drawLetter(0);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(11.0-j, 2.0, 11.0-j);
        drawLetter(1);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(-12.0+j, 2.0, 12.0-j);
        drawLetter(2);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(13.0-j, 2.0, 13.0-j);
        drawLetter(3);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(-14.0+j, 2.0, 14.0-j);
        drawLetter(4);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(15.0-j, 2.0, 15.0-j);
        drawLetter(5);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(-16.0+j, 2.0, 16.0-j);
        drawLetter(6);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(17.0-j, 2.0, 17.0-j);
        drawLetter(7);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(-18.0+j, 2.0, 18.0-j);
        drawLetter(8);
        myPopMatrix();
        
        myPushMatrix();
        myTranslated(19.0-j, 2.0, 19.0-j);
        drawLetter(9);
        myPopMatrix();
        
        mySwapBuffers();
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
callq 0x360e
movq $0x0, (%rsp)
movsd 0x4204(%rip), %xmm1     # 0x7220
movsd 0x400c(%rip), %xmm7     # 0x7030
xorps %xmm0, %xmm0
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm5, %xmm5
xorps %xmm6, %xmm6
movaps %xmm1, %xmm2
callq 0x3697
movsd 0x407d(%rip), %xmm0     # 0x70c0
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x3a8e
xorl %ebx, %ebx
movl $0xffffffd3, %r14d      # imm = 0xFFFFFFD3
movl $0xcccccccd, %r15d      # imm = 0xCCCCCCCD
movl %ebx, %eax
imulq %r15, %rax
shrq $0x24, %rax
shll $0x2, %eax
leal (%rax,%rax,4), %r12d
callq 0x3a31
callq 0x4157
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
movsd 0x419f(%rip), %xmm0     # 0x7228
callq 0x398d
leal 0x2d(%r14), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
leal 0x5a(%r14), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
xorpd %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3f78(%rip), %xmm2     # 0x7030
callq 0x3b1c
movss 0x421b(%rip), %xmm0     # 0x72e0
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl $0x61, %edi
movl $0x3, %esi
movl $0x6, %edx
movl $0x8, %ecx
movl $0x68, %r8d
movl $0x69, %r9d
callq 0x2ab4
callq 0x420d
callq 0x4157
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x4128(%rip), %xmm0     # 0x7230
callq 0x398d
movsd 0x4123(%rip), %xmm0     # 0x7238
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3f08(%rip), %xmm2     # 0x7030
callq 0x3b1c
movss 0x41ab(%rip), %xmm0     # 0x72e0
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl $0x4, %edi
movl $0x1, %esi
movl $0x9, %edx
movl $0x62, %ecx
movl $0x64, %r8d
xorl %r9d, %r9d
callq 0x2ab4
callq 0x420d
callq 0x4157
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd -0x30(%rbp), %xmm0
movsd 0x3eb6(%rip), %xmm2     # 0x7030
callq 0x3b1c
movss 0x4159(%rip), %xmm0     # 0x72e0
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl $0x6b, %edi
movl $0x5, %esi
movl $0x6c, %edx
movl $0x2, %ecx
movl $0x65, %r8d
movl $0x66, %r9d
callq 0x2ab4
callq 0x420d
callq 0x4157
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x4076(%rip), %xmm0     # 0x7240
callq 0x398d
movsd 0x4071(%rip), %xmm0     # 0x7248
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3e46(%rip), %xmm2     # 0x7030
callq 0x3b1c
movss 0x40e9(%rip), %xmm0     # 0x72e0
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl $0x1, %edi
movl $0x6, %esi
movl $0x2, %edx
movl $0x4, %ecx
movl $0x5, %r8d
movl $0x3, %r9d
callq 0x2ab4
callq 0x420d
callq 0x4157
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x4016(%rip), %xmm0     # 0x7250
callq 0x398d
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3ddb(%rip), %xmm2     # 0x7030
callq 0x3b1c
movss 0x407e(%rip), %xmm0     # 0x72e0
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl $0x6d, %edi
movl $0x2, %esi
movl $0x5, %edx
movl $0x4, %ecx
movl $0x1, %r8d
movl $0x7, %r9d
callq 0x2ab4
callq 0x420d
movl %ebx, %r13d
subl %r12d, %r13d
negl %r12d
addl %ebx, %r12d
addl $-0x12, %r12d
callq 0x4157
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd %xmm1, -0x30(%rbp)
leal -0xa(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3f59(%rip), %xmm2     # 0x7220
subsd %xmm1, %xmm2
movsd 0x3ee5(%rip), %xmm1     # 0x71b8
callq 0x398d
movsd 0x3d28(%rip), %xmm0     # 0x7008
movsd 0x3d48(%rip), %xmm1     # 0x7030
movaps %xmm1, %xmm2
callq 0x3a8e
movss 0x3fbc(%rip), %xmm0     # 0x72b4
movss 0x3fd4(%rip), %xmm1     # 0x72d4
movss 0x3fd0(%rip), %xmm2     # 0x72d8
movss 0x3fb0(%rip), %xmm3     # 0x72c0
movss 0x3fac(%rip), %xmm4     # 0x72c4
callq 0x164e
callq 0x420d
callq 0x4157
movsd 0x3f29(%rip), %xmm0     # 0x7258
subsd -0x30(%rbp), %xmm0
movsd 0x3e7c(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x398d
movl $0x1, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
leal -0xc(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3ef4(%rip), %xmm2     # 0x7260
subsd -0x30(%rbp), %xmm2
movsd 0x3e3f(%rip), %xmm1     # 0x71b8
callq 0x398d
movl $0x2, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
movsd 0x3ece(%rip), %xmm0     # 0x7268
subsd -0x30(%rbp), %xmm0
movsd 0x3e11(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x398d
movl $0x3, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
leal -0xe(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3e99(%rip), %xmm2     # 0x7270
subsd -0x30(%rbp), %xmm2
movsd 0x3dd4(%rip), %xmm1     # 0x71b8
callq 0x398d
movl $0x4, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
movsd 0x3e73(%rip), %xmm0     # 0x7278
subsd -0x30(%rbp), %xmm0
movsd 0x3da6(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x398d
movl $0x5, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
addl $-0x10, %r13d
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
movsd 0x3e3d(%rip), %xmm2     # 0x7280
subsd -0x30(%rbp), %xmm2
movsd 0x3d68(%rip), %xmm1     # 0x71b8
callq 0x398d
movl $0x6, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
movsd 0x3e17(%rip), %xmm0     # 0x7288
subsd -0x30(%rbp), %xmm0
movsd 0x3d3a(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x398d
movl $0x7, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
movsd 0x3de5(%rip), %xmm2     # 0x7290
subsd -0x30(%rbp), %xmm2
movsd 0x3d00(%rip), %xmm1     # 0x71b8
callq 0x398d
movl $0x8, %edi
callq 0x1dc2
callq 0x420d
callq 0x4157
movsd 0x3dbf(%rip), %xmm0     # 0x7298
subsd -0x30(%rbp), %xmm0
movsd 0x3cd2(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x398d
movl $0x9, %edi
callq 0x1dc2
callq 0x420d
callq 0x427e
incl %ebx
addl $0x2, %r14d
cmpl $0xc8, %ebx
jne 0x305e
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq