495337:	e8 bc 04 ff ff       	call   0x4857f8
49533c:	59                   	pop    %ecx
49533d:	eb 63                	jmp    0x4953a2
49533f:	85 c9                	test   %ecx,%ecx
495341:	7f c8                	jg     0x49530b
495343:	7c 04                	jl     0x495349
495345:	85 c0                	test   %eax,%eax
495347:	73 c2                	jae    0x49530b
495349:	6a 00                	push   $0x0
49534b:	ff 75 10             	push   0x10(%ebp)
49534e:	ff 75 0c             	push   0xc(%ebp)
495351:	53                   	push   %ebx
495352:	e8 d9 43 ff ff       	call   0x489730
495357:	23 c2                	and    %edx,%eax
495359:	83 c4 10             	add    $0x10,%esp
49535c:	83 f8 ff             	cmp    $0xffffffff,%eax
49535f:	75 08                	jne    0x495369
495361:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
495365:	74 a4                	je     0x49530b
495367:	eb 31                	jmp    0x49539a
495369:	53                   	push   %ebx
49536a:	e8 32 af ff ff       	call   0x4902a1
49536f:	59                   	pop    %ecx
495370:	50                   	push   %eax
495371:	ff 15 bc e0 49 00    	call   *0x49e0bc
495377:	85 c0                	test   %eax,%eax
495379:	75 90                	jne    0x49530b
49537b:	ff 15 30 e1 49 00    	call   *0x49e130
495381:	6a 0d                	push   $0xd
495383:	c6 47 24 01          	movb   $0x1,0x24(%edi)
495387:	89 47 20             	mov    %eax,0x20(%edi)
49538a:	5b                   	pop    %ebx
49538b:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
49538f:	89 5f 18             	mov    %ebx,0x18(%edi)
495392:	eb 0e                	jmp    0x4953a2
495394:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
495398:	74 05                	je     0x49539f
49539a:	8b 5f 18             	mov    0x18(%edi),%ebx
49539d:	eb 03                	jmp    0x4953a2
49539f:	6a 16                	push   $0x16
4953a1:	5b                   	pop    %ebx
4953a2:	6a 00                	push   $0x0
4953a4:	ff 75 d8             	push   -0x28(%ebp)
4953a7:	ff 75 d4             	push   -0x2c(%ebp)
4953aa:	ff 75 ec             	push   -0x14(%ebp)
4953ad:	e8 7e 43 ff ff       	call   0x489730
4953b2:	83 c4 10             	add    $0x10,%esp
4953b5:	8b c3                	mov    %ebx,%eax
4953b7:	5f                   	pop    %edi
4953b8:	5e                   	pop    %esi
4953b9:	5b                   	pop    %ebx
4953ba:	c9                   	leave
4953bb:	c3                   	ret
4953bc:	cc                   	int3
4953bd:	cc                   	int3
4953be:	cc                   	int3
4953bf:	cc                   	int3
4953c0:	55                   	push   %ebp
4953c1:	8b ec                	mov    %esp,%ebp
4953c3:	83 ec 08             	sub    $0x8,%esp
4953c6:	83 e4 f0             	and    $0xfffffff0,%esp
4953c9:	dd 1c 24             	fstpl  (%esp)
4953cc:	f3 0f 7e 04 24       	movq   (%esp),%xmm0
4953d1:	e8 08 00 00 00       	call   0x4953de
4953d6:	c9                   	leave
4953d7:	c3                   	ret
4953d8:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
4953de:	ba 00 00 00 00       	mov    $0x0,%edx
4953e3:	66 0f 28 e8          	movapd %xmm0,%xmm5
4953e7:	66 0f 14 c0          	unpcklpd %xmm0,%xmm0
4953eb:	66 0f 73 d5 34       	psrlq  $0x34,%xmm5
4953f0:	66 0f c5 cd 00       	pextrw $0x0,%xmm5,%ecx
4953f5:	66 0f 28 0d d0 aa 4a 	movapd 0x4aaad0,%xmm1
4953fc:	00
4953fd:	66 0f 28 15 e0 aa 4a 	movapd 0x4aaae0,%xmm2
495404:	00
495405:	66 0f 28 1d 40 ab 4a 	movapd 0x4aab40,%xmm3
49540c:	00
49540d:	66 0f 28 25 f0 aa 4a 	movapd 0x4aaaf0,%xmm4
495414:	00
495415:	66 0f 28 35 00 ab 4a 	movapd 0x4aab00,%xmm6
49541c:	00
49541d:	66 0f 54 c1          	andpd  %xmm1,%xmm0
495421:	66 0f 56 c3          	orpd   %xmm3,%xmm0
495425:	66 0f 58 e0          	addpd  %xmm0,%xmm4
495429:	66 0f c5 c4 00       	pextrw $0x0,%xmm4,%eax
49542e:	25 f0 07 00 00       	and    $0x7f0,%eax
495433:	66 0f 28 a0 e0 af 4a 	movapd 0x4aafe0(%eax),%xmm4
49543a:	00
49543b:	66 0f 28 b8 d0 ab 4a 	movapd 0x4aabd0(%eax),%xmm7
495442:	00
495443:	66 0f 54 f0          	andpd  %xmm0,%xmm6
495447:	66 0f 5c c6          	subpd  %xmm6,%xmm0
49544b:	66 0f 59 f4          	mulpd  %xmm4,%xmm6
49544f:	66 0f 5c f2          	subpd  %xmm2,%xmm6
495453:	f2 0f 58 fe          	addsd  %xmm6,%xmm7
495457:	66 0f 59 c4          	mulpd  %xmm4,%xmm0
49545b:	66 0f 28 e0          	movapd %xmm0,%xmm4
49545f:	66 0f 58 c6          	addpd  %xmm6,%xmm0
495463:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
495469:	83 e9 01             	sub    $0x1,%ecx
49546c:	81 f9 fd 07 00 00    	cmp    $0x7fd,%ecx
495472:	0f 87 be 00 00 00    	ja     0x495536
495478:	81 e9 fe 03 00 00    	sub    $0x3fe,%ecx
49547e:	03 ca                	add    %edx,%ecx
495480:	f2 0f 2a f1          	cvtsi2sd %ecx,%xmm6
495484:	66 0f 14 f6          	unpcklpd %xmm6,%xmm6
495488:	c1 e1 0a             	shl    $0xa,%ecx
49548b:	03 c1                	add    %ecx,%eax
49548d:	b9 10 00 00 00       	mov    $0x10,%ecx
495492:	ba 00 00 00 00       	mov    $0x0,%edx
495497:	83 f8 00             	cmp    $0x0,%eax
49549a:	0f 44 d1             	cmove  %ecx,%edx
49549d:	66 0f 28 0d 90 ab 4a 	movapd 0x4aab90,%xmm1
4954a4:	00
4954a5:	66 0f 28 d8          	movapd %xmm0,%xmm3
4954a9:	66 0f 28 15 a0 ab 4a 	movapd 0x4aaba0,%xmm2
4954b0:	00
4954b1:	66 0f 59 c8          	mulpd  %xmm0,%xmm1
4954b5:	66 0f 59 db          	mulpd  %xmm3,%xmm3
4954b9:	66 0f 58 ca          	addpd  %xmm2,%xmm1
4954bd:	66 0f 28 15 b0 ab 4a 	movapd 0x4aabb0,%xmm2
4954c4:	00
4954c5:	f2 0f 59 db          	mulsd  %xmm3,%xmm3
4954c9:	66 0f 28 2d 10 ab 4a 	movapd 0x4aab10,%xmm5
4954d0:	00
4954d1:	66 0f 59 f5          	mulpd  %xmm5,%xmm6
4954d5:	66 0f 28 aa 20 ab 4a 	movapd 0x4aab20(%edx),%xmm5
4954dc:	00
4954dd:	66 0f 54 e5          	andpd  %xmm5,%xmm4
4954e1:	66 0f 58 fe          	addpd  %xmm6,%xmm7
4954e5:	66 0f 58 fc          	addpd  %xmm4,%xmm7
4954e9:	66 0f 59 c8          	mulpd  %xmm0,%xmm1
4954ed:	f2 0f 59 d8          	mulsd  %xmm0,%xmm3
4954f1:	66 0f 58 ca          	addpd  %xmm2,%xmm1
4954f5:	66 0f 28 15 c0 ab 4a 	movapd 0x4aabc0,%xmm2
4954fc:	00
4954fd:	66 0f 59 d0          	mulpd  %xmm0,%xmm2
495501:	66 0f 28 f7          	movapd %xmm7,%xmm6
495505:	66 0f 15 f6          	unpckhpd %xmm6,%xmm6
495509:	66 0f 59 cb          	mulpd  %xmm3,%xmm1
49550d:	83 ec 10             	sub    $0x10,%esp
495510:	66 0f 28 c1          	movapd %xmm1,%xmm0
495514:	66 0f 58 ca          	addpd  %xmm2,%xmm1
495518:	66 0f 15 c0          	unpckhpd %xmm0,%xmm0
49551c:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
495520:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
495524:	f2 0f 58 c7          	addsd  %xmm7,%xmm0
495528:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
49552e:	dd 44 24 04          	fldl   0x4(%esp)
495532:	83 c4 10             	add    $0x10,%esp
495535:	c3                   	ret
495536:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
49553c:	66 0f 28 0d 50 ab 4a 	movapd 0x4aab50,%xmm1
495543:	00
495544:	f2 0f c2 c8 00       	cmpeqsd %xmm0,%xmm1
495549:	66 0f c5 c1 00       	pextrw $0x0,%xmm1,%eax
49554e:	83 f8 00             	cmp    $0x0,%eax
495551:	77 48                	ja     0x49559b
495553:	83 f9 ff             	cmp    $0xffffffff,%ecx
495556:	74 5e                	je     0x4955b6
495558:	81 f9 fe 07 00 00    	cmp    $0x7fe,%ecx
49555e:	77 6c                	ja     0x4955cc
495560:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
495566:	66 0f 28 0d d0 aa 4a 	movapd 0x4aaad0,%xmm1
49556d:	00
49556e:	66 0f 28 15 40 ab 4a 	movapd 0x4aab40,%xmm2
495575:	00
495576:	66 0f 54 c1          	andpd  %xmm1,%xmm0
49557a:	66 0f 56 c2          	orpd   %xmm2,%xmm0
49557e:	f2 0f c2 d0 00       	cmpeqsd %xmm0,%xmm2
495583:	66 0f c5 c2 00       	pextrw $0x0,%xmm2,%eax
495588:	83 f8 00             	cmp    $0x0,%eax
49558b:	74 07                	je     0x495594
49558d:	dd 05 78 ab 4a 00    	fldl   0x4aab78
495593:	c3                   	ret
495594:	ba e9 03 00 00       	mov    $0x3e9,%edx
495599:	eb 4f                	jmp    0x4955ea
49559b:	66 0f 12 15 40 ab 4a 	movlpd 0x4aab40,%xmm2
4955a2:	00
4955a3:	f2 0f 5e d0          	divsd  %xmm0,%xmm2
4955a7:	66 0f 12 0d 70 ab 4a 	movlpd 0x4aab70,%xmm1
4955ae:	00
4955af:	ba 08 00 00 00       	mov    $0x8,%edx
4955b4:	eb 34                	jmp    0x4955ea
4955b6:	66 0f 12 0d 60 ab 4a 	movlpd 0x4aab60,%xmm1
4955bd:	00
4955be:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
4955c2:	ba cc ff ff ff       	mov    $0xffffffcc,%edx
4955c7:	e9 17 fe ff ff       	jmp    0x4953e3
4955cc:	83 c1 01             	add    $0x1,%ecx
4955cf:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
4955d5:	81 f9 ff 07 00 00    	cmp    $0x7ff,%ecx
4955db:	73 3a                	jae    0x495617
4955dd:	66 0f 57 c9          	xorpd  %xmm1,%xmm1
4955e1:	f2 0f 5e c9          	divsd  %xmm1,%xmm1
4955e5:	ba 09 00 00 00       	mov    $0x9,%edx
4955ea:	83 ec 1c             	sub    $0x1c,%esp
4955ed:	66 0f 13 4c 24 10    	movlpd %xmm1,0x10(%esp)
4955f3:	89 54 24 0c          	mov    %edx,0xc(%esp)
4955f7:	8b d4                	mov    %esp,%edx
4955f9:	83 c2 10             	add    $0x10,%edx
4955fc:	89 54 24 08          	mov    %edx,0x8(%esp)
495600:	83 c2 10             	add    $0x10,%edx
495603:	89 54 24 04          	mov    %edx,0x4(%esp)
495607:	89 14 24             	mov    %edx,(%esp)
49560a:	e8 ff ee ff ff       	call   0x49450e
49560f:	dd 44 24 10          	fldl   0x10(%esp)
495613:	83 c4 1c             	add    $0x1c,%esp
495616:	c3                   	ret
495617:	66 0f 12 54 24 04    	movlpd 0x4(%esp),%xmm2
49561d:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
495623:	66 0f 7e d0          	movd   %xmm2,%eax
495627:	66 0f 73 d2 20       	psrlq  $0x20,%xmm2
49562c:	66 0f 7e d1          	movd   %xmm2,%ecx
495630:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
495636:	0b c1                	or     %ecx,%eax
495638:	83 f8 00             	cmp    $0x0,%eax
49563b:	74 a0                	je     0x4955dd
49563d:	ba e9 03 00 00       	mov    $0x3e9,%edx
495642:	eb a6                	jmp    0x4955ea
495644:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
49564b:	eb 03                	jmp    0x495650
49564d:	cc                   	int3
49564e:	cc                   	int3
49564f:	cc                   	int3
495650:	8b ff                	mov    %edi,%edi
495652:	55                   	push   %ebp
495653:	8b ec                	mov    %esp,%ebp
495655:	51                   	push   %ecx
495656:	51                   	push   %ecx
495657:	53                   	push   %ebx
495658:	56                   	push   %esi
495659:	be ff ff 00 00       	mov    $0xffff,%esi
49565e:	56                   	push   %esi
49565f:	68 3f 1b 00 00       	push   $0x1b3f
495664:	e8 c1 4d ff ff       	call   0x48a42a
495669:	dd 45 08             	fldl   0x8(%ebp)
49566c:	8b d8                	mov    %eax,%ebx
49566e:	59                   	pop    %ecx
49566f:	59                   	pop    %ecx
495670:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
495674:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
495679:	23 c8                	and    %eax,%ecx
49567b:	51                   	push   %ecx
49567c:	51                   	push   %ecx
49567d:	dd 1c 24             	fstpl  (%esp)
495680:	66 3b c8             	cmp    %ax,%cx
495683:	75 46                	jne    0x4956cb
495685:	e8 56 44 ff ff       	call   0x489ae0
49568a:	59                   	pop    %ecx
49568b:	59                   	pop    %ecx
49568c:	83 e8 01             	sub    $0x1,%eax
49568f:	74 2e                	je     0x4956bf
495691:	83 e8 01             	sub    $0x1,%eax
495694:	74 29                	je     0x4956bf
495696:	83 e8 01             	sub    $0x1,%eax
495699:	74 24                	je     0x4956bf
49569b:	dd 45 08             	fldl   0x8(%ebp)
49569e:	dd 05 68 73 4b 00    	fldl   0x4b7368
4956a4:	53                   	push   %ebx
4956a5:	83 ec 10             	sub    $0x10,%esp
4956a8:	d8 c1                	fadd   %st(1),%st
4956aa:	dd 5c 24 08          	fstpl  0x8(%esp)
4956ae:	dd 1c 24             	fstpl  (%esp)
4956b1:	6a 0c                	push   $0xc
4956b3:	6a 08                	push   $0x8
4956b5:	e8 bd 44 ff ff       	call   0x489b77
4956ba:	83 c4 1c             	add    $0x1c,%esp
4956bd:	eb 4b                	jmp    0x49570a
4956bf:	56                   	push   %esi
4956c0:	53                   	push   %ebx
4956c1:	e8 64 4d ff ff       	call   0x48a42a
4956c6:	dd 45 08             	fldl   0x8(%ebp)
4956c9:	eb 3d                	jmp    0x495708
4956cb:	e8 42 f1 ff ff       	call   0x494812
4956d0:	dd 55 f8             	fstl   -0x8(%ebp)
4956d3:	dd 45 08             	fldl   0x8(%ebp)
4956d6:	83 c4 08             	add    $0x8,%esp
4956d9:	dd e1                	fucom  %st(1)
4956db:	df e0                	fnstsw %ax
4956dd:	f6 c4 44             	test   $0x44,%ah
4956e0:	7b 18                	jnp    0x4956fa
4956e2:	f6 c3 20             	test   $0x20,%bl
4956e5:	75 13                	jne    0x4956fa
4956e7:	53                   	push   %ebx
4956e8:	83 ec 10             	sub    $0x10,%esp
4956eb:	d9 c9                	fxch   %st(1)
4956ed:	dd 5c 24 08          	fstpl  0x8(%esp)
4956f1:	dd 1c 24             	fstpl  (%esp)
4956f4:	6a 0c                	push   $0xc
4956f6:	6a 10                	push   $0x10
4956f8:	eb bb                	jmp    0x4956b5
4956fa:	56                   	push   %esi
4956fb:	dd d9                	fstp   %st(1)
4956fd:	53                   	push   %ebx
4956fe:	dd d8                	fstp   %st(0)
495700:	e8 25 4d ff ff       	call   0x48a42a
495705:	dd 45 f8             	fldl   -0x8(%ebp)
495708:	59                   	pop    %ecx
495709:	59                   	pop    %ecx
49570a:	5e                   	pop    %esi
49570b:	5b                   	pop    %ebx
49570c:	c9                   	leave
49570d:	c3                   	ret
49570e:	8b ff                	mov    %edi,%edi
495710:	55                   	push   %ebp
495711:	8b ec                	mov    %esp,%ebp
495713:	51                   	push   %ecx
495714:	51                   	push   %ecx
495715:	8b 55 0c             	mov    0xc(%ebp),%edx
495718:	56                   	push   %esi
495719:	8b 75 10             	mov    0x10(%ebp),%esi
49571c:	0f b7 ca             	movzwl %dx,%ecx
49571f:	57                   	push   %edi
495720:	85 f6                	test   %esi,%esi
495722:	75 05                	jne    0x495729
495724:	be fc 8b 4c 00       	mov    $0x4c8bfc,%esi
495729:	83 3e 00             	cmpl   $0x0,(%esi)
49572c:	8d 81 00 24 00 00    	lea    0x2400(%ecx),%eax
495732:	0f b7 c0             	movzwl %ax,%eax
495735:	75 47                	jne    0x49577e
495737:	bf ff 03 00 00       	mov    $0x3ff,%edi
49573c:	66 3b c7             	cmp    %di,%ax
49573f:	77 0d                	ja     0x49574e
495741:	ff 75 14             	push   0x14(%ebp)
495744:	56                   	push   %esi
495745:	e8 66 f7 ff ff       	call   0x494eb0
49574a:	59                   	pop    %ecx
49574b:	59                   	pop    %ecx
49574c:	eb 66                	jmp    0x4957b4
49574e:	8d 82 00 28 00 00    	lea    0x2800(%edx),%eax
495754:	66 3b c7             	cmp    %di,%ax
495757:	8b c1                	mov    %ecx,%eax
495759:	77 11                	ja     0x49576c
49575b:	25 ff 27 ff ff       	and    $0xffff27ff,%eax
495760:	83 c0 40             	add    $0x40,%eax
495763:	c1 e0 0a             	shl    $0xa,%eax
495766:	89 06                	mov    %eax,(%esi)
495768:	33 c0                	xor    %eax,%eax
49576a:	eb 48                	jmp    0x4957b4
49576c:	ff 75 14             	push   0x14(%ebp)
49576f:	56                   	push   %esi
495770:	50                   	push   %eax
495771:	ff 75 08             	push   0x8(%ebp)
495774:	e8 91 d4 ff ff       	call   0x492c0a
495779:	83 c4 10             	add    $0x10,%esp
49577c:	eb 36                	jmp    0x4957b4
49577e:	ff 75 14             	push   0x14(%ebp)
495781:	b9 ff 03 00 00       	mov    $0x3ff,%ecx