40b3a7:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40b3ab:	8b 29                	mov    (%ecx),%ebp
40b3ad:	ff 71 1c             	push   0x1c(%ecx)
40b3b0:	ff 71 18             	push   0x18(%ecx)
40b3b3:	ff 71 28             	push   0x28(%ecx)
40b3b6:	e8 15 ff ff ff       	call   0x40b2d0
40b3bb:	83 c4 0c             	add    $0xc,%esp
40b3be:	5d                   	pop    %ebp
40b3bf:	c2 04 00             	ret    $0x4
40b3c2:	55                   	push   %ebp
40b3c3:	56                   	push   %esi
40b3c4:	57                   	push   %edi
40b3c5:	53                   	push   %ebx
40b3c6:	8b ea                	mov    %edx,%ebp
40b3c8:	33 c0                	xor    %eax,%eax
40b3ca:	33 db                	xor    %ebx,%ebx
40b3cc:	33 d2                	xor    %edx,%edx
40b3ce:	33 f6                	xor    %esi,%esi
40b3d0:	33 ff                	xor    %edi,%edi
40b3d2:	ff d1                	call   *%ecx
40b3d4:	5b                   	pop    %ebx
40b3d5:	5f                   	pop    %edi
40b3d6:	5e                   	pop    %esi
40b3d7:	5d                   	pop    %ebp
40b3d8:	c3                   	ret
40b3d9:	8b ea                	mov    %edx,%ebp
40b3db:	8b f1                	mov    %ecx,%esi
40b3dd:	8b c1                	mov    %ecx,%eax
40b3df:	6a 01                	push   $0x1
40b3e1:	e8 97 8c 00 00       	call   0x41407d
40b3e6:	33 c0                	xor    %eax,%eax
40b3e8:	33 db                	xor    %ebx,%ebx
40b3ea:	33 c9                	xor    %ecx,%ecx
40b3ec:	33 d2                	xor    %edx,%edx
40b3ee:	33 ff                	xor    %edi,%edi
40b3f0:	ff e6                	jmp    *%esi
40b3f2:	55                   	push   %ebp
40b3f3:	8b ec                	mov    %esp,%ebp
40b3f5:	53                   	push   %ebx
40b3f6:	56                   	push   %esi
40b3f7:	57                   	push   %edi
40b3f8:	6a 00                	push   $0x0
40b3fa:	6a 00                	push   $0x0
40b3fc:	68 07 b4 40 00       	push   $0x40b407
40b401:	51                   	push   %ecx
40b402:	e8 87 e2 00 00       	call   0x41968e
40b407:	5f                   	pop    %edi
40b408:	5e                   	pop    %esi
40b409:	5b                   	pop    %ebx
40b40a:	5d                   	pop    %ebp
40b40b:	c3                   	ret
40b40c:	55                   	push   %ebp
40b40d:	8b 6c 24 08          	mov    0x8(%esp),%ebp
40b411:	52                   	push   %edx
40b412:	51                   	push   %ecx
40b413:	ff 74 24 14          	push   0x14(%esp)
40b417:	e8 b4 fe ff ff       	call   0x40b2d0
40b41c:	83 c4 0c             	add    $0xc,%esp
40b41f:	5d                   	pop    %ebp
40b420:	c2 08 00             	ret    $0x8
40b423:	83 25 60 13 c7 00 00 	andl   $0x0,0xc71360
40b42a:	e8 c0 8c 00 00       	call   0x4140ef
40b42f:	a3 60 13 c7 00       	mov    %eax,0xc71360
40b434:	33 c0                	xor    %eax,%eax
40b436:	c3                   	ret
40b437:	cc                   	int3
40b438:	cc                   	int3
40b439:	cc                   	int3
40b43a:	cc                   	int3
40b43b:	cc                   	int3
40b43c:	cc                   	int3
40b43d:	cc                   	int3
40b43e:	cc                   	int3
40b43f:	cc                   	int3
40b440:	55                   	push   %ebp
40b441:	8b ec                	mov    %esp,%ebp
40b443:	83 ec 08             	sub    $0x8,%esp
40b446:	83 e4 f0             	and    $0xfffffff0,%esp
40b449:	dd 1c 24             	fstpl  (%esp)
40b44c:	f3 0f 7e 04 24       	movq   (%esp),%xmm0
40b451:	e8 08 00 00 00       	call   0x40b45e
40b456:	c9                   	leave
40b457:	c3                   	ret
40b458:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
40b45e:	66 0f 12 25 d0 c4 41 	movlpd 0x41c4d0,%xmm4
40b465:	00
40b466:	66 0f 12 1d e0 c4 41 	movlpd 0x41c4e0,%xmm3
40b46d:	00
40b46e:	66 0f 57 ed          	xorpd  %xmm5,%xmm5
40b472:	66 0f 12 15 d8 c4 41 	movlpd 0x41c4d8,%xmm2
40b479:	00
40b47a:	f2 0f 10 c8          	movsd  %xmm0,%xmm1
40b47e:	66 0f 73 d0 2c       	psrlq  $0x2c,%xmm0
40b483:	66 0f 7e c2          	movd   %xmm0,%edx
40b487:	f2 0f 10 f9          	movsd  %xmm1,%xmm7
40b48b:	b9 00 20 00 00       	mov    $0x2000,%ecx
40b490:	66 0f c4 e9 02       	pinsrw $0x2,%ecx,%xmm5
40b495:	f2 0f 10 c1          	movsd  %xmm1,%xmm0
40b499:	b8 ff ff 07 00       	mov    $0x7ffff,%eax
40b49e:	23 c2                	and    %edx,%eax
40b4a0:	2d 00 fb 03 00       	sub    $0x3fb00,%eax
40b4a5:	3d bb 03 00 00       	cmp    $0x3bb,%eax
40b4aa:	0f 83 d6 00 00 00    	jae    0x40b586
40b4b0:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
40b4b4:	81 e2 ff ff 00 00    	and    $0xffff,%edx
40b4ba:	f2 0f 5c d9          	subsd  %xmm1,%xmm3
40b4be:	f2 0f 51 db          	sqrtsd %xmm3,%xmm3
40b4c2:	66 0f 54 d7          	andpd  %xmm7,%xmm2
40b4c6:	83 e2 fc             	and    $0xfffffffc,%edx
40b4c9:	81 ea 00 fb 00 00    	sub    $0xfb00,%edx
40b4cf:	66 0f 12 0c 55 10 bc 	movlpd 0x41bc10(,%edx,2),%xmm1
40b4d6:	41 00
40b4d8:	66 0f 56 d5          	orpd   %xmm5,%xmm2
40b4dc:	66 0f 28 24 95 10 ad 	movapd 0x41ad10(,%edx,4),%xmm4
40b4e3:	41 00
40b4e5:	f2 0f 10 f7          	movsd  %xmm7,%xmm6
40b4e9:	f2 0f 58 fa          	addsd  %xmm2,%xmm7
40b4ed:	f2 0f 5c c2          	subsd  %xmm2,%xmm0
40b4f1:	f2 0f 59 f8          	mulsd  %xmm0,%xmm7
40b4f5:	f2 0f 59 f1          	mulsd  %xmm1,%xmm6
40b4f9:	f2 0f 59 da          	mulsd  %xmm2,%xmm3
40b4fd:	f2 0f 10 ce          	movsd  %xmm6,%xmm1
40b501:	f2 0f 58 f3          	addsd  %xmm3,%xmm6
40b505:	f2 0f 5e fe          	divsd  %xmm6,%xmm7
40b509:	66 0f 12 05 88 c4 41 	movlpd 0x41c488,%xmm0
40b510:	00
40b511:	66 0f 12 2d 78 c4 41 	movlpd 0x41c478,%xmm5
40b518:	00
40b519:	f2 0f 5c cb          	subsd  %xmm3,%xmm1
40b51d:	66 0f 73 d2 3f       	psrlq  $0x3f,%xmm2
40b522:	f2 0f 10 d9          	movsd  %xmm1,%xmm3
40b526:	66 0f 73 f2 3f       	psllq  $0x3f,%xmm2
40b52b:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
40b52f:	66 0f 70 d2 44       	pshufd $0x44,%xmm2,%xmm2
40b534:	66 0f 12 35 80 c4 41 	movlpd 0x41c480,%xmm6
40b53b:	00
40b53c:	f2 0f 59 d9          	mulsd  %xmm1,%xmm3
40b540:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
40b544:	83 ec 10             	sub    $0x10,%esp
40b547:	66 0f 57 e2          	xorpd  %xmm2,%xmm4
40b54b:	f2 0f 59 eb          	mulsd  %xmm3,%xmm5
40b54f:	66 0f 5c 25 10 c4 41 	subpd  0x41c410,%xmm4
40b556:	00
40b557:	f2 0f 59 d9          	mulsd  %xmm1,%xmm3
40b55b:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
40b55f:	f2 0f 59 c3          	mulsd  %xmm3,%xmm0
40b563:	f2 0f 5c ec          	subsd  %xmm4,%xmm5
40b567:	66 0f 70 e4 ee       	pshufd $0xee,%xmm4,%xmm4
40b56c:	f2 0f 58 c5          	addsd  %xmm5,%xmm0
40b570:	f2 0f 5c c7          	subsd  %xmm7,%xmm0
40b574:	f2 0f 5c c4          	subsd  %xmm4,%xmm0
40b578:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
40b57e:	dd 44 24 04          	fldl   0x4(%esp)
40b582:	83 c4 10             	add    $0x10,%esp
40b585:	c3                   	ret
40b586:	2d bb 03 00 00       	sub    $0x3bb,%eax
40b58b:	83 f8 41             	cmp    $0x41,%eax
40b58e:	0f 83 2d 01 00 00    	jae    0x40b6c1
40b594:	66 0f 73 d7 26       	psrlq  $0x26,%xmm7
40b599:	66 0f 73 f7 26       	psllq  $0x26,%xmm7
40b59e:	66 0f d7 c0          	pmovmskb %xmm0,%eax
40b5a2:	66 0f 55 e0          	andnpd %xmm0,%xmm4
40b5a6:	f2 0f 5c cf          	subsd  %xmm7,%xmm1
40b5aa:	f2 0f 10 f7          	movsd  %xmm7,%xmm6
40b5ae:	f2 0f 59 ff          	mulsd  %xmm7,%xmm7
40b5b2:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
40b5b6:	66 0f 56 ec          	orpd   %xmm4,%xmm5
40b5ba:	f2 0f 5c df          	subsd  %xmm7,%xmm3
40b5be:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
40b5c2:	f2 0f 10 e3          	movsd  %xmm3,%xmm4
40b5c6:	f2 0f 5c d8          	subsd  %xmm0,%xmm3
40b5ca:	f2 0f 51 db          	sqrtsd %xmm3,%xmm3
40b5ce:	25 80 00 00 00       	and    $0x80,%eax
40b5d3:	c1 e8 07             	shr    $0x7,%eax
40b5d6:	f7 d8                	neg    %eax
40b5d8:	f2 0f 10 fb          	movsd  %xmm3,%xmm7
40b5dc:	66 0f 54 d3          	andpd  %xmm3,%xmm2
40b5e0:	66 0f 73 f3 02       	psllq  $0x2,%xmm3
40b5e5:	66 0f c5 d3 03       	pextrw $0x3,%xmm3,%edx
40b5ea:	66 0f 56 d5          	orpd   %xmm5,%xmm2
40b5ee:	66 0f 6e d8          	movd   %eax,%xmm3
40b5f2:	66 0f 70 db 00       	pshufd $0x0,%xmm3,%xmm3
40b5f7:	81 ea c0 fe 00 00    	sub    $0xfec0,%edx
40b5fd:	03 d2                	add    %edx,%edx
40b5ff:	f2 0f 59 3c 95 10 bc 	mulsd  0x41bc10(,%edx,4),%xmm7
40b606:	41 00
40b608:	f2 0f 59 f2          	mulsd  %xmm2,%xmm6
40b60c:	f2 0f 59 ca          	mulsd  %xmm2,%xmm1
40b610:	f2 0f 59 d2          	mulsd  %xmm2,%xmm2
40b614:	f2 0f 5c f7          	subsd  %xmm7,%xmm6
40b618:	66 0f 54 1d 20 c4 41 	andpd  0x41c420,%xmm3
40b61f:	00
40b620:	f2 0f 58 f1          	addsd  %xmm1,%xmm6
40b624:	f2 0f 5c e2          	subsd  %xmm2,%xmm4
40b628:	f2 0f 58 ff          	addsd  %xmm7,%xmm7
40b62c:	66 0f 12 2d 78 c4 41 	movlpd 0x41c478,%xmm5
40b633:	00
40b634:	f2 0f 5c e0          	subsd  %xmm0,%xmm4
40b638:	f2 0f 58 fe          	addsd  %xmm6,%xmm7
40b63c:	66 0f 12 05 88 c4 41 	movlpd 0x41c488,%xmm0
40b643:	00
40b644:	f2 0f 5e e7          	divsd  %xmm7,%xmm4
40b648:	66 0f 12 15 80 c4 41 	movlpd 0x41c480,%xmm2
40b64f:	00
40b650:	66 0f 58 1c d5 10 ad 	addpd  0x41ad10(,%edx,8),%xmm3
40b657:	41 00
40b659:	f2 0f 10 ce          	movsd  %xmm6,%xmm1
40b65d:	f2 0f 59 f6          	mulsd  %xmm6,%xmm6
40b661:	f2 0f 59 c6          	mulsd  %xmm6,%xmm0
40b665:	f2 0f 59 ce          	mulsd  %xmm6,%xmm1
40b669:	83 ec 10             	sub    $0x10,%esp
40b66c:	f2 0f 59 e9          	mulsd  %xmm1,%xmm5
40b670:	f2 0f 59 ce          	mulsd  %xmm6,%xmm1
40b674:	f2 0f 58 c2          	addsd  %xmm2,%xmm0
40b678:	66 0f ef f6          	pxor   %xmm6,%xmm6
40b67c:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
40b680:	f2 0f 58 eb          	addsd  %xmm3,%xmm5
40b684:	f2 0f 58 c5          	addsd  %xmm5,%xmm0
40b688:	25 00 80 00 00       	and    $0x8000,%eax
40b68d:	66 0f c4 f0 03       	pinsrw $0x3,%eax,%xmm6
40b692:	f2 0f 10 ec          	movsd  %xmm4,%xmm5
40b696:	66 0f 70 db ee       	pshufd $0xee,%xmm3,%xmm3
40b69b:	f2 0f 58 e3          	addsd  %xmm3,%xmm4
40b69f:	f2 0f 5c dc          	subsd  %xmm4,%xmm3
40b6a3:	f2 0f 58 eb          	addsd  %xmm3,%xmm5
40b6a7:	f2 0f 58 c5          	addsd  %xmm5,%xmm0
40b6ab:	f2 0f 58 c4          	addsd  %xmm4,%xmm0
40b6af:	66 0f 57 c6          	xorpd  %xmm6,%xmm0
40b6b3:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
40b6b9:	dd 44 24 04          	fldl   0x4(%esp)
40b6bd:	83 c4 10             	add    $0x10,%esp
40b6c0:	c3                   	ret
40b6c1:	05 bb 3b 00 00       	add    $0x3bbb,%eax
40b6c6:	3d 00 38 00 00       	cmp    $0x3800,%eax
40b6cb:	0f 83 90 00 00 00    	jae    0x40b761
40b6d1:	66 0f 14 c0          	unpcklpd %xmm0,%xmm0
40b6d5:	66 0f 28 35 90 c4 41 	movapd 0x41c490,%xmm6
40b6dc:	00
40b6dd:	66 0f 14 c8          	unpcklpd %xmm0,%xmm1
40b6e1:	66 0f 28 15 a0 c4 41 	movapd 0x41c4a0,%xmm2
40b6e8:	00
40b6e9:	66 0f 28 25 b0 c4 41 	movapd 0x41c4b0,%xmm4
40b6f0:	00
40b6f1:	66 0f 59 c0          	mulpd  %xmm0,%xmm0
40b6f5:	66 0f 28 2d 10 c4 41 	movapd 0x41c410,%xmm5
40b6fc:	00
40b6fd:	83 ec 10             	sub    $0x10,%esp
40b700:	66 0f 59 c8          	mulpd  %xmm0,%xmm1
40b704:	66 0f 59 f0          	mulpd  %xmm0,%xmm6
40b708:	66 0f 59 c0          	mulpd  %xmm0,%xmm0
40b70c:	f2 0f 10 d9          	movsd  %xmm1,%xmm3
40b710:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
40b714:	66 0f 58 f2          	addpd  %xmm2,%xmm6
40b718:	66 0f 59 e0          	mulpd  %xmm0,%xmm4
40b71c:	f2 0f 59 cb          	mulsd  %xmm3,%xmm1
40b720:	66 0f 58 f4          	addpd  %xmm4,%xmm6
40b724:	66 0f 70 c5 ee       	pshufd $0xee,%xmm5,%xmm0
40b729:	66 0f 59 ce          	mulpd  %xmm6,%xmm1
40b72d:	66 0f 70 f5 ee       	pshufd $0xee,%xmm5,%xmm6
40b732:	f2 0f 5c c7          	subsd  %xmm7,%xmm0
40b736:	66 0f 70 d1 ee       	pshufd $0xee,%xmm1,%xmm2
40b73b:	f2 0f 5c e9          	subsd  %xmm1,%xmm5
40b73f:	f2 0f 5c f0          	subsd  %xmm0,%xmm6
40b743:	f2 0f 5c ea          	subsd  %xmm2,%xmm5
40b747:	f2 0f 5c fe          	subsd  %xmm6,%xmm7
40b74b:	f2 0f 5c ef          	subsd  %xmm7,%xmm5
40b74f:	f2 0f 58 c5          	addsd  %xmm5,%xmm0
40b753:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
40b759:	dd 44 24 04          	fldl   0x4(%esp)
40b75d:	83 c4 10             	add    $0x10,%esp
40b760:	c3                   	ret
40b761:	2d fc 3b 00 00       	sub    $0x3bfc,%eax
40b766:	83 f8 04             	cmp    $0x4,%eax
40b769:	0f 83 f4 00 00 00    	jae    0x40b863
40b76f:	66 0f 57 f6          	xorpd  %xmm6,%xmm6
40b773:	66 0f 54 3d d0 c4 41 	andpd  0x41c4d0,%xmm7
40b77a:	00
40b77b:	66 0f 12 25 e8 c4 41 	movlpd 0x41c4e8,%xmm4
40b782:	00
40b783:	66 0f 28 0d 90 c4 41 	movapd 0x41c490,%xmm1
40b78a:	00
40b78b:	f2 0f 59 fc          	mulsd  %xmm4,%xmm7
40b78f:	66 0f 28 15 a0 c4 41 	movapd 0x41c4a0,%xmm2
40b796:	00
40b797:	f2 0f 5c e7          	subsd  %xmm7,%xmm4
40b79b:	66 0f 28 1d b0 c4 41 	movapd 0x41c4b0,%xmm3
40b7a2:	00
40b7a3:	66 0f 70 fc 44       	pshufd $0x44,%xmm4,%xmm7
40b7a8:	f2 0f 51 e4          	sqrtsd %xmm4,%xmm4
40b7ac:	66 0f 59 cf          	mulpd  %xmm7,%xmm1
40b7b0:	66 0f 70 ef 44       	pshufd $0x44,%xmm7,%xmm5
40b7b5:	66 0f c5 c0 03       	pextrw $0x3,%xmm0,%eax
40b7ba:	66 0f 59 ff          	mulpd  %xmm7,%xmm7
40b7be:	66 0f 58 d1          	addpd  %xmm1,%xmm2
40b7c2:	66 0f 12 0d 50 c4 41 	movlpd 0x41c450,%xmm1
40b7c9:	00
40b7ca:	66 0f 59 df          	mulpd  %xmm7,%xmm3
40b7ce:	f2 0f c2 c6 01       	cmpltsd %xmm6,%xmm0
40b7d3:	f2 0f 59 fd          	mulsd  %xmm5,%xmm7
40b7d7:	66 0f 58 d3          	addpd  %xmm3,%xmm2
40b7db:	66 0f 70 c0 44       	pshufd $0x44,%xmm0,%xmm0
40b7e0:	f2 0f 59 d7          	mulsd  %xmm7,%xmm2
40b7e4:	66 0f 54 05 20 c4 41 	andpd  0x41c420,%xmm0
40b7eb:	00
40b7ec:	66 0f 59 d5          	mulpd  %xmm5,%xmm2
40b7f0:	66 0f 54 cc          	andpd  %xmm4,%xmm1
40b7f4:	66 0f 70 dc 44       	pshufd $0x44,%xmm4,%xmm3
40b7f9:	f2 0f 5c e1          	subsd  %xmm1,%xmm4
40b7fd:	f2 0f 58 db          	addsd  %xmm3,%xmm3
40b801:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
40b805:	f2 0f 5c dc          	subsd  %xmm4,%xmm3
40b809:	f2 0f 5c e9          	subsd  %xmm1,%xmm5
40b80d:	f2 0f 59 e3          	mulsd  %xmm3,%xmm4
40b811:	66 0f 70 db ee       	pshufd $0xee,%xmm3,%xmm3
40b816:	f2 0f 5c ec          	subsd  %xmm4,%xmm5
40b81a:	f2 0f 5e eb          	divsd  %xmm3,%xmm5
40b81e:	83 ec 10             	sub    $0x10,%esp
40b821:	66 0f 58 db          	addpd  %xmm3,%xmm3
40b825:	66 0f 59 d3          	mulpd  %xmm3,%xmm2
40b829:	66 0f 70 e2 ee       	pshufd $0xee,%xmm2,%xmm4
40b82e:	f2 0f 58 d0          	addsd  %xmm0,%xmm2
40b832:	25 00 80 00 00       	and    $0x8000,%eax
40b837:	66 0f c4 f0 03       	pinsrw $0x3,%eax,%xmm6
40b83c:	66 0f 70 c0 ee       	pshufd $0xee,%xmm0,%xmm0
40b841:	f2 0f 58 d4          	addsd  %xmm4,%xmm2
40b845:	f2 0f 58 d5          	addsd  %xmm5,%xmm2
40b849:	f2 0f 58 d3          	addsd  %xmm3,%xmm2
40b84d:	f2 0f 58 c2          	addsd  %xmm2,%xmm0
40b851:	66 0f 57 c6          	xorpd  %xmm6,%xmm0
40b855:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
40b85b:	dd 44 24 04          	fldl   0x4(%esp)
40b85f:	83 c4 10             	add    $0x10,%esp
40b862:	c3                   	ret
40b863:	05 fc fe 03 00       	add    $0x3fefc,%eax
40b868:	3d 00 ff 03 00       	cmp    $0x3ff00,%eax
40b86d:	0f 82 ea 00 00 00    	jb     0x40b95d
40b873:	66 0f 7e f9          	movd   %xmm7,%ecx
40b877:	66 0f 73 d7 20       	psrlq  $0x20,%xmm7
40b87c:	66 0f 7e fa          	movd   %xmm7,%edx
40b880:	81 e2 ff ff ff 7f    	and    $0x7fffffff,%edx
40b886:	b8 00 00 f0 3f       	mov    $0x3ff00000,%eax
40b88b:	2b c2                	sub    %edx,%eax
40b88d:	0b c1                	or     %ecx,%eax
40b88f:	83 f8 00             	cmp    $0x0,%eax
40b892:	0f 84 85 00 00 00    	je     0x40b91d
40b898:	66 0f 12 54 24 04    	movlpd 0x4(%esp),%xmm2
40b89e:	66 0f 7e d2          	movd   %xmm2,%edx
40b8a2:	66 0f 73 d2 20       	psrlq  $0x20,%xmm2
40b8a7:	66 0f 7e d1          	movd   %xmm2,%ecx
40b8ab:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx