// File: XuhuiSun95[P]My-OpenGL/main.cpp
// Function: drawCurve(float, float, float, float, float)
void drawCurve(float radian, float radius, float width, float depth, float samplingRate)
{
    // FRONT
    myBegin(QUAD_STRIP);
    for(int i=0; i<samplingRate; i++) {
        myVertex3d(-(radius-width)*cosf(i*radian/samplingRate), (radius-width)*sinf(i*radian/samplingRate), 0.5*depth);
        myVertex3d(-radius*cosf(i*radian/samplingRate), radius*sinf(i*radian/samplingRate), 0.5*depth);
        myVertex3d(-(radius-width)*cosf((i+1)*radian/samplingRate), (radius-width)*sinf((i+1)*radian/samplingRate), 0.5*depth);
        myVertex3d(-radius*cosf((i+1)*radian/samplingRate), radius*sinf((i+1)*radian/samplingRate), 0.5*depth);
    }
    myEnd();
    
    // BACK
    myBegin(QUAD_STRIP);
    for(int i=0; i<samplingRate; i++) {
        myVertex3d(-(radius-width)*cosf(i*radian/samplingRate), (radius-width)*sinf(i*radian/samplingRate), -0.5*depth);
        myVertex3d(-radius*cosf(i*radian/samplingRate), radius*sinf(i*radian/samplingRate), -0.5*depth);
        myVertex3d(-(radius-width)*cosf((i+1)*radian/samplingRate), (radius-width)*sinf((i+1)*radian/samplingRate), -0.5*depth);
        myVertex3d(-radius*cosf((i+1)*radian/samplingRate), radius*sinf((i+1)*radian/samplingRate), -0.5*depth);
        
    }
    myEnd();
    
    // LEFT
    myBegin(POLYGON);
    myVertex3d(-radius, 0.0 , -0.5*depth);
    myVertex3d(-radius, 0.0 , 0.5*depth);
    myVertex3d(-(radius-width), 0.0, 0.5*depth);
    myVertex3d(-(radius-width), 0.0, -0.5*depth);
    myEnd();
    
    // RIGHT
    myBegin(POLYGON);
    myVertex3d(-radius*cosf(radian), radius*sinf(radian), 0.5*depth);
    myVertex3d(-radius*cosf(radian), radius*sinf(radian), -0.5*depth);
    myVertex3d(-(radius-width)*cosf(radian), (radius-width)*sinf(radian), -0.5*depth);
    myVertex3d(-(radius-width)*cosf(radian), (radius-width)*sinf(radian), 0.5*depth);
    myEnd();
    
    // TOP
    myBegin(QUAD_STRIP);
    for(int i=0; i<samplingRate; i++) {
        myVertex3d(-radius*cosf(i*radian/samplingRate), radius*sinf(i*radian/samplingRate), 0.5*depth);
        myVertex3d(-radius*cosf(i*radian/samplingRate), radius*sinf(i*radian/samplingRate), -0.5*depth);
        myVertex3d(-radius*cosf((i+1)*radian/samplingRate), radius*sinf((i+1)*radian/samplingRate), 0.5*depth);
        myVertex3d(-radius*cosf((i+1)*radian/samplingRate), radius*sinf((i+1)*radian/samplingRate), -0.5*depth);
    }
    myEnd();
    
    // BOTTOM
    myBegin(QUAD_STRIP);
    for(int i=0; i<samplingRate; i++) {
        myVertex3d(-(radius-width)*cosf(i*radian/samplingRate), (radius-width)*sinf(i*radian/samplingRate), -0.5*depth);
        myVertex3d(-(radius-width)*cosf(i*radian/samplingRate), (radius-width)*sinf(i*radian/samplingRate), 0.5*depth);
        myVertex3d(-(radius-width)*cosf((i+1)*radian/samplingRate), (radius-width)*sinf((i+1)*radian/samplingRate), -0.5*depth);
        myVertex3d(-(radius-width)*cosf((i+1)*radian/samplingRate), (radius-width)*sinf((i+1)*radian/samplingRate), 0.5*depth);
    }
    myEnd();
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movss %xmm0, -0x4(%rbp)
movss %xmm1, -0x8(%rbp)
movss %xmm2, -0xc(%rbp)
movss %xmm3, -0x10(%rbp)
movss %xmm4, -0x14(%rbp)
movl $0x1, %edi
callq 0x5370
movl $0x0, -0x18(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1a72
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x68(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x68(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x64(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x64(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x60(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc77a(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x58(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x58(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x54(%rbp)
cvtsi2ssl -0x18(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x54(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x50(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc6ed(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x48(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x48(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x44(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x44(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x40(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc64c(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x38(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x34(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x34(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x30(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc5b5(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x17f5
callq 0x53f0
movl $0x1, %edi
callq 0x5370
movl $0x0, -0x1c(%rbp)
cvtsi2ssl -0x1c(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1d35
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xa8(%rbp)
cvtsi2ssl -0x1c(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xa8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xa0(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0xa4(%rbp)
cvtsi2ssl -0x1c(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0xa4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xa0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc4cd(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x98(%rbp)
cvtsi2ssl -0x1c(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x98(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x90(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x94(%rbp)
cvtsi2ssl -0x1c(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x94(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x90(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc42e(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x88(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x88(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x84(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x84(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x80(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc381(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x78(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x78(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x74(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x70(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc2ea(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1a88
callq 0x53f0
xorl %edi, %edi
callq 0x5370
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x10(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0xc2a0(%rip), %xmm2     # 0xe008
mulsd %xmm1, %xmm2
xorps %xmm1, %xmm1
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x10(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0xc275(%rip), %xmm2     # 0xe010
mulsd %xmm1, %xmm2
xorps %xmm1, %xmm1
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x10(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0xc23d(%rip), %xmm2     # 0xe010
mulsd %xmm1, %xmm2
xorps %xmm1, %xmm1
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x10(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0xc1fd(%rip), %xmm2     # 0xe008
mulsd %xmm1, %xmm2
xorps %xmm1, %xmm1
callq 0x53a0
callq 0x53f0
xorl %edi, %edi
callq 0x5370
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xe8(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xe8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xe0(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0xe4(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x1100
movss -0xe4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xe0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc16b(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xd8(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xd8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xd0(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0xd4(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x1100
movss -0xd4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xd0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc0d8(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xc8(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xc8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xc0(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0xc4(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x1100
movss -0xc4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xc0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xc043(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xb8(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xb8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0xb4(%rbp)
movss -0x4(%rbp), %xmm0
callq 0x1100
movss -0xb4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xb0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbfb6(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
callq 0x53f0
movl $0x1, %edi
callq 0x5370
movl $0x0, -0x20(%rbp)
cvtsi2ssl -0x20(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x232a
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x128(%rbp)
cvtsi2ssl -0x20(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x128(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x120(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x124(%rbp)
cvtsi2ssl -0x20(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x124(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x120(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbeee(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x118(%rbp)
cvtsi2ssl -0x20(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x118(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x110(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x114(%rbp)
cvtsi2ssl -0x20(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x114(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x110(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbe47(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x108(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x108(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x100(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0x104(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x104(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x100(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbda6(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xf8(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0xf8(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0xf0(%rbp)
movss -0x8(%rbp), %xmm0
movss %xmm0, -0xf4(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0xf4(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0xf0(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbcf5(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x2079
callq 0x53f0
movl $0x1, %edi
callq 0x5370
movl $0x0, -0x24(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x2619
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x168(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x168(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x160(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x164(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x164(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x160(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbc15(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x158(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x150(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x154(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x154(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x150(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbb74(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x148(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x148(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x140(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x144(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x144(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x140(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xbab9(%rip), %xmm2     # 0xe008
mulsd %xmm3, %xmm2
callq 0x53a0
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x138(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x10c0
movaps %xmm0, %xmm1
movss -0x138(%rbp), %xmm0
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
movss -0x8(%rbp), %xmm0
subss -0xc(%rbp), %xmm0
movss %xmm0, -0x134(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
cvtsi2ss %eax, %xmm0
mulss -0x4(%rbp), %xmm0
divss -0x14(%rbp), %xmm0
callq 0x1100
movss -0x134(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x130(%rbp), %xmm0
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x10(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0xba0e(%rip), %xmm2     # 0xe010
mulsd %xmm3, %xmm2
callq 0x53a0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x2340
callq 0x53f0
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw (%rax,%rax)