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)
48f7cf:	50                   	push   %eax
48f7d0:	e8 ef fe ff ff       	call   0x48f6c4
48f7d5:	0f b7 c0             	movzwl %ax,%eax
48f7d8:	59                   	pop    %ecx
48f7d9:	59                   	pop    %ecx
48f7da:	66 85 c0             	test   %ax,%ax
48f7dd:	79 2b                	jns    0x48f80a
48f7df:	eb 20                	jmp    0x48f801
48f7e1:	d9 05 94 f0 40 00    	flds   0x40f094
48f7e7:	8d 45 08             	lea    0x8(%ebp),%eax
48f7ea:	51                   	push   %ecx
48f7eb:	d9 1c 24             	fstps  (%esp)
48f7ee:	50                   	push   %eax
48f7ef:	e8 d0 fe ff ff       	call   0x48f6c4
48f7f4:	59                   	pop    %ecx
48f7f5:	59                   	pop    %ecx
48f7f6:	0f b7 c0             	movzwl %ax,%eax
48f7f9:	33 c9                	xor    %ecx,%ecx
48f7fb:	66 3b c8             	cmp    %ax,%cx
48f7fe:	7e 0a                	jle    0x48f80a
48f800:	4b                   	dec    %ebx
48f801:	85 db                	test   %ebx,%ebx
48f803:	7f dc                	jg     0x48f7e1
48f805:	eb 03                	jmp    0x48f80a
48f807:	8b 45 fc             	mov    -0x4(%ebp),%eax
48f80a:	56                   	push   %esi
48f80b:	33 f6                	xor    %esi,%esi
48f80d:	46                   	inc    %esi
48f80e:	66 85 c0             	test   %ax,%ax
48f811:	74 05                	je     0x48f818
48f813:	66 3b c6             	cmp    %si,%ax
48f816:	75 15                	jne    0x48f82d
48f818:	ff 15 58 80 4a 00    	call   *0x4a8058
48f81e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
48f824:	8b 45 10             	mov    0x10(%ebp),%eax
48f827:	85 c0                	test   %eax,%eax
48f829:	74 02                	je     0x48f82d
48f82b:	09 30                	or     %esi,(%eax)
48f82d:	5e                   	pop    %esi
48f82e:	d9 45 08             	flds   0x8(%ebp)
48f831:	5b                   	pop    %ebx
48f832:	c9                   	leave
48f833:	c3                   	ret
48f834:	8b ff                	mov    %edi,%edi
48f836:	55                   	push   %ebp
48f837:	8b ec                	mov    %esp,%ebp
48f839:	5d                   	pop    %ebp
48f83a:	e9 96 01 00 00       	jmp    0x48f9d5
48f83f:	8b ff                	mov    %edi,%edi
48f841:	55                   	push   %ebp
48f842:	8b ec                	mov    %esp,%ebp
48f844:	83 ec 18             	sub    $0x18,%esp
48f847:	53                   	push   %ebx
48f848:	57                   	push   %edi
48f849:	8b 7d 08             	mov    0x8(%ebp),%edi
48f84c:	33 db                	xor    %ebx,%ebx
48f84e:	43                   	inc    %ebx
48f84f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f852:	0f b7 47 06          	movzwl 0x6(%edi),%eax
48f856:	8b c8                	mov    %eax,%ecx
48f858:	83 e0 0f             	and    $0xf,%eax
48f85b:	81 e1 00 80 00 00    	and    $0x8000,%ecx
48f861:	8b d0                	mov    %eax,%edx
48f863:	89 4d e8             	mov    %ecx,-0x18(%ebp)
48f866:	8b c8                	mov    %eax,%ecx
48f868:	66 85 c9             	test   %cx,%cx
48f86b:	75 17                	jne    0x48f884
48f86d:	33 c0                	xor    %eax,%eax
48f86f:	66 39 47 04          	cmp    %ax,0x4(%edi)
48f873:	75 0f                	jne    0x48f884
48f875:	66 39 47 02          	cmp    %ax,0x2(%edi)
48f879:	75 09                	jne    0x48f884
48f87b:	66 39 07             	cmp    %ax,(%edi)
48f87e:	0f 84 43 01 00 00    	je     0x48f9c7
48f884:	c7 45 f4 10 00 00 00 	movl   $0x10,-0xc(%ebp)
48f88b:	8b c1                	mov    %ecx,%eax
48f88d:	56                   	push   %esi
48f88e:	66 85 c9             	test   %cx,%cx
48f891:	75 3b                	jne    0x48f8ce
48f893:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
48f897:	0f b7 57 02          	movzwl 0x2(%edi),%edx
48f89b:	0f b7 c1             	movzwl %cx,%eax
48f89e:	33 db                	xor    %ebx,%ebx
48f8a0:	0f b7 f1             	movzwl %cx,%esi
48f8a3:	8b ce                	mov    %esi,%ecx
48f8a5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48f8a8:	0f b7 ca             	movzwl %dx,%ecx
48f8ab:	0f b7 17             	movzwl (%edi),%edx
48f8ae:	66 89 1f             	mov    %bx,(%edi)
48f8b1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
48f8b4:	83 eb 10             	sub    $0x10,%ebx
48f8b7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f8ba:	66 85 c0             	test   %ax,%ax
48f8bd:	74 dc                	je     0x48f89b
48f8bf:	66 89 4f 04          	mov    %cx,0x4(%edi)
48f8c3:	8b c6                	mov    %esi,%eax
48f8c5:	8b ce                	mov    %esi,%ecx
48f8c7:	66 89 57 02          	mov    %dx,0x2(%edi)
48f8cb:	0f b7 d1             	movzwl %cx,%edx
48f8ce:	0f b7 d2             	movzwl %dx,%edx
48f8d1:	8b f2                	mov    %edx,%esi
48f8d3:	0f b7 c8             	movzwl %ax,%ecx
48f8d6:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
48f8da:	0f 83 82 00 00 00    	jae    0x48f962
48f8e0:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48f8e4:	0f b7 57 04          	movzwl 0x4(%edi),%edx
48f8e8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48f8eb:	eb 03                	jmp    0x48f8f0
48f8ed:	8b 55 f8             	mov    -0x8(%ebp),%edx
48f8f0:	66 8b c2             	mov    %dx,%ax
48f8f3:	66 c1 e9 0f          	shr    $0xf,%cx
48f8f7:	66 c1 e8 0f          	shr    $0xf,%ax
48f8fb:	03 f6                	add    %esi,%esi
48f8fd:	66 0b f0             	or     %ax,%si
48f900:	0f b7 c6             	movzwl %si,%eax
48f903:	89 45 f0             	mov    %eax,-0x10(%ebp)
48f906:	0f b7 c6             	movzwl %si,%eax
48f909:	89 45 f4             	mov    %eax,-0xc(%ebp)
48f90c:	0f b7 c0             	movzwl %ax,%eax
48f90f:	89 45 ec             	mov    %eax,-0x14(%ebp)
48f912:	8d 04 12             	lea    (%edx,%edx,1),%eax
48f915:	0f b7 17             	movzwl (%edi),%edx
48f918:	66 0b c8             	or     %ax,%cx
48f91b:	0f b7 c1             	movzwl %cx,%eax
48f91e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48f921:	89 45 f8             	mov    %eax,-0x8(%ebp)
48f924:	03 c9                	add    %ecx,%ecx
48f926:	66 8b c2             	mov    %dx,%ax
48f929:	66 c1 e8 0f          	shr    $0xf,%ax
48f92d:	66 0b c8             	or     %ax,%cx
48f930:	8d 04 12             	lea    (%edx,%edx,1),%eax
48f933:	6a 10                	push   $0x10
48f935:	66 89 07             	mov    %ax,(%edi)
48f938:	4b                   	dec    %ebx
48f939:	58                   	pop    %eax
48f93a:	0f b7 c9             	movzwl %cx,%ecx
48f93d:	66 3b f0             	cmp    %ax,%si
48f940:	8b 75 f4             	mov    -0xc(%ebp),%esi
48f943:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48f946:	72 a5                	jb     0x48f8ed
48f948:	8b 45 f8             	mov    -0x8(%ebp),%eax
48f94b:	66 89 47 04          	mov    %ax,0x4(%edi)
48f94f:	8b 45 f0             	mov    -0x10(%ebp),%eax
48f952:	66 89 4f 02          	mov    %cx,0x2(%edi)
48f956:	0f b7 c8             	movzwl %ax,%ecx
48f959:	8b 45 ec             	mov    -0x14(%ebp),%eax
48f95c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
48f95f:	0f b7 f0             	movzwl %ax,%esi
48f962:	6a 20                	push   $0x20
48f964:	0f b7 d6             	movzwl %si,%edx
48f967:	5e                   	pop    %esi
48f968:	0f b7 c1             	movzwl %cx,%eax
48f96b:	66 3b f1             	cmp    %cx,%si
48f96e:	77 53                	ja     0x48f9c3
48f970:	0f b7 77 02          	movzwl 0x2(%edi),%esi
48f974:	8b da                	mov    %edx,%ebx
48f976:	0f b7 57 04          	movzwl 0x4(%edi),%edx
48f97a:	66 8b 07             	mov    (%edi),%ax
48f97d:	8b ce                	mov    %esi,%ecx
48f97f:	66 d1 e8             	shr    $1,%ax
48f982:	c1 e1 0f             	shl    $0xf,%ecx
48f985:	66 0b c8             	or     %ax,%cx
48f988:	66 d1 ee             	shr    $1,%si
48f98b:	8b c2                	mov    %edx,%eax
48f98d:	66 89 0f             	mov    %cx,(%edi)
48f990:	c1 e0 0f             	shl    $0xf,%eax
48f993:	66 0b c6             	or     %si,%ax
48f996:	66 d1 ea             	shr    $1,%dx
48f999:	0f b7 f0             	movzwl %ax,%esi
48f99c:	8b c3                	mov    %ebx,%eax
48f99e:	c1 e0 0f             	shl    $0xf,%eax
48f9a1:	66 0b d0             	or     %ax,%dx
48f9a4:	66 d1 eb             	shr    $1,%bx
48f9a7:	ff 45 fc             	incl   -0x4(%ebp)
48f9aa:	6a 20                	push   $0x20