41d513:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41d516:	8b 55 08             	mov    0x8(%ebp),%edx
41d519:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
41d51f:	75 04                	jne    0x41d525
41d521:	85 d2                	test   %edx,%edx
41d523:	74 6a                	je     0x41d58f
41d525:	de d9                	fcompp
41d527:	bf 03 fc ff ff       	mov    $0xfffffc03,%edi
41d52c:	df e0                	fnstsw %ax
41d52e:	f6 c4 41             	test   $0x41,%ah
41d531:	75 05                	jne    0x41d538
41d533:	33 c0                	xor    %eax,%eax
41d535:	40                   	inc    %eax
41d536:	eb 02                	jmp    0x41d53a
41d538:	33 c0                	xor    %eax,%eax
41d53a:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
41d53e:	75 1f                	jne    0x41d55f
41d540:	03 c9                	add    %ecx,%ecx
41d542:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41d545:	85 d2                	test   %edx,%edx
41d547:	79 06                	jns    0x41d54f
41d549:	83 c9 01             	or     $0x1,%ecx
41d54c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
41d54f:	03 d2                	add    %edx,%edx
41d551:	4f                   	dec    %edi
41d552:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
41d556:	74 e8                	je     0x41d540
41d558:	66 8b 75 0e          	mov    0xe(%ebp),%si
41d55c:	89 55 08             	mov    %edx,0x8(%ebp)
41d55f:	b9 ef ff 00 00       	mov    $0xffef,%ecx
41d564:	66 23 f1             	and    %cx,%si
41d567:	66 89 75 0e          	mov    %si,0xe(%ebp)
41d56b:	85 c0                	test   %eax,%eax
41d56d:	74 0c                	je     0x41d57b
41d56f:	b8 00 80 00 00       	mov    $0x8000,%eax
41d574:	66 0b f0             	or     %ax,%si
41d577:	66 89 75 0e          	mov    %si,0xe(%ebp)
41d57b:	dd 45 08             	fldl   0x8(%ebp)
41d57e:	6a 00                	push   $0x0
41d580:	51                   	push   %ecx
41d581:	51                   	push   %ecx
41d582:	dd 1c 24             	fstpl  (%esp)
41d585:	e8 31 00 00 00       	call   0x41d5bb
41d58a:	83 c4 0c             	add    $0xc,%esp
41d58d:	eb 23                	jmp    0x41d5b2
41d58f:	6a 00                	push   $0x0
41d591:	51                   	push   %ecx
41d592:	dd d8                	fstp   %st(0)
41d594:	51                   	push   %ecx
41d595:	dd 1c 24             	fstpl  (%esp)
41d598:	e8 1e 00 00 00       	call   0x41d5bb
41d59d:	0f b7 fe             	movzwl %si,%edi
41d5a0:	83 c4 0c             	add    $0xc,%esp
41d5a3:	c1 ef 04             	shr    $0x4,%edi
41d5a6:	81 e7 ff 07 00 00    	and    $0x7ff,%edi
41d5ac:	81 ef fe 03 00 00    	sub    $0x3fe,%edi
41d5b2:	5e                   	pop    %esi
41d5b3:	8b 45 10             	mov    0x10(%ebp),%eax
41d5b6:	89 38                	mov    %edi,(%eax)
41d5b8:	5f                   	pop    %edi
41d5b9:	5d                   	pop    %ebp
41d5ba:	c3                   	ret
41d5bb:	8b ff                	mov    %edi,%edi
41d5bd:	55                   	push   %ebp
41d5be:	8b ec                	mov    %esp,%ebp
41d5c0:	51                   	push   %ecx
41d5c1:	51                   	push   %ecx
41d5c2:	8b 4d 10             	mov    0x10(%ebp),%ecx
41d5c5:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
41d5c9:	dd 45 08             	fldl   0x8(%ebp)
41d5cc:	25 0f 80 00 00       	and    $0x800f,%eax
41d5d1:	dd 5d f8             	fstpl  -0x8(%ebp)
41d5d4:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
41d5da:	c1 e1 04             	shl    $0x4,%ecx
41d5dd:	0b c8                	or     %eax,%ecx
41d5df:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
41d5e3:	dd 45 f8             	fldl   -0x8(%ebp)
41d5e6:	8b e5                	mov    %ebp,%esp
41d5e8:	5d                   	pop    %ebp
41d5e9:	c3                   	ret
41d5ea:	8b ff                	mov    %edi,%edi
41d5ec:	55                   	push   %ebp
41d5ed:	8b ec                	mov    %esp,%ebp
41d5ef:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
41d5f6:	8b 45 08             	mov    0x8(%ebp),%eax
41d5f9:	75 07                	jne    0x41d602
41d5fb:	85 c0                	test   %eax,%eax
41d5fd:	75 15                	jne    0x41d614
41d5ff:	40                   	inc    %eax
41d600:	5d                   	pop    %ebp
41d601:	c3                   	ret
41d602:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
41d609:	75 09                	jne    0x41d614
41d60b:	85 c0                	test   %eax,%eax
41d60d:	75 05                	jne    0x41d614
41d60f:	6a 02                	push   $0x2
41d611:	58                   	pop    %eax
41d612:	5d                   	pop    %ebp
41d613:	c3                   	ret
41d614:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
41d618:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
41d61d:	66 23 ca             	and    %dx,%cx
41d620:	66 3b ca             	cmp    %dx,%cx
41d623:	75 04                	jne    0x41d629
41d625:	6a 03                	push   $0x3
41d627:	eb e8                	jmp    0x41d611
41d629:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
41d62e:	66 3b ca             	cmp    %dx,%cx
41d631:	75 11                	jne    0x41d644
41d633:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
41d63a:	75 04                	jne    0x41d640
41d63c:	85 c0                	test   %eax,%eax
41d63e:	74 04                	je     0x41d644
41d640:	6a 04                	push   $0x4
41d642:	eb cd                	jmp    0x41d611
41d644:	33 c0                	xor    %eax,%eax
41d646:	5d                   	pop    %ebp
41d647:	c3                   	ret
41d648:	6a 08                	push   $0x8
41d64a:	68 70 82 43 00       	push   $0x438270
41d64f:	e8 cc 9f fe ff       	call   0x407620
41d654:	83 3d 48 96 83 02 01 	cmpl   $0x1,0x2839648
41d65b:	7c 5b                	jl     0x41d6b8
41d65d:	8b 45 08             	mov    0x8(%ebp),%eax
41d660:	a8 40                	test   $0x40,%al
41d662:	74 4a                	je     0x41d6ae
41d664:	83 3d b4 bc 43 00 00 	cmpl   $0x0,0x43bcb4
41d66b:	74 41                	je     0x41d6ae
41d66d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41d671:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41d675:	eb 2e                	jmp    0x41d6a5
41d677:	8b 45 ec             	mov    -0x14(%ebp),%eax
41d67a:	8b 00                	mov    (%eax),%eax
41d67c:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
41d682:	74 0b                	je     0x41d68f
41d684:	81 38 1d 00 00 c0    	cmpl   $0xc000001d,(%eax)
41d68a:	74 03                	je     0x41d68f
41d68c:	33 c0                	xor    %eax,%eax
41d68e:	c3                   	ret
41d68f:	33 c0                	xor    %eax,%eax
41d691:	40                   	inc    %eax
41d692:	c3                   	ret
41d693:	8b 65 e8             	mov    -0x18(%ebp),%esp
41d696:	83 25 b4 bc 43 00 00 	andl   $0x0,0x43bcb4
41d69d:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
41d6a1:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41d6a5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41d6ac:	eb 0a                	jmp    0x41d6b8
41d6ae:	83 e0 bf             	and    $0xffffffbf,%eax
41d6b1:	89 45 08             	mov    %eax,0x8(%ebp)
41d6b4:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
41d6b8:	e8 a9 9f fe ff       	call   0x407666
41d6bd:	c3                   	ret
41d6be:	8b ff                	mov    %edi,%edi
41d6c0:	55                   	push   %ebp
41d6c1:	8b ec                	mov    %esp,%ebp
41d6c3:	51                   	push   %ecx
41d6c4:	dd 7d fc             	fnstsw -0x4(%ebp)
41d6c7:	db e2                	fnclex
41d6c9:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
41d6cd:	8b e5                	mov    %ebp,%esp
41d6cf:	5d                   	pop    %ebp
41d6d0:	c3                   	ret
41d6d1:	8b ff                	mov    %edi,%edi
41d6d3:	55                   	push   %ebp
41d6d4:	8b ec                	mov    %esp,%ebp
41d6d6:	51                   	push   %ecx
41d6d7:	51                   	push   %ecx
41d6d8:	9b d9 7d fc          	fstcw  -0x4(%ebp)
41d6dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41d6df:	8b 45 08             	mov    0x8(%ebp),%eax
41d6e2:	f7 d1                	not    %ecx
41d6e4:	66 23 4d fc          	and    -0x4(%ebp),%cx
41d6e8:	23 45 0c             	and    0xc(%ebp),%eax
41d6eb:	66 0b c8             	or     %ax,%cx
41d6ee:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
41d6f2:	d9 6d f8             	fldcw  -0x8(%ebp)
41d6f5:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
41d6f9:	8b e5                	mov    %ebp,%esp
41d6fb:	5d                   	pop    %ebp
41d6fc:	c3                   	ret
41d6fd:	8b ff                	mov    %edi,%edi
41d6ff:	55                   	push   %ebp
41d700:	8b ec                	mov    %esp,%ebp
41d702:	8b 4d 08             	mov    0x8(%ebp),%ecx
41d705:	83 ec 0c             	sub    $0xc,%esp
41d708:	f6 c1 01             	test   $0x1,%cl
41d70b:	74 0a                	je     0x41d717
41d70d:	db 2d d8 d7 42 00    	fldt   0x42d7d8
41d713:	db 5d fc             	fistpl -0x4(%ebp)
41d716:	9b                   	fwait
41d717:	f6 c1 08             	test   $0x8,%cl
41d71a:	74 10                	je     0x41d72c
41d71c:	9b df e0             	fstsw  %ax
41d71f:	db 2d d8 d7 42 00    	fldt   0x42d7d8
41d725:	dd 5d f4             	fstpl  -0xc(%ebp)
41d728:	9b 9b df e0          	fstsw  %ax
41d72c:	f6 c1 10             	test   $0x10,%cl
41d72f:	74 0a                	je     0x41d73b
41d731:	db 2d e4 d7 42 00    	fldt   0x42d7e4
41d737:	dd 5d f4             	fstpl  -0xc(%ebp)
41d73a:	9b                   	fwait
41d73b:	f6 c1 04             	test   $0x4,%cl
41d73e:	74 09                	je     0x41d749
41d740:	d9 ee                	fldz
41d742:	d9 e8                	fld1
41d744:	de f1                	fdivp  %st,%st(1)
41d746:	dd d8                	fstp   %st(0)
41d748:	9b                   	fwait
41d749:	f6 c1 20             	test   $0x20,%cl
41d74c:	74 06                	je     0x41d754
41d74e:	d9 eb                	fldpi
41d750:	dd 5d f4             	fstpl  -0xc(%ebp)
41d753:	9b                   	fwait
41d754:	8b e5                	mov    %ebp,%esp
41d756:	5d                   	pop    %ebp
41d757:	c3                   	ret
41d758:	8b ff                	mov    %edi,%edi
41d75a:	55                   	push   %ebp
41d75b:	8b ec                	mov    %esp,%ebp
41d75d:	51                   	push   %ecx
41d75e:	9b dd 7d fc          	fstsw  -0x4(%ebp)
41d762:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
41d766:	8b e5                	mov    %ebp,%esp
41d768:	5d                   	pop    %ebp
41d769:	c3                   	ret
41d76a:	8b ff                	mov    %edi,%edi
41d76c:	55                   	push   %ebp
41d76d:	8b ec                	mov    %esp,%ebp
41d76f:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
41d773:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
41d778:	66 8b c1             	mov    %cx,%ax
41d77b:	66 23 c2             	and    %dx,%ax
41d77e:	66 3b c2             	cmp    %dx,%ax
41d781:	75 33                	jne    0x41d7b6
41d783:	dd 45 08             	fldl   0x8(%ebp)
41d786:	51                   	push   %ecx
41d787:	51                   	push   %ecx
41d788:	dd 1c 24             	fstpl  (%esp)
41d78b:	e8 5a fe ff ff       	call   0x41d5ea
41d790:	59                   	pop    %ecx
41d791:	59                   	pop    %ecx
41d792:	83 e8 01             	sub    $0x1,%eax
41d795:	74 18                	je     0x41d7af
41d797:	83 e8 01             	sub    $0x1,%eax
41d79a:	74 0e                	je     0x41d7aa
41d79c:	83 e8 01             	sub    $0x1,%eax
41d79f:	74 05                	je     0x41d7a6
41d7a1:	33 c0                	xor    %eax,%eax
41d7a3:	40                   	inc    %eax
41d7a4:	5d                   	pop    %ebp
41d7a5:	c3                   	ret
41d7a6:	6a 02                	push   $0x2
41d7a8:	eb 02                	jmp    0x41d7ac
41d7aa:	6a 04                	push   $0x4
41d7ac:	58                   	pop    %eax
41d7ad:	5d                   	pop    %ebp
41d7ae:	c3                   	ret
41d7af:	b8 00 02 00 00       	mov    $0x200,%eax
41d7b4:	5d                   	pop    %ebp
41d7b5:	c3                   	ret
41d7b6:	0f b7 c9             	movzwl %cx,%ecx
41d7b9:	81 e1 00 80 00 00    	and    $0x8000,%ecx
41d7bf:	66 85 c0             	test   %ax,%ax
41d7c2:	75 1e                	jne    0x41d7e2
41d7c4:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
41d7cb:	75 06                	jne    0x41d7d3
41d7cd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41d7d1:	74 0f                	je     0x41d7e2
41d7d3:	f7 d9                	neg    %ecx
41d7d5:	1b c9                	sbb    %ecx,%ecx
41d7d7:	83 e1 90             	and    $0xffffff90,%ecx
41d7da:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
41d7e0:	5d                   	pop    %ebp
41d7e1:	c3                   	ret
41d7e2:	dd 45 08             	fldl   0x8(%ebp)
41d7e5:	d9 ee                	fldz
41d7e7:	da e9                	fucompp
41d7e9:	df e0                	fnstsw %ax
41d7eb:	f6 c4 44             	test   $0x44,%ah
41d7ee:	7a 0c                	jp     0x41d7fc
41d7f0:	f7 d9                	neg    %ecx
41d7f2:	1b c9                	sbb    %ecx,%ecx
41d7f4:	83 e1 e0             	and    $0xffffffe0,%ecx
41d7f7:	8d 41 40             	lea    0x40(%ecx),%eax
41d7fa:	5d                   	pop    %ebp
41d7fb:	c3                   	ret
41d7fc:	f7 d9                	neg    %ecx
41d7fe:	1b c9                	sbb    %ecx,%ecx
41d800:	81 e1 08 ff ff ff    	and    $0xffffff08,%ecx
41d806:	8d 81 00 01 00 00    	lea    0x100(%ecx),%eax
41d80c:	5d                   	pop    %ebp
41d80d:	c3                   	ret
41d80e:	cc                   	int3
41d80f:	cc                   	int3
41d810:	55                   	push   %ebp
41d811:	8b ec                	mov    %esp,%ebp
41d813:	83 ec 10             	sub    $0x10,%esp
41d816:	83 e4 f0             	and    $0xfffffff0,%esp
41d819:	d9 c9                	fxch   %st(1)
41d81b:	dd 1c 24             	fstpl  (%esp)
41d81e:	dd 5c 24 08          	fstpl  0x8(%esp)
41d822:	e8 02 00 00 00       	call   0x41d829
41d827:	c9                   	leave
41d828:	c3                   	ret
41d829:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
41d82f:	66 0f 12 3d 00 d8 42 	movlpd 0x42d800,%xmm7
41d836:	00
41d837:	66 0f 12 15 10 d8 42 	movlpd 0x42d810,%xmm2
41d83e:	00
41d83f:	66 0f 54 f8          	andpd  %xmm0,%xmm7
41d843:	f2 0f 10 e0          	movsd  %xmm0,%xmm4
41d847:	66 0f 73 d0 2c       	psrlq  $0x2c,%xmm0
41d84c:	66 0f c5 c0 00       	pextrw $0x0,%xmm0,%eax
41d851:	66 0f 56 fa          	orpd   %xmm2,%xmm7
41d855:	66 0f c5 cc 03       	pextrw $0x3,%xmm4,%ecx
41d85a:	25 ff 00 00 00       	and    $0xff,%eax
41d85f:	83 c0 01             	add    $0x1,%eax
41d862:	25 fe 01 00 00       	and    $0x1fe,%eax
41d867:	f2 0f 59 3c 85 50 24 	mulsd  0x432450(,%eax,4),%xmm7
41d86e:	43 00
41d870:	66 0f 12 2c 85 50 24 	movlpd 0x432450(,%eax,4),%xmm5
41d877:	43 00
41d879:	03 c0                	add    %eax,%eax
41d87b:	66 0f 28 34 85 60 28 	movapd 0x432860(,%eax,4),%xmm6
41d882:	43 00
41d884:	ba ef 7f 00 00       	mov    $0x7fef,%edx
41d889:	2b d1                	sub    %ecx,%edx
41d88b:	83 e9 10             	sub    $0x10,%ecx
41d88e:	0b ca                	or     %edx,%ecx
41d890:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
41d896:	0f 83 db 02 00 00    	jae    0x41db77
41d89c:	b9 00 00 00 00       	mov    $0x0,%ecx
41d8a1:	ba 7f fe 03 00       	mov    $0x3fe7f,%edx
41d8a6:	66 0f 6e ca          	movd   %edx,%xmm1
41d8aa:	66 0f fb c1          	psubq  %xmm1,%xmm0
41d8ae:	66 0f 73 d0 08       	psrlq  $0x8,%xmm0
41d8b3:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
41d8b7:	66 0f 12 0d 58 d8 42 	movlpd 0x42d858,%xmm1
41d8be:	00
41d8bf:	f2 0f 10 df          	movsd  %xmm7,%xmm3
41d8c3:	66 0f 73 d7 26       	psrlq  $0x26,%xmm7
41d8c8:	66 0f c5 c7 00       	pextrw $0x0,%xmm7,%eax
41d8cd:	66 0f 54 25 00 d8 42 	andpd  0x42d800,%xmm4
41d8d4:	00
41d8d5:	25 ff 00 00 00       	and    $0xff,%eax
41d8da:	83 c0 01             	add    $0x1,%eax
41d8dd:	25 fe 01 00 00       	and    $0x1fe,%eax
41d8e2:	f2 0f 59 1c 85 70 30 	mulsd  0x433070(,%eax,4),%xmm3
41d8e9:	43 00