48f420:	f7 db                	neg    %ebx
48f422:	74 19                	je     0x48f43d
48f424:	33 c0                	xor    %eax,%eax
48f426:	83 f8 40             	cmp    $0x40,%eax
48f429:	73 12                	jae    0x48f43d
48f42b:	f6 c3 01             	test   $0x1,%bl
48f42e:	74 06                	je     0x48f436
48f430:	dc 88 30 f0 40 00    	fmull  0x40f030(%eax)
48f436:	83 c0 08             	add    $0x8,%eax
48f439:	d1 eb                	shr    $1,%ebx
48f43b:	75 e9                	jne    0x48f426
48f43d:	de f9                	fdivrp %st,%st(1)
48f43f:	8d 45 08             	lea    0x8(%ebp),%eax
48f442:	51                   	push   %ecx
48f443:	51                   	push   %ecx
48f444:	dd 1c 24             	fstpl  (%esp)
48f447:	50                   	push   %eax
48f448:	e8 7b ff ff ff       	call   0x48f3c8
48f44d:	0f b7 c0             	movzwl %ax,%eax
48f450:	83 c4 0c             	add    $0xc,%esp
48f453:	66 85 c0             	test   %ax,%ax
48f456:	0f 89 9f 00 00 00    	jns    0x48f4fb
48f45c:	85 db                	test   %ebx,%ebx
48f45e:	0f 84 97 00 00 00    	je     0x48f4fb
48f464:	dd 05 20 f0 40 00    	fldl   0x40f020
48f46a:	51                   	push   %ecx
48f46b:	51                   	push   %ecx
48f46c:	8d 45 08             	lea    0x8(%ebp),%eax
48f46f:	dd 1c 24             	fstpl  (%esp)
48f472:	50                   	push   %eax
48f473:	e8 50 ff ff ff       	call   0x48f3c8
48f478:	0f b7 c0             	movzwl %ax,%eax
48f47b:	33 c9                	xor    %ecx,%ecx
48f47d:	83 c4 0c             	add    $0xc,%esp
48f480:	66 3b c8             	cmp    %ax,%cx
48f483:	7e 76                	jle    0x48f4fb
48f485:	dd 05 20 f0 40 00    	fldl   0x40f020
48f48b:	83 eb 01             	sub    $0x1,%ebx
48f48e:	75 da                	jne    0x48f46a
48f490:	eb 67                	jmp    0x48f4f9
48f492:	dd d9                	fstp   %st(1)
48f494:	85 db                	test   %ebx,%ebx
48f496:	7e 5e                	jle    0x48f4f6
48f498:	33 c0                	xor    %eax,%eax
48f49a:	83 f8 40             	cmp    $0x40,%eax
48f49d:	73 14                	jae    0x48f4b3
48f49f:	f6 c3 01             	test   $0x1,%bl
48f4a2:	74 06                	je     0x48f4aa
48f4a4:	dc 88 30 f0 40 00    	fmull  0x40f030(%eax)
48f4aa:	d1 fb                	sar    $1,%ebx
48f4ac:	83 c0 08             	add    $0x8,%eax
48f4af:	85 db                	test   %ebx,%ebx
48f4b1:	7f e7                	jg     0x48f49a
48f4b3:	51                   	push   %ecx
48f4b4:	51                   	push   %ecx
48f4b5:	8d 45 08             	lea    0x8(%ebp),%eax
48f4b8:	dd 1c 24             	fstpl  (%esp)
48f4bb:	50                   	push   %eax
48f4bc:	e8 07 ff ff ff       	call   0x48f3c8
48f4c1:	0f b7 c0             	movzwl %ax,%eax
48f4c4:	83 c4 0c             	add    $0xc,%esp
48f4c7:	66 85 c0             	test   %ax,%ax
48f4ca:	79 2f                	jns    0x48f4fb
48f4cc:	eb 22                	jmp    0x48f4f0
48f4ce:	dd 05 28 f0 40 00    	fldl   0x40f028
48f4d4:	8d 45 08             	lea    0x8(%ebp),%eax
48f4d7:	51                   	push   %ecx
48f4d8:	51                   	push   %ecx
48f4d9:	dd 1c 24             	fstpl  (%esp)
48f4dc:	50                   	push   %eax
48f4dd:	e8 e6 fe ff ff       	call   0x48f3c8
48f4e2:	0f b7 c0             	movzwl %ax,%eax
48f4e5:	33 c9                	xor    %ecx,%ecx
48f4e7:	83 c4 0c             	add    $0xc,%esp
48f4ea:	66 3b c8             	cmp    %ax,%cx
48f4ed:	7e 0c                	jle    0x48f4fb
48f4ef:	4b                   	dec    %ebx
48f4f0:	85 db                	test   %ebx,%ebx
48f4f2:	7f da                	jg     0x48f4ce
48f4f4:	eb 05                	jmp    0x48f4fb
48f4f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
48f4f9:	dd d8                	fstp   %st(0)
48f4fb:	56                   	push   %esi
48f4fc:	33 f6                	xor    %esi,%esi
48f4fe:	46                   	inc    %esi
48f4ff:	66 85 c0             	test   %ax,%ax
48f502:	74 05                	je     0x48f509
48f504:	66 3b c6             	cmp    %si,%ax
48f507:	75 15                	jne    0x48f51e
48f509:	ff 15 58 80 4a 00    	call   *0x4a8058
48f50f:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
48f515:	8b 45 14             	mov    0x14(%ebp),%eax
48f518:	85 c0                	test   %eax,%eax
48f51a:	74 02                	je     0x48f51e
48f51c:	09 30                	or     %esi,(%eax)
48f51e:	5e                   	pop    %esi
48f51f:	dd 45 08             	fldl   0x8(%ebp)
48f522:	5b                   	pop    %ebx
48f523:	c9                   	leave
48f524:	c3                   	ret
48f525:	8b ff                	mov    %edi,%edi
48f527:	55                   	push   %ebp
48f528:	8b ec                	mov    %esp,%ebp
48f52a:	83 ec 10             	sub    $0x10,%esp
48f52d:	53                   	push   %ebx
48f52e:	56                   	push   %esi
48f52f:	57                   	push   %edi
48f530:	8b 7d 08             	mov    0x8(%ebp),%edi
48f533:	bb ff 00 00 00       	mov    $0xff,%ebx
48f538:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48f53c:	8b c1                	mov    %ecx,%eax
48f53e:	c1 e8 07             	shr    $0x7,%eax
48f541:	0f b6 c0             	movzbl %al,%eax
48f544:	8b f0                	mov    %eax,%esi
48f546:	66 3b c3             	cmp    %bx,%ax
48f549:	75 13                	jne    0x48f55e
48f54b:	f6 c1 7f             	test   $0x7f,%cl
48f54e:	75 06                	jne    0x48f556
48f550:	66 83 3f 00          	cmpw   $0x0,(%edi)
48f554:	74 4c                	je     0x48f5a2
48f556:	6a 02                	push   $0x2
48f558:	58                   	pop    %eax
48f559:	e9 61 01 00 00       	jmp    0x48f6bf
48f55e:	66 85 c0             	test   %ax,%ax
48f561:	75 15                	jne    0x48f578
48f563:	57                   	push   %edi
48f564:	e8 02 05 00 00       	call   0x48fa6b
48f569:	0f b7 f0             	movzwl %ax,%esi
48f56c:	33 c0                	xor    %eax,%eax
48f56e:	59                   	pop    %ecx
48f56f:	66 3b c6             	cmp    %si,%ax
48f572:	0f 8c 45 01 00 00    	jl     0x48f6bd
48f578:	8b 55 0c             	mov    0xc(%ebp),%edx
48f57b:	0f bf c6             	movswl %si,%eax
48f57e:	89 45 f4             	mov    %eax,-0xc(%ebp)
48f581:	85 d2                	test   %edx,%edx
48f583:	7e 25                	jle    0x48f5aa
48f585:	2b d8                	sub    %eax,%ebx
48f587:	3b da                	cmp    %edx,%ebx
48f589:	7f 1f                	jg     0x48f5aa
48f58b:	66 83 7f 02 00       	cmpw   $0x0,0x2(%edi)
48f590:	d9 05 b8 38 4a 00    	flds   0x4a38b8
48f596:	7d 02                	jge    0x48f59a
48f598:	d9 e0                	fchs
48f59a:	d9 5d f8             	fstps  -0x8(%ebp)
48f59d:	d9 45 f8             	flds   -0x8(%ebp)
48f5a0:	d9 1f                	fstps  (%edi)
48f5a2:	33 c0                	xor    %eax,%eax
48f5a4:	40                   	inc    %eax
48f5a5:	e9 15 01 00 00       	jmp    0x48f6bf
48f5aa:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48f5ae:	f7 d8                	neg    %eax
48f5b0:	3b c2                	cmp    %edx,%eax
48f5b2:	7d 1a                	jge    0x48f5ce
48f5b4:	8d 04 32             	lea    (%edx,%esi,1),%eax
48f5b7:	81 e1 7f 80 00 00    	and    $0x807f,%ecx
48f5bd:	c1 e0 07             	shl    $0x7,%eax
48f5c0:	0b c1                	or     %ecx,%eax
48f5c2:	66 89 47 02          	mov    %ax,0x2(%edi)
48f5c6:	83 c8 ff             	or     $0xffffffff,%eax
48f5c9:	e9 f1 00 00 00       	jmp    0x48f6bf
48f5ce:	8b d9                	mov    %ecx,%ebx
48f5d0:	b8 00 80 00 00       	mov    $0x8000,%eax
48f5d5:	83 e1 7f             	and    $0x7f,%ecx
48f5d8:	23 d8                	and    %eax,%ebx
48f5da:	81 c9 80 00 00 00    	or     $0x80,%ecx
48f5e0:	0f b7 c1             	movzwl %cx,%eax
48f5e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
48f5e6:	8b 45 f4             	mov    -0xc(%ebp),%eax
48f5e9:	48                   	dec    %eax
48f5ea:	0f b7 c9             	movzwl %cx,%ecx
48f5ed:	03 c2                	add    %edx,%eax
48f5ef:	83 f8 e8             	cmp    $0xffffffe8,%eax
48f5f2:	0f 8c bc 00 00 00    	jl     0x48f6b4
48f5f8:	85 c0                	test   %eax,%eax
48f5fa:	0f 89 b4 00 00 00    	jns    0x48f6b4
48f600:	0f b7 c0             	movzwl %ax,%eax
48f603:	33 d2                	xor    %edx,%edx
48f605:	89 55 f4             	mov    %edx,-0xc(%ebp)
48f608:	6a 10                	push   $0x10
48f60a:	5e                   	pop    %esi
48f60b:	66 83 f8 f0          	cmp    $0xfff0,%ax
48f60f:	7f 0f                	jg     0x48f620
48f611:	0f b7 17             	movzwl (%edi),%edx
48f614:	03 c6                	add    %esi,%eax
48f616:	66 89 0f             	mov    %cx,(%edi)
48f619:	33 c9                	xor    %ecx,%ecx
48f61b:	89 55 f4             	mov    %edx,-0xc(%ebp)
48f61e:	eb 06                	jmp    0x48f626
48f620:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48f623:	0f b7 c9             	movzwl %cx,%ecx
48f626:	f7 d8                	neg    %eax
48f628:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48f62b:	0f b7 c0             	movzwl %ax,%eax
48f62e:	89 45 fc             	mov    %eax,-0x4(%ebp)
48f631:	0f b7 c1             	movzwl %cx,%eax
48f634:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48f637:	66 85 c9             	test   %cx,%cx
48f63a:	74 40                	je     0x48f67c
48f63c:	0f bf c1             	movswl %cx,%eax
48f63f:	2b f0                	sub    %eax,%esi
48f641:	33 c0                	xor    %eax,%eax
48f643:	89 75 f0             	mov    %esi,-0x10(%ebp)
48f646:	0f b7 37             	movzwl (%edi),%esi
48f649:	8b 4d f0             	mov    -0x10(%ebp),%ecx
48f64c:	66 8b d6             	mov    %si,%dx
48f64f:	66 d3 e2             	shl    %cl,%dx
48f652:	66 39 45 f4          	cmp    %ax,-0xc(%ebp)
48f656:	0f 95 c0             	setne  %al
48f659:	66 0b d0             	or     %ax,%dx
48f65c:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
48f660:	66 d3 e0             	shl    %cl,%ax
48f663:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
48f667:	66 d3 ee             	shr    %cl,%si
48f66a:	66 0b c6             	or     %si,%ax
48f66d:	0f b7 d2             	movzwl %dx,%edx
48f670:	66 89 07             	mov    %ax,(%edi)
48f673:	8b 45 f8             	mov    -0x8(%ebp),%eax
48f676:	66 d3 e8             	shr    %cl,%ax
48f679:	0f b7 c0             	movzwl %ax,%eax
48f67c:	0b c3                	or     %ebx,%eax
48f67e:	b9 00 80 00 00       	mov    $0x8000,%ecx
48f683:	66 89 47 02          	mov    %ax,0x2(%edi)
48f687:	66 3b ca             	cmp    %dx,%cx
48f68a:	72 07                	jb     0x48f693
48f68c:	75 11                	jne    0x48f69f
48f68e:	f6 07 01             	testb  $0x1,(%edi)
48f691:	74 0c                	je     0x48f69f
48f693:	66 83 07 01          	addw   $0x1,(%edi)
48f697:	75 06                	jne    0x48f69f
48f699:	40                   	inc    %eax
48f69a:	e9 23 ff ff ff       	jmp    0x48f5c2
48f69f:	66 3b c3             	cmp    %bx,%ax
48f6a2:	0f 85 1e ff ff ff    	jne    0x48f5c6
48f6a8:	33 c0                	xor    %eax,%eax
48f6aa:	66 39 07             	cmp    %ax,(%edi)
48f6ad:	74 0e                	je     0x48f6bd
48f6af:	e9 12 ff ff ff       	jmp    0x48f5c6
48f6b4:	33 c0                	xor    %eax,%eax
48f6b6:	66 89 5f 02          	mov    %bx,0x2(%edi)
48f6ba:	66 89 07             	mov    %ax,(%edi)
48f6bd:	33 c0                	xor    %eax,%eax
48f6bf:	5f                   	pop    %edi
48f6c0:	5e                   	pop    %esi
48f6c1:	5b                   	pop    %ebx
48f6c2:	c9                   	leave
48f6c3:	c3                   	ret
48f6c4:	8b ff                	mov    %edi,%edi
48f6c6:	55                   	push   %ebp
48f6c7:	8b ec                	mov    %esp,%ebp
48f6c9:	51                   	push   %ecx
48f6ca:	56                   	push   %esi
48f6cb:	8b 75 08             	mov    0x8(%ebp),%esi
48f6ce:	8d 45 fc             	lea    -0x4(%ebp),%eax
48f6d1:	56                   	push   %esi
48f6d2:	50                   	push   %eax
48f6d3:	e8 6a 04 00 00       	call   0x48fb42
48f6d8:	d9 06                	flds   (%esi)
48f6da:	d8 4d 0c             	fmuls  0xc(%ebp)
48f6dd:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
48f6e1:	50                   	push   %eax
48f6e2:	56                   	push   %esi
48f6e3:	d9 1e                	fstps  (%esi)
48f6e5:	e8 3b fe ff ff       	call   0x48f525
48f6ea:	83 c4 10             	add    $0x10,%esp
48f6ed:	5e                   	pop    %esi
48f6ee:	c9                   	leave
48f6ef:	c3                   	ret
48f6f0:	8b ff                	mov    %edi,%edi
48f6f2:	55                   	push   %ebp
48f6f3:	8b ec                	mov    %esp,%ebp
48f6f5:	51                   	push   %ecx
48f6f6:	53                   	push   %ebx
48f6f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
48f6fa:	85 db                	test   %ebx,%ebx
48f6fc:	0f 84 2c 01 00 00    	je     0x48f82e
48f702:	d9 45 08             	flds   0x8(%ebp)
48f705:	d9 ee                	fldz
48f707:	da e9                	fucompp
48f709:	df e0                	fnstsw %ax
48f70b:	f6 c4 44             	test   $0x44,%ah
48f70e:	0f 8b 1a 01 00 00    	jnp    0x48f82e
48f714:	d9 e8                	fld1
48f716:	d9 5d fc             	fstps  -0x4(%ebp)
48f719:	85 db                	test   %ebx,%ebx
48f71b:	0f 89 81 00 00 00    	jns    0x48f7a2
48f721:	f7 db                	neg    %ebx
48f723:	74 1f                	je     0x48f744
48f725:	33 c0                	xor    %eax,%eax
48f727:	83 f8 14             	cmp    $0x14,%eax
48f72a:	73 18                	jae    0x48f744
48f72c:	f6 c3 01             	test   $0x1,%bl
48f72f:	74 0c                	je     0x48f73d
48f731:	d9 80 78 f0 40 00    	flds   0x40f078(%eax)
48f737:	d8 4d fc             	fmuls  -0x4(%ebp)
48f73a:	d9 5d fc             	fstps  -0x4(%ebp)
48f73d:	83 c0 04             	add    $0x4,%eax
48f740:	d1 eb                	shr    $1,%ebx
48f742:	75 e3                	jne    0x48f727
48f744:	d9 45 fc             	flds   -0x4(%ebp)
48f747:	8d 45 08             	lea    0x8(%ebp),%eax
48f74a:	d9 e8                	fld1
48f74c:	de f1                	fdivp  %st,%st(1)
48f74e:	51                   	push   %ecx
48f74f:	d9 5d fc             	fstps  -0x4(%ebp)
48f752:	d9 45 fc             	flds   -0x4(%ebp)
48f755:	d9 1c 24             	fstps  (%esp)
48f758:	50                   	push   %eax
48f759:	e8 66 ff ff ff       	call   0x48f6c4
48f75e:	0f b7 c0             	movzwl %ax,%eax
48f761:	59                   	pop    %ecx
48f762:	59                   	pop    %ecx
48f763:	66 85 c0             	test   %ax,%ax
48f766:	0f 89 9e 00 00 00    	jns    0x48f80a
48f76c:	85 db                	test   %ebx,%ebx
48f76e:	0f 84 96 00 00 00    	je     0x48f80a
48f774:	d9 05 90 f0 40 00    	flds   0x40f090
48f77a:	51                   	push   %ecx
48f77b:	8d 45 08             	lea    0x8(%ebp),%eax
48f77e:	d9 1c 24             	fstps  (%esp)
48f781:	50                   	push   %eax
48f782:	e8 3d ff ff ff       	call   0x48f6c4
48f787:	59                   	pop    %ecx
48f788:	59                   	pop    %ecx
48f789:	0f b7 c0             	movzwl %ax,%eax
48f78c:	33 c9                	xor    %ecx,%ecx
48f78e:	66 3b c8             	cmp    %ax,%cx
48f791:	7e 77                	jle    0x48f80a
48f793:	d9 05 90 f0 40 00    	flds   0x40f090
48f799:	83 eb 01             	sub    $0x1,%ebx
48f79c:	75 dc                	jne    0x48f77a
48f79e:	dd d8                	fstp   %st(0)
48f7a0:	eb 68                	jmp    0x48f80a
48f7a2:	7e 63                	jle    0x48f807
48f7a4:	33 c0                	xor    %eax,%eax
48f7a6:	83 f8 14             	cmp    $0x14,%eax
48f7a9:	73 1a                	jae    0x48f7c5
48f7ab:	f6 c3 01             	test   $0x1,%bl
48f7ae:	74 0c                	je     0x48f7bc
48f7b0:	d9 80 78 f0 40 00    	flds   0x40f078(%eax)
48f7b6:	d8 4d fc             	fmuls  -0x4(%ebp)
48f7b9:	d9 5d fc             	fstps  -0x4(%ebp)
48f7bc:	d1 fb                	sar    $1,%ebx
48f7be:	83 c0 04             	add    $0x4,%eax
48f7c1:	85 db                	test   %ebx,%ebx
48f7c3:	7f e1                	jg     0x48f7a6
48f7c5:	d9 45 fc             	flds   -0x4(%ebp)
48f7c8:	8d 45 08             	lea    0x8(%ebp),%eax
48f7cb:	51                   	push   %ecx
48f7cc:	d9 1c 24             	fstps  (%esp)