48041d:	8b 5d 90             	mov    -0x70(%ebp),%ebx
480420:	89 5d a0             	mov    %ebx,-0x60(%ebp)
480423:	8b 5d d0             	mov    -0x30(%ebp),%ebx
480426:	89 5d a8             	mov    %ebx,-0x58(%ebp)
480429:	bb 01 00 00 00       	mov    $0x1,%ebx
48042e:	89 5d b0             	mov    %ebx,-0x50(%ebp)
480431:	3b c3                	cmp    %ebx,%eax
480433:	0f 8e db 00 00 00    	jle    0x480514
480439:	8b 4d 28             	mov    0x28(%ebp),%ecx
48043c:	8d 3c 36             	lea    (%esi,%esi,1),%edi
48043f:	89 7d bc             	mov    %edi,-0x44(%ebp)
480442:	8b 71 20             	mov    0x20(%ecx),%esi
480445:	57                   	push   %edi
480446:	ff 75 e0             	push   -0x20(%ebp)
480449:	52                   	push   %edx
48044a:	e8 31 ea f9 ff       	call   0x41ee80
48044f:	8b 45 28             	mov    0x28(%ebp),%eax
480452:	8b ce                	mov    %esi,%ecx
480454:	2b 4d c0             	sub    -0x40(%ebp),%ecx
480457:	8b 50 10             	mov    0x10(%eax),%edx
48045a:	8b 40 3c             	mov    0x3c(%eax),%eax
48045d:	d1 f9                	sar    $1,%ecx
48045f:	2b c1                	sub    %ecx,%eax
480461:	8b 4d 28             	mov    0x28(%ebp),%ecx
480464:	83 c0 9c             	add    $0xffffff9c,%eax
480467:	83 c4 0c             	add    $0xc,%esp
48046a:	8d 04 42             	lea    (%edx,%eax,2),%eax
48046d:	39 41 20             	cmp    %eax,0x20(%ecx)
480470:	76 4c                	jbe    0x4804be
480472:	8b 45 c0             	mov    -0x40(%ebp),%eax
480475:	2b c2                	sub    %edx,%eax
480477:	d1 f8                	sar    $1,%eax
480479:	2b f2                	sub    %edx,%esi
48047b:	89 45 c0             	mov    %eax,-0x40(%ebp)
48047e:	d1 fe                	sar    $1,%esi
480480:	e8 10 06 ff ff       	call   0x470a95
480485:	8b 4d 0c             	mov    0xc(%ebp),%ecx
480488:	89 01                	mov    %eax,(%ecx)
48048a:	85 c0                	test   %eax,%eax
48048c:	0f 85 5a 83 f8 ff    	jne    0x4087ec
480492:	8b 45 28             	mov    0x28(%ebp),%eax
480495:	8b 4d c0             	mov    -0x40(%ebp),%ecx
480498:	8b 50 10             	mov    0x10(%eax),%edx
48049b:	8b 40 3c             	mov    0x3c(%eax),%eax
48049e:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
4804a1:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4804a4:	8d 34 72             	lea    (%edx,%esi,2),%esi
4804a7:	8b ce                	mov    %esi,%ecx
4804a9:	2b 4d c0             	sub    -0x40(%ebp),%ecx
4804ac:	d1 f9                	sar    $1,%ecx
4804ae:	2b c1                	sub    %ecx,%eax
4804b0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4804b3:	83 c0 9c             	add    $0xffffff9c,%eax
4804b6:	8d 04 42             	lea    (%edx,%eax,2),%eax
4804b9:	39 41 20             	cmp    %eax,0x20(%ecx)
4804bc:	77 b4                	ja     0x480472
4804be:	39 75 c0             	cmp    %esi,-0x40(%ebp)
4804c1:	73 28                	jae    0x4804eb
4804c3:	8b 55 ec             	mov    -0x14(%ebp),%edx
4804c6:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4804c9:	66 8b 0b             	mov    (%ebx),%cx
4804cc:	8b 7d 28             	mov    0x28(%ebp),%edi
4804cf:	66 03 ca             	add    %dx,%cx
4804d2:	8b 47 20             	mov    0x20(%edi),%eax
4804d5:	83 c3 02             	add    $0x2,%ebx
4804d8:	66 89 08             	mov    %cx,(%eax)
4804db:	8b cf                	mov    %edi,%ecx
4804dd:	83 41 20 02          	addl   $0x2,0x20(%ecx)
4804e1:	3b de                	cmp    %esi,%ebx
4804e3:	72 e4                	jb     0x4804c9
4804e5:	8b 5d b0             	mov    -0x50(%ebp),%ebx
4804e8:	8b 7d bc             	mov    -0x44(%ebp),%edi
4804eb:	8b 55 f8             	mov    -0x8(%ebp),%edx
4804ee:	8b 45 ac             	mov    -0x54(%ebp),%eax
4804f1:	89 75 c0             	mov    %esi,-0x40(%ebp)
4804f4:	8b 75 ec             	mov    -0x14(%ebp),%esi
4804f7:	43                   	inc    %ebx
4804f8:	8d 14 72             	lea    (%edx,%esi,2),%edx
4804fb:	89 55 f8             	mov    %edx,-0x8(%ebp)
4804fe:	89 5d b0             	mov    %ebx,-0x50(%ebp)
480501:	3b d8                	cmp    %eax,%ebx
480503:	0f 8c 39 ff ff ff    	jl     0x480442
480509:	8b 7d fc             	mov    -0x4(%ebp),%edi
48050c:	8b 5d e8             	mov    -0x18(%ebp),%ebx
48050f:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
480512:	eb 07                	jmp    0x48051b
480514:	8b 5d e8             	mov    -0x18(%ebp),%ebx
480517:	eb 02                	jmp    0x48051b
480519:	dd d8                	fstp   %st(0)
48051b:	85 c9                	test   %ecx,%ecx
48051d:	7e 05                	jle    0x480524
48051f:	2b c8                	sub    %eax,%ecx
480521:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
480524:	8b 45 c4             	mov    -0x3c(%ebp),%eax
480527:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48052a:	e9 66 81 f8 ff       	jmp    0x408695
48052f:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
480535:	83 c1 05             	add    $0x5,%ecx
480538:	89 4d bc             	mov    %ecx,-0x44(%ebp)
48053b:	0f af 4d c4          	imul   -0x3c(%ebp),%ecx
48053f:	db 45 bc             	fildl  -0x44(%ebp)
480542:	dd 5d b8             	fstpl  -0x48(%ebp)
480545:	dd 45 b8             	fldl   -0x48(%ebp)
480548:	db 45 c4             	fildl  -0x3c(%ebp)
48054b:	dd 5d b8             	fstpl  -0x48(%ebp)
48054e:	83 e9 04             	sub    $0x4,%ecx
480551:	dc 4d b8             	fmull  -0x48(%ebp)
480554:	dc 1d f8 69 4b 00    	fcompl 0x4b69f8
48055a:	df e0                	fnstsw %ax
48055c:	f6 c4 41             	test   $0x41,%ah
48055f:	0f 84 47 1b 00 00    	je     0x4820ac
480565:	8b 7d 2c             	mov    0x2c(%ebp),%edi
480568:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
48056d:	8b 37                	mov    (%edi),%esi
48056f:	2b c6                	sub    %esi,%eax
480571:	3b c1                	cmp    %ecx,%eax
480573:	0f 8c 33 1b 00 00    	jl     0x4820ac
480579:	8d 04 31             	lea    (%ecx,%esi,1),%eax
48057c:	89 07                	mov    %eax,(%edi)
48057e:	8b 7d fc             	mov    -0x4(%ebp),%edi
480581:	e9 33 81 f8 ff       	jmp    0x4086b9
480586:	8b 7d f0             	mov    -0x10(%ebp),%edi
480589:	81 c7 92 00 00 00    	add    $0x92,%edi
48058f:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
480592:	89 7d bc             	mov    %edi,-0x44(%ebp)
480595:	89 4d b0             	mov    %ecx,-0x50(%ebp)
480598:	8b 45 28             	mov    0x28(%ebp),%eax
48059b:	83 c2 02             	add    $0x2,%edx
48059e:	8b 70 20             	mov    0x20(%eax),%esi
4805a1:	66 89 7a fe          	mov    %di,-0x2(%edx)
4805a5:	89 55 f8             	mov    %edx,-0x8(%ebp)
4805a8:	85 db                	test   %ebx,%ebx
4805aa:	74 28                	je     0x4805d4
4805ac:	b8 83 00 00 00       	mov    $0x83,%eax
4805b1:	66 89 02             	mov    %ax,(%edx)
4805b4:	83 c2 02             	add    $0x2,%edx
4805b7:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4805bb:	75 04                	jne    0x4805c1
4805bd:	33 c0                	xor    %eax,%eax
4805bf:	eb 07                	jmp    0x4805c8
4805c1:	8b c2                	mov    %edx,%eax
4805c3:	2b 45 e8             	sub    -0x18(%ebp),%eax
4805c6:	d1 f8                	sar    $1,%eax
4805c8:	89 55 e8             	mov    %edx,-0x18(%ebp)
4805cb:	66 89 02             	mov    %ax,(%edx)
4805ce:	83 c2 02             	add    $0x2,%edx
4805d1:	89 55 f8             	mov    %edx,-0x8(%ebp)
4805d4:	51                   	push   %ecx
4805d5:	ff 75 e0             	push   -0x20(%ebp)
4805d8:	52                   	push   %edx
4805d9:	e8 a2 e8 f9 ff       	call   0x41ee80
4805de:	8b 45 28             	mov    0x28(%ebp),%eax
4805e1:	8b ce                	mov    %esi,%ecx
4805e3:	2b 4d c0             	sub    -0x40(%ebp),%ecx
4805e6:	8b 50 10             	mov    0x10(%eax),%edx
4805e9:	8b 40 3c             	mov    0x3c(%eax),%eax
4805ec:	d1 f9                	sar    $1,%ecx
4805ee:	2b c1                	sub    %ecx,%eax
4805f0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4805f3:	83 c0 9c             	add    $0xffffff9c,%eax
4805f6:	83 c4 0c             	add    $0xc,%esp
4805f9:	8d 04 42             	lea    (%edx,%eax,2),%eax
4805fc:	39 41 20             	cmp    %eax,0x20(%ecx)
4805ff:	76 4c                	jbe    0x48064d
480601:	8b 45 c0             	mov    -0x40(%ebp),%eax
480604:	2b c2                	sub    %edx,%eax
480606:	d1 f8                	sar    $1,%eax
480608:	2b f2                	sub    %edx,%esi
48060a:	89 45 c0             	mov    %eax,-0x40(%ebp)
48060d:	d1 fe                	sar    $1,%esi
48060f:	e8 81 04 ff ff       	call   0x470a95
480614:	8b 4d 0c             	mov    0xc(%ebp),%ecx
480617:	89 01                	mov    %eax,(%ecx)
480619:	85 c0                	test   %eax,%eax
48061b:	0f 85 cb 81 f8 ff    	jne    0x4087ec
480621:	8b 45 28             	mov    0x28(%ebp),%eax
480624:	8b 4d c0             	mov    -0x40(%ebp),%ecx
480627:	8b 50 10             	mov    0x10(%eax),%edx
48062a:	8b 40 3c             	mov    0x3c(%eax),%eax
48062d:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
480630:	89 4d c0             	mov    %ecx,-0x40(%ebp)
480633:	8d 34 72             	lea    (%edx,%esi,2),%esi
480636:	8b ce                	mov    %esi,%ecx
480638:	2b 4d c0             	sub    -0x40(%ebp),%ecx
48063b:	d1 f9                	sar    $1,%ecx
48063d:	2b c1                	sub    %ecx,%eax
48063f:	8b 4d 28             	mov    0x28(%ebp),%ecx
480642:	83 c0 9c             	add    $0xffffff9c,%eax
480645:	8d 04 42             	lea    (%edx,%eax,2),%eax
480648:	39 41 20             	cmp    %eax,0x20(%ecx)
48064b:	77 b4                	ja     0x480601
48064d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
480650:	3b ce                	cmp    %esi,%ecx
480652:	73 37                	jae    0x48068b
480654:	8b 55 ec             	mov    -0x14(%ebp),%edx
480657:	8b 7d 28             	mov    0x28(%ebp),%edi
48065a:	66 8b 09             	mov    (%ecx),%cx
48065d:	33 c0                	xor    %eax,%eax
48065f:	85 db                	test   %ebx,%ebx
480661:	0f 95 c0             	setne  %al
480664:	8d 04 45 01 00 00 00 	lea    0x1(,%eax,2),%eax
48066b:	66 03 c8             	add    %ax,%cx
48066e:	8b 47 20             	mov    0x20(%edi),%eax
480671:	66 03 ca             	add    %dx,%cx
480674:	66 89 08             	mov    %cx,(%eax)
480677:	8b 4d c0             	mov    -0x40(%ebp),%ecx
48067a:	83 47 20 02          	addl   $0x2,0x20(%edi)
48067e:	83 c1 02             	add    $0x2,%ecx
480681:	89 4d c0             	mov    %ecx,-0x40(%ebp)
480684:	3b ce                	cmp    %esi,%ecx
480686:	72 d2                	jb     0x48065a
480688:	8b 7d bc             	mov    -0x44(%ebp),%edi
48068b:	4b                   	dec    %ebx
48068c:	8b 55 f8             	mov    -0x8(%ebp),%edx
48068f:	8b 45 ec             	mov    -0x14(%ebp),%eax
480692:	8b 4d b0             	mov    -0x50(%ebp),%ecx
480695:	8d 14 42             	lea    (%edx,%eax,2),%edx
480698:	89 75 c0             	mov    %esi,-0x40(%ebp)
48069b:	89 55 f8             	mov    %edx,-0x8(%ebp)
48069e:	0f 89 f4 fe ff ff    	jns    0x480598
4806a4:	8b 7d fc             	mov    -0x4(%ebp),%edi
4806a7:	e9 0a 80 f8 ff       	jmp    0x4086b6
4806ac:	8b ca                	mov    %edx,%ecx
4806ae:	2b cb                	sub    %ebx,%ecx
4806b0:	d1 f9                	sar    $1,%ecx
4806b2:	41                   	inc    %ecx
4806b3:	8b f2                	mov    %edx,%esi
4806b5:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
4806b8:	2b f0                	sub    %eax,%esi
4806ba:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4806be:	85 c0                	test   %eax,%eax
4806c0:	75 04                	jne    0x4806c6
4806c2:	33 db                	xor    %ebx,%ebx
4806c4:	eb 05                	jmp    0x4806cb
4806c6:	f7 d8                	neg    %eax
4806c8:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
4806cb:	b8 78 00 00 00       	mov    $0x78,%eax
4806d0:	66 89 02             	mov    %ax,(%edx)
4806d3:	66 89 4a 02          	mov    %cx,0x2(%edx)
4806d7:	83 c2 04             	add    $0x4,%edx
4806da:	66 89 4e 02          	mov    %cx,0x2(%esi)
4806de:	85 db                	test   %ebx,%ebx
4806e0:	75 ca                	jne    0x4806ac
4806e2:	e9 1a 7e f8 ff       	jmp    0x408501
4806e7:	0f b7 42 fe          	movzwl -0x2(%edx),%eax
4806eb:	8d 5a fc             	lea    -0x4(%edx),%ebx
4806ee:	03 c0                	add    %eax,%eax
4806f0:	8b fb                	mov    %ebx,%edi
4806f2:	2b f8                	sub    %eax,%edi
4806f4:	be 81 00 00 00       	mov    $0x81,%esi
4806f9:	0f b7 07             	movzwl (%edi),%eax
4806fc:	66 3b c6             	cmp    %si,%ax
4806ff:	74 0a                	je     0x48070b
480701:	be 82 00 00 00       	mov    $0x82,%esi
480706:	66 3b c6             	cmp    %si,%ax
480709:	75 10                	jne    0x48071b
48070b:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
48070f:	74 0a                	je     0x48071b
480711:	b8 83 00 00 00       	mov    $0x83,%eax
480716:	66 89 07             	mov    %ax,(%edi)
480719:	eb 1c                	jmp    0x480737
48071b:	be 81 00 00 00       	mov    $0x81,%esi
480720:	66 3b c6             	cmp    %si,%ax
480723:	0f 84 04 01 00 00    	je     0x48082d
480729:	be 82 00 00 00       	mov    $0x82,%esi
48072e:	66 3b c6             	cmp    %si,%ax
480731:	0f 84 f6 00 00 00    	je     0x48082d
480737:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
48073b:	75 34                	jne    0x480771
48073d:	8b f7                	mov    %edi,%esi
48073f:	6a 00                	push   $0x0
480741:	ff 75 28             	push   0x28(%ebp)
480744:	8b d3                	mov    %ebx,%edx
480746:	ff 75 dc             	push   -0x24(%ebp)
480749:	8b ce                	mov    %esi,%ecx
48074b:	e8 d2 81 f8 ff       	call   0x408922
480750:	83 c4 0c             	add    $0xc,%esp
480753:	85 c0                	test   %eax,%eax
480755:	75 10                	jne    0x480767
480757:	0f b7 46 02          	movzwl 0x2(%esi),%eax
48075b:	66 83 3c 46 77       	cmpw   $0x77,(%esi,%eax,2)
480760:	8d 34 46             	lea    (%esi,%eax,2),%esi
480763:	74 da                	je     0x48073f
480765:	eb 04                	jmp    0x48076b
480767:	66 83 07 05          	addw   $0x5,(%edi)
48076b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48076e:	8b 55 f8             	mov    -0x8(%ebp),%edx
480771:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
480775:	0f 84 a1 00 00 00    	je     0x48081c
48077b:	0f b7 07             	movzwl (%edi),%eax
48077e:	be 87 00 00 00       	mov    $0x87,%esi
480783:	66 3b c6             	cmp    %si,%ax
480786:	74 1b                	je     0x4807a3
480788:	be 8c 00 00 00       	mov    $0x8c,%esi
48078d:	66 3b c6             	cmp    %si,%ax
480790:	74 11                	je     0x4807a3
480792:	40                   	inc    %eax
480793:	66 89 07             	mov    %ax,(%edi)
480796:	b8 7b 00 00 00       	mov    $0x7b,%eax
48079b:	66 89 03             	mov    %ax,(%ebx)
48079e:	8b 5d 28             	mov    0x28(%ebp),%ebx
4807a1:	eb 5b                	jmp    0x4807fe
4807a3:	ff 75 c0             	push   -0x40(%ebp)
4807a6:	8b 5d 28             	mov    0x28(%ebp),%ebx
4807a9:	8b f2                	mov    %edx,%esi
4807ab:	33 c0                	xor    %eax,%eax
4807ad:	53                   	push   %ebx
4807ae:	ff 75 dc             	push   -0x24(%ebp)
4807b1:	66 89 02             	mov    %ax,(%edx)
4807b4:	2b f7                	sub    %edi,%esi
4807b6:	8d 50 02             	lea    0x2(%eax),%edx
4807b9:	8b cf                	mov    %edi,%ecx
4807bb:	d1 fe                	sar    $1,%esi
4807bd:	e8 37 dc f9 ff       	call   0x41e3f9
4807c2:	83 c4 0c             	add    $0xc,%esp
4807c5:	8d 04 36             	lea    (%esi,%esi,1),%eax
4807c8:	50                   	push   %eax
4807c9:	8d 47 04             	lea    0x4(%edi),%eax
4807cc:	57                   	push   %edi
4807cd:	50                   	push   %eax
4807ce:	e8 ad 57 fa ff       	call   0x425f80
4807d3:	8b 55 f8             	mov    -0x8(%ebp),%edx
4807d6:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4807d9:	b8 84 00 00 00       	mov    $0x84,%eax
4807de:	66 89 07             	mov    %ax,(%edi)
4807e1:	83 c6 02             	add    $0x2,%esi
4807e4:	b8 7b 00 00 00       	mov    $0x7b,%eax
4807e9:	66 89 42 04          	mov    %ax,0x4(%edx)
4807ed:	66 89 72 06          	mov    %si,0x6(%edx)
4807f1:	83 c4 0c             	add    $0xc,%esp
4807f4:	83 c2 08             	add    $0x8,%edx
4807f7:	89 55 f8             	mov    %edx,-0x8(%ebp)
4807fa:	66 89 77 02          	mov    %si,0x2(%edi)
4807fe:	85 c9                	test   %ecx,%ecx
480800:	74 08                	je     0x48080a
480802:	b8 94 00 00 00       	mov    $0x94,%eax
480807:	66 89 01             	mov    %ax,(%ecx)
48080a:	83 7d ac 02          	cmpl   $0x2,-0x54(%ebp)
48080e:	8b 7d fc             	mov    -0x4(%ebp),%edi
480811:	0f 8d f1 79 f8 ff    	jge    0x408208
480817:	e9 f6 79 f8 ff       	jmp    0x408212
48081c:	8b 45 f0             	mov    -0x10(%ebp),%eax
48081f:	83 c0 79             	add    $0x79,%eax
480822:	66 89 03             	mov    %ax,(%ebx)
480825:	8b 7d fc             	mov    -0x4(%ebp),%edi
480828:	e9 e5 79 f8 ff       	jmp    0x408212
48082d:	8b 45 f0             	mov    -0x10(%ebp),%eax
480830:	83 c0 79             	add    $0x79,%eax
480833:	66 89 03             	mov    %ax,(%ebx)
480836:	e9 c9 7c f8 ff       	jmp    0x408504