// File: /workspace/github_cpp_makefile_star2_O3/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 0x363e
movq $0x0, (%rsp)
movsd 0x41f0(%rip), %xmm1     # 0x7220
movsd 0x3ff8(%rip), %xmm7     # 0x7030
xorps %xmm0, %xmm0
xorps %xmm3, %xmm3
xorps %xmm4, %xmm4
xorps %xmm5, %xmm5
xorps %xmm6, %xmm6
movaps %xmm1, %xmm2
callq 0x36c7
movsd 0x4069(%rip), %xmm0     # 0x70c0
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x39bb
xorl %ebx, %ebx
movl $0xffffffd3, %r14d      # imm = 0xFFFFFFD3
movzbl %bl, %eax
imull $0xcd, %eax, %eax
shrl $0xa, %eax
andl $-0x4, %eax
leal (%rax,%rax,4), %r13d
movl %ebx, %eax
movl $0xcccccccd, %ecx       # imm = 0xCCCCCCCD
imulq %rcx, %rax
shrq $0x24, %rax
shll $0x2, %eax
leal (%rax,%rax,4), %r12d
callq 0x395f
callq 0x4053
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
movsd 0x4179(%rip), %xmm0     # 0x7228
callq 0x38bb
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 0x3f52(%rip), %xmm2     # 0x7030
callq 0x3a49
movss 0x41f1(%rip), %xmm0     # 0x72dc
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 0x2ac8
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x4102(%rip), %xmm0     # 0x7230
callq 0x38bb
movsd 0x40fd(%rip), %xmm0     # 0x7238
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3ee2(%rip), %xmm2     # 0x7030
callq 0x3a49
movss 0x4181(%rip), %xmm0     # 0x72dc
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 0x2ac8
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd -0x30(%rbp), %xmm0
movsd 0x3e90(%rip), %xmm2     # 0x7030
callq 0x3a49
movss 0x412f(%rip), %xmm0     # 0x72dc
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 0x2ac8
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x4050(%rip), %xmm0     # 0x7240
callq 0x38bb
movsd 0x404b(%rip), %xmm0     # 0x7248
subsd -0x30(%rbp), %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3e20(%rip), %xmm2     # 0x7030
callq 0x3a49
movss 0x40bf(%rip), %xmm0     # 0x72dc
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 0x2ac8
callq 0x4109
callq 0x4053
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
movsd 0x3ff0(%rip), %xmm0     # 0x7250
callq 0x38bb
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
xorps %xmm1, %xmm1
xorps %xmm3, %xmm3
movsd 0x3db5(%rip), %xmm2     # 0x7030
callq 0x3a49
movss 0x4054(%rip), %xmm0     # 0x72dc
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 0x2ac8
callq 0x4109
movl %ebx, %r15d
subl %r13d, %r15d
callq 0x4053
movsbl %r15b, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movsd %xmm1, -0x30(%rbp)
movl %ebx, %r13d
subl %r12d, %r13d
negl %r12d
addl %ebx, %r12d
addl $-0x12, %r12d
leal -0xa(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3f2a(%rip), %xmm2     # 0x7220
subsd %xmm1, %xmm2
movsd 0x3eb6(%rip), %xmm1     # 0x71b8
callq 0x38bb
movsd 0x3cf9(%rip), %xmm0     # 0x7008
movsd 0x3d19(%rip), %xmm1     # 0x7030
movaps %xmm1, %xmm2
callq 0x39bb
movss 0x3f89(%rip), %xmm0     # 0x72b0
movss 0x3fa1(%rip), %xmm1     # 0x72d0
movss 0x3f9d(%rip), %xmm2     # 0x72d4
movss 0x3f7d(%rip), %xmm3     # 0x72bc
movss 0x3f79(%rip), %xmm4     # 0x72c0
callq 0x163e
callq 0x4109
callq 0x4053
movsd 0x3efa(%rip), %xmm0     # 0x7258
subsd -0x30(%rbp), %xmm0
movsd 0x3e4d(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x38bb
movl $0x1, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
leal -0xc(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3ec5(%rip), %xmm2     # 0x7260
subsd -0x30(%rbp), %xmm2
movsd 0x3e10(%rip), %xmm1     # 0x71b8
callq 0x38bb
movl $0x2, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
movsd 0x3e9f(%rip), %xmm0     # 0x7268
subsd -0x30(%rbp), %xmm0
movsd 0x3de2(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x38bb
movl $0x3, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
leal -0xe(%r13), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd 0x3e6a(%rip), %xmm2     # 0x7270
subsd -0x30(%rbp), %xmm2
movsd 0x3da5(%rip), %xmm1     # 0x71b8
callq 0x38bb
movl $0x4, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
movsd 0x3e44(%rip), %xmm0     # 0x7278
subsd -0x30(%rbp), %xmm0
movsd 0x3d77(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x38bb
movl $0x5, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
addl $-0x10, %r13d
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
movsd 0x3e0e(%rip), %xmm2     # 0x7280
subsd -0x30(%rbp), %xmm2
movsd 0x3d39(%rip), %xmm1     # 0x71b8
callq 0x38bb
movl $0x6, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
movsd 0x3de8(%rip), %xmm0     # 0x7288
subsd -0x30(%rbp), %xmm0
movsd 0x3d0b(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x38bb
movl $0x7, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
xorps %xmm0, %xmm0
cvtsi2sd %r12d, %xmm0
movsd 0x3db6(%rip), %xmm2     # 0x7290
subsd -0x30(%rbp), %xmm2
movsd 0x3cd1(%rip), %xmm1     # 0x71b8
callq 0x38bb
movl $0x8, %edi
callq 0x1dd6
callq 0x4109
callq 0x4053
movsd 0x3d90(%rip), %xmm0     # 0x7298
subsd -0x30(%rbp), %xmm0
movsd 0x3ca3(%rip), %xmm1     # 0x71b8
movapd %xmm0, %xmm2
callq 0x38bb
movl $0x9, %edi
callq 0x1dd6
callq 0x4109
callq 0x4175
incl %ebx
addl $0x2, %r14d
cmpl $0xc8, %ebx
jne 0x306c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq