// File: /workspace/github_cpp_makefile_star2_O2/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 $0x28, %rsp
callq 0x3343
andq $0x0, (%rsp)
movsd 0x33f4(%rip), %xmm1     # 0x6220
movsd 0x31fc(%rip), %xmm7     # 0x6030
xorps %xmm0, %xmm0
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm5, %xmm5
xorps %xmm6, %xmm6
movaps %xmm1, %xmm2
callq 0x33cc
movsd 0x326d(%rip), %xmm0     # 0x60c0
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x36c4
xorl %ebx, %ebx
pushq $-0x2d
popq %r14
movzbl %bl, %eax
movb $0x14, %cl
divb %cl
movl %eax, %ecx
movl %ebx, %eax
xorl %edx, %edx
pushq $0x14
popq %rsi
divl %esi
cmpl $0xc8, %ebx
je 0x32ba
movzbl %cl, %ecx
imull $-0x14, %ecx, %ecx
movzbl %cl, %ecx
movl %ecx, -0x34(%rbp)
imull $0x14, %eax, %eax
pushq $-0x12
popq %rcx
movl %ecx, %r13d
subl %eax, %r13d
callq 0x366e
callq 0x3bd7
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
movsd 0x3372(%rip), %xmm0     # 0x6228
callq 0x35c1
leal 0x2d(%r14), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
leal 0x5a(%r14), %eax
cvtsi2sd %eax, %xmm0
xorpd %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3151(%rip), %xmm2     # 0x6030
callq 0x3762
movss 0x33f0(%rip), %xmm0     # 0x62dc
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
pushq $0x61
popq %rdi
pushq $0x3
popq %rsi
pushq $0x6
popq %rdx
pushq $0x8
popq %rcx
pushq $0x68
popq %r8
pushq $0x69
popq %r9
callq 0x28c7
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x330d(%rip), %xmm0     # 0x6230
callq 0x35c1
movsd 0x3308(%rip), %xmm0     # 0x6238
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x30ed(%rip), %xmm2     # 0x6030
callq 0x3762
movss 0x338c(%rip), %xmm0     # 0x62dc
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
pushq $0x4
popq %rdi
movq %r14, -0x40(%rbp)
pushq $0x1
popq %r15
movl %r15d, %esi
pushq $0x9
popq %rdx
pushq $0x62
popq %rcx
pushq $0x64
popq %r8
xorl %r9d, %r9d
callq 0x28c7
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd -0x30(%rbp), %xmm0
movsd 0x309d(%rip), %xmm2     # 0x6030
callq 0x3762
movss 0x333c(%rip), %xmm0     # 0x62dc
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
pushq $0x6b
popq %rdi
pushq $0x5
popq %r12
movl %r12d, %esi
pushq $0x6c
popq %rdx
pushq $0x2
popq %r14
movl %r14d, %ecx
pushq $0x65
popq %r8
pushq $0x66
popq %r9
callq 0x28c7
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x3261(%rip), %xmm0     # 0x6240
callq 0x35c1
movsd 0x325c(%rip), %xmm0     # 0x6248
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3031(%rip), %xmm2     # 0x6030
callq 0x3762
movss 0x32d0(%rip), %xmm0     # 0x62dc
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movl %r15d, %edi
pushq $0x6
popq %rsi
movl %r14d, %edx
movl %r14d, %r15d
pushq $0x4
popq %r14
movl %r14d, %ecx
movl %r12d, %r8d
pushq $0x3
popq %r9
callq 0x28c7
callq 0x3c70
callq 0x3bd7
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x3207(%rip), %xmm0     # 0x6250
callq 0x35c1
cvtsi2sdl -0x40(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x2fcf(%rip), %xmm2     # 0x6030
callq 0x3762
movss 0x326e(%rip), %xmm0     # 0x62dc
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
pushq $0x6d
popq %rdi
movl %r15d, %esi
movl %r12d, %edx
movl %r14d, %ecx
pushq $0x1
popq %r8
pushq $0x7
popq %r12
movl %r12d, %r9d
callq 0x28c7
callq 0x3c70
movl -0x34(%rbp), %r14d
addl %ebx, %r14d
callq 0x3bd7
movsbl %r14b, %eax
cvtsi2sd %eax, %xmm1
movsd %xmm1, -0x30(%rbp)
leal (%rbx,%r13), %r15d
leal 0x8(%rbx,%r13), %eax
cvtsi2sd %eax, %xmm0
movsd 0x315d(%rip), %xmm2     # 0x6220
subsd %xmm1, %xmm2
movsd 0x30e9(%rip), %xmm1     # 0x61b8
callq 0x35c1
xorl %edi, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
movsd 0x316b(%rip), %xmm0     # 0x6258
subsd -0x30(%rbp), %xmm0
movsd 0x30be(%rip), %xmm1     # 0x61b8
movapd %xmm0, %xmm2
callq 0x35c1
pushq $0x1
popq %rdi
movq -0x40(%rbp), %r14
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
leal (%rbx,%r13), %eax
addl $0x6, %eax
cvtsi2sd %eax, %xmm0
movsd 0x3134(%rip), %xmm2     # 0x6260
subsd -0x30(%rbp), %xmm2
movsd 0x307f(%rip), %xmm1     # 0x61b8
callq 0x35c1
pushq $0x2
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
movsd 0x3110(%rip), %xmm0     # 0x6268
subsd -0x30(%rbp), %xmm0
movsd 0x3053(%rip), %xmm1     # 0x61b8
movapd %xmm0, %xmm2
callq 0x35c1
pushq $0x3
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
leal (%rbx,%r13), %eax
addl $0x4, %eax
cvtsi2sd %eax, %xmm0
movsd 0x30dd(%rip), %xmm2     # 0x6270
subsd -0x30(%rbp), %xmm2
movsd 0x3018(%rip), %xmm1     # 0x61b8
callq 0x35c1
pushq $0x4
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
movsd 0x30b9(%rip), %xmm0     # 0x6278
subsd -0x30(%rbp), %xmm0
movsd 0x2fec(%rip), %xmm1     # 0x61b8
movapd %xmm0, %xmm2
callq 0x35c1
pushq $0x5
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
leal (%rbx,%r13), %eax
addl $0x2, %eax
cvtsi2sd %eax, %xmm0
movsd 0x3086(%rip), %xmm2     # 0x6280
subsd -0x30(%rbp), %xmm2
movsd 0x2fb1(%rip), %xmm1     # 0x61b8
callq 0x35c1
pushq $0x6
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
movsd 0x3062(%rip), %xmm0     # 0x6288
subsd -0x30(%rbp), %xmm0
movsd 0x2f85(%rip), %xmm1     # 0x61b8
movapd %xmm0, %xmm2
callq 0x35c1
movl %r12d, %edi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
cvtsi2sd %r15d, %xmm0
movsd 0x3035(%rip), %xmm2     # 0x6290
subsd -0x30(%rbp), %xmm2
movsd 0x2f50(%rip), %xmm1     # 0x61b8
callq 0x35c1
pushq $0x8
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3bd7
movsd 0x3011(%rip), %xmm0     # 0x6298
subsd -0x30(%rbp), %xmm0
movsd 0x2f24(%rip), %xmm1     # 0x61b8
movapd %xmm0, %xmm2
callq 0x35c1
pushq $0x9
popq %rdi
callq 0x1bd5
callq 0x3c70
callq 0x3cde
incl %ebx
addl $0x2, %r14d
jmp 0x2e66
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq