48f229:	8b 45 f0             	mov    -0x10(%ebp),%eax
48f22c:	48                   	dec    %eax
48f22d:	03 c1                	add    %ecx,%eax
48f22f:	83 f8 cb             	cmp    $0xffffffcb,%eax
48f232:	0f 8c 7d 01 00 00    	jl     0x48f3b5
48f238:	85 c0                	test   %eax,%eax
48f23a:	0f 89 75 01 00 00    	jns    0x48f3b5
48f240:	0f b7 f0             	movzwl %ax,%esi
48f243:	33 c9                	xor    %ecx,%ecx
48f245:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48f248:	66 83 fe f0          	cmp    $0xfff0,%si
48f24c:	7f 6a                	jg     0x48f2b8
48f24e:	0f b7 c2             	movzwl %dx,%eax
48f251:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
48f255:	89 45 f4             	mov    %eax,-0xc(%ebp)
48f258:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
48f25c:	89 45 f0             	mov    %eax,-0x10(%ebp)
48f25f:	b8 f0 ff 00 00       	mov    $0xfff0,%eax
48f264:	66 2b c6             	sub    %si,%ax
48f267:	66 c1 e8 04          	shr    $0x4,%ax
48f26b:	66 40                	inc    %ax
48f26d:	0f b7 f8             	movzwl %ax,%edi
48f270:	c1 e0 04             	shl    $0x4,%eax
48f273:	03 f0                	add    %eax,%esi
48f275:	89 7d f8             	mov    %edi,-0x8(%ebp)
48f278:	89 75 e8             	mov    %esi,-0x18(%ebp)
48f27b:	8b f9                	mov    %ecx,%edi
48f27d:	8b 75 f0             	mov    -0x10(%ebp),%esi
48f280:	33 c0                	xor    %eax,%eax
48f282:	66 85 ff             	test   %di,%di
48f285:	0f 95 c0             	setne  %al
48f288:	66 0b 03             	or     (%ebx),%ax
48f28b:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
48f28f:	0f b7 f8             	movzwl %ax,%edi
48f292:	8b 45 f4             	mov    -0xc(%ebp),%eax
48f295:	66 89 33             	mov    %si,(%ebx)
48f298:	0f b7 f2             	movzwl %dx,%esi
48f29b:	0f b7 d0             	movzwl %ax,%edx
48f29e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
48f2a1:	75 dd                	jne    0x48f280
48f2a3:	89 7d fc             	mov    %edi,-0x4(%ebp)
48f2a6:	8b c1                	mov    %ecx,%eax
48f2a8:	8b 7d ec             	mov    -0x14(%ebp),%edi
48f2ab:	66 89 73 02          	mov    %si,0x2(%ebx)
48f2af:	8b 75 e8             	mov    -0x18(%ebp),%esi
48f2b2:	66 89 53 04          	mov    %dx,0x4(%ebx)
48f2b6:	eb 06                	jmp    0x48f2be
48f2b8:	8b 45 e8             	mov    -0x18(%ebp),%eax
48f2bb:	0f b7 c0             	movzwl %ax,%eax
48f2be:	f7 de                	neg    %esi
48f2c0:	89 45 f0             	mov    %eax,-0x10(%ebp)
48f2c3:	0f b7 d6             	movzwl %si,%edx
48f2c6:	89 55 f4             	mov    %edx,-0xc(%ebp)
48f2c9:	0f b7 c0             	movzwl %ax,%eax
48f2cc:	66 85 d2             	test   %dx,%dx
48f2cf:	0f 84 85 00 00 00    	je     0x48f35a
48f2d5:	0f b7 33             	movzwl (%ebx),%esi
48f2d8:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
48f2dc:	0f bf c2             	movswl %dx,%eax
48f2df:	66 8b d6             	mov    %si,%dx
48f2e2:	6a 10                	push   $0x10
48f2e4:	59                   	pop    %ecx
48f2e5:	2b c8                	sub    %eax,%ecx
48f2e7:	33 c0                	xor    %eax,%eax
48f2e9:	66 d3 e2             	shl    %cl,%dx
48f2ec:	66 39 45 fc          	cmp    %ax,-0x4(%ebp)
48f2f0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48f2f3:	66 8b 4d f4          	mov    -0xc(%ebp),%cx
48f2f7:	0f 95 c0             	setne  %al
48f2fa:	66 0b d0             	or     %ax,%dx
48f2fd:	66 d3 ee             	shr    %cl,%si
48f300:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48f303:	0f b7 c2             	movzwl %dx,%eax
48f306:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
48f30a:	89 45 fc             	mov    %eax,-0x4(%ebp)
48f30d:	66 8b c7             	mov    %di,%ax
48f310:	66 d3 e0             	shl    %cl,%ax
48f313:	66 0b f0             	or     %ax,%si
48f316:	66 8b c2             	mov    %dx,%ax
48f319:	66 89 33             	mov    %si,(%ebx)
48f31c:	8b 75 f4             	mov    -0xc(%ebp),%esi
48f31f:	66 8b ce             	mov    %si,%cx
48f322:	66 d3 ef             	shr    %cl,%di
48f325:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48f328:	66 d3 e0             	shl    %cl,%ax
48f32b:	66 8b ce             	mov    %si,%cx
48f32e:	8b 75 f0             	mov    -0x10(%ebp),%esi
48f331:	66 0b f8             	or     %ax,%di
48f334:	66 d3 ea             	shr    %cl,%dx
48f337:	66 8b c6             	mov    %si,%ax
48f33a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48f33d:	66 d3 e0             	shl    %cl,%ax
48f340:	66 8b 4d f4          	mov    -0xc(%ebp),%cx
48f344:	66 0b d0             	or     %ax,%dx
48f347:	66 d3 ee             	shr    %cl,%si
48f34a:	33 c9                	xor    %ecx,%ecx
48f34c:	66 89 7b 02          	mov    %di,0x2(%ebx)
48f350:	8b 7d ec             	mov    -0x14(%ebp),%edi
48f353:	66 89 53 04          	mov    %dx,0x4(%ebx)
48f357:	0f b7 c6             	movzwl %si,%eax
48f35a:	8b 55 fc             	mov    -0x4(%ebp),%edx
48f35d:	0b c7                	or     %edi,%eax
48f35f:	be 00 80 00 00       	mov    $0x8000,%esi
48f364:	66 89 43 06          	mov    %ax,0x6(%ebx)
48f368:	66 3b f2             	cmp    %dx,%si
48f36b:	72 07                	jb     0x48f374
48f36d:	75 1f                	jne    0x48f38e
48f36f:	f6 03 01             	testb  $0x1,(%ebx)
48f372:	74 1a                	je     0x48f38e
48f374:	66 83 03 01          	addw   $0x1,(%ebx)
48f378:	75 14                	jne    0x48f38e
48f37a:	66 83 43 02 01       	addw   $0x1,0x2(%ebx)
48f37f:	75 0d                	jne    0x48f38e
48f381:	66 83 43 04 01       	addw   $0x1,0x4(%ebx)
48f386:	75 06                	jne    0x48f38e
48f388:	40                   	inc    %eax
48f389:	e9 77 fe ff ff       	jmp    0x48f205
48f38e:	66 3b c7             	cmp    %di,%ax
48f391:	0f 85 72 fe ff ff    	jne    0x48f209
48f397:	66 39 4b 04          	cmp    %cx,0x4(%ebx)
48f39b:	0f 85 68 fe ff ff    	jne    0x48f209
48f3a1:	66 39 4b 02          	cmp    %cx,0x2(%ebx)
48f3a5:	0f 85 5e fe ff ff    	jne    0x48f209
48f3ab:	66 39 0b             	cmp    %cx,(%ebx)
48f3ae:	74 11                	je     0x48f3c1
48f3b0:	e9 54 fe ff ff       	jmp    0x48f209
48f3b5:	33 c0                	xor    %eax,%eax
48f3b7:	66 89 7b 06          	mov    %di,0x6(%ebx)
48f3bb:	89 43 02             	mov    %eax,0x2(%ebx)
48f3be:	66 89 03             	mov    %ax,(%ebx)
48f3c1:	33 c0                	xor    %eax,%eax
48f3c3:	5f                   	pop    %edi
48f3c4:	5e                   	pop    %esi
48f3c5:	5b                   	pop    %ebx
48f3c6:	c9                   	leave
48f3c7:	c3                   	ret
48f3c8:	8b ff                	mov    %edi,%edi
48f3ca:	55                   	push   %ebp
48f3cb:	8b ec                	mov    %esp,%ebp
48f3cd:	51                   	push   %ecx
48f3ce:	56                   	push   %esi
48f3cf:	8b 75 08             	mov    0x8(%ebp),%esi
48f3d2:	8d 45 fc             	lea    -0x4(%ebp),%eax
48f3d5:	56                   	push   %esi
48f3d6:	50                   	push   %eax
48f3d7:	e8 f9 05 00 00       	call   0x48f9d5
48f3dc:	dd 06                	fldl   (%esi)
48f3de:	dc 4d 0c             	fmull  0xc(%ebp)
48f3e1:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
48f3e5:	50                   	push   %eax
48f3e6:	56                   	push   %esi
48f3e7:	dd 1e                	fstpl  (%esi)
48f3e9:	e8 73 fd ff ff       	call   0x48f161
48f3ee:	83 c4 10             	add    $0x10,%esp
48f3f1:	5e                   	pop    %esi
48f3f2:	c9                   	leave
48f3f3:	c3                   	ret
48f3f4:	8b ff                	mov    %edi,%edi
48f3f6:	55                   	push   %ebp
48f3f7:	8b ec                	mov    %esp,%ebp
48f3f9:	51                   	push   %ecx
48f3fa:	53                   	push   %ebx
48f3fb:	8b 5d 10             	mov    0x10(%ebp),%ebx
48f3fe:	85 db                	test   %ebx,%ebx
48f400:	0f 84 19 01 00 00    	je     0x48f51f
48f406:	dd 45 08             	fldl   0x8(%ebp)
48f409:	d9 ee                	fldz
48f40b:	da e9                	fucompp
48f40d:	df e0                	fnstsw %ax
48f40f:	f6 c4 44             	test   $0x44,%ah
48f412:	0f 8b 07 01 00 00    	jnp    0x48f51f
48f418:	d9 e8                	fld1
48f41a:	d9 c0                	fld    %st(0)
48f41c:	85 db                	test   %ebx,%ebx
48f41e:	79 72                	jns    0x48f492
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