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
48083b:	b8 9d 00 00 00       	mov    $0x9d,%eax
480840:	dd d8                	fstp   %st(0)
480842:	66 3b c8             	cmp    %ax,%cx
480845:	0f 84 c7 79 f8 ff    	je     0x408212
48084b:	8b 45 0c             	mov    0xc(%ebp),%eax
48084e:	c7 00 0b 00 00 00    	movl   $0xb,(%eax)
480854:	8b 45 08             	mov    0x8(%ebp),%eax
480857:	89 38                	mov    %edi,(%eax)
480859:	33 c0                	xor    %eax,%eax
48085b:	e9 d2 71 f8 ff       	jmp    0x407a32
480860:	83 fe 01             	cmp    $0x1,%esi
480863:	75 0d                	jne    0x480872
480865:	83 f9 ff             	cmp    $0xffffffff,%ecx
480868:	75 08                	jne    0x480872
48086a:	83 c0 64             	add    $0x64,%eax
48086d:	e9 89 7c f8 ff       	jmp    0x4084fb
480872:	83 c0 68             	add    $0x68,%eax
480875:	66 89 02             	mov    %ax,(%edx)
480878:	8d 41 01             	lea    0x1(%ecx),%eax
48087b:	f7 d8                	neg    %eax
48087d:	1b c0                	sbb    %eax,%eax
48087f:	23 c1                	and    %ecx,%eax
480881:	66 89 72 02          	mov    %si,0x2(%edx)
480885:	66 89 42 04          	mov    %ax,0x4(%edx)
480889:	89 45 c4             	mov    %eax,-0x3c(%ebp)
48088c:	83 c2 06             	add    $0x6,%edx
48088f:	e9 6d 7c f8 ff       	jmp    0x408501
480894:	8b c1                	mov    %ecx,%eax
480896:	dd d8                	fstp   %st(0)
480898:	83 e8 1e             	sub    $0x1e,%eax
48089b:	74 18                	je     0x4808b5
48089d:	48                   	dec    %eax
48089e:	74 0e                	je     0x4808ae
4808a0:	48                   	dec    %eax
4808a1:	74 04                	je     0x4808a7
4808a3:	33 f6                	xor    %esi,%esi
4808a5:	eb 13                	jmp    0x4808ba
4808a7:	be 27 00 00 00       	mov    $0x27,%esi
4808ac:	eb 0c                	jmp    0x4808ba
4808ae:	be 1a 00 00 00       	mov    $0x1a,%esi
4808b3:	eb 05                	jmp    0x4808ba
4808b5:	be 0d 00 00 00       	mov    $0xd,%esi
4808ba:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4808be:	74 6b                	je     0x48092b
4808c0:	66 8b 42 fe          	mov    -0x2(%edx),%ax
4808c4:	8d 5a fe             	lea    -0x2(%edx),%ebx
4808c7:	c7 45 bc 00 fc 00 00 	movl   $0xfc00,-0x44(%ebp)
4808ce:	66 23 45 bc          	and    -0x44(%ebp),%ax
4808d2:	c7 45 bc 00 dc 00 00 	movl   $0xdc00,-0x44(%ebp)
4808d9:	89 5d b0             	mov    %ebx,-0x50(%ebp)
4808dc:	66 3b 45 bc          	cmp    -0x44(%ebp),%ax
4808e0:	75 49                	jne    0x48092b
4808e2:	66 8b 03             	mov    (%ebx),%ax
4808e5:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
4808ea:	66 23 c1             	and    %cx,%ax
4808ed:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
4808f2:	66 3b c1             	cmp    %cx,%ax
4808f5:	75 06                	jne    0x4808fd
4808f7:	83 eb 02             	sub    $0x2,%ebx
4808fa:	89 5d b0             	mov    %ebx,-0x50(%ebp)
4808fd:	8b 4d b0             	mov    -0x50(%ebp),%ecx
480900:	8b da                	mov    %edx,%ebx
480902:	2b d9                	sub    %ecx,%ebx
480904:	d1 fb                	sar    $1,%ebx
480906:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
480909:	50                   	push   %eax
48090a:	51                   	push   %ecx
48090b:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
480911:	50                   	push   %eax
480912:	e8 69 e5 f9 ff       	call   0x41ee80
480917:	8b 7d fc             	mov    -0x4(%ebp),%edi
48091a:	8b 55 f8             	mov    -0x8(%ebp),%edx
48091d:	83 c4 0c             	add    $0xc,%esp
480920:	81 cb 00 00 00 10    	or     $0x10000000,%ebx
480926:	e9 4d 78 f8 ff       	jmp    0x408178
48092b:	0f b7 5a fe          	movzwl -0x2(%edx),%ebx
48092f:	83 f9 1e             	cmp    $0x1e,%ecx
480932:	0f 87 40 78 f8 ff    	ja     0x408178
480938:	83 7d ac 01          	cmpl   $0x1,-0x54(%ebp)
48093c:	0f 8e 36 78 f8 ff    	jle    0x408178
480942:	8b 45 28             	mov    0x28(%ebp),%eax
480945:	89 5d a0             	mov    %ebx,-0x60(%ebp)
480948:	8b 40 68             	mov    0x68(%eax),%eax
48094b:	0b 85 70 ff ff ff    	or     -0x90(%ebp),%eax
480951:	89 45 a8             	mov    %eax,-0x58(%ebp)
480954:	e9 1f 78 f8 ff       	jmp    0x408178
480959:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
48095d:	89 45 e8             	mov    %eax,-0x18(%ebp)
480960:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
480964:	89 45 ec             	mov    %eax,-0x14(%ebp)
480967:	e9 31 78 f8 ff       	jmp    0x40819d
48096c:	8b 75 e8             	mov    -0x18(%ebp),%esi
48096f:	8b 7d ec             	mov    -0x14(%ebp),%edi
480972:	83 f9 01             	cmp    $0x1,%ecx
480975:	75 14                	jne    0x48098b
480977:	8b 4d e0             	mov    -0x20(%ebp),%ecx
48097a:	8d 42 25             	lea    0x25(%edx),%eax
48097d:	8d 51 02             	lea    0x2(%ecx),%edx
480980:	66 89 01             	mov    %ax,(%ecx)
480983:	89 55 f8             	mov    %edx,-0x8(%ebp)
480986:	e9 54 78 f8 ff       	jmp    0x4081df
48098b:	8d 42 27             	lea    0x27(%edx),%eax
48098e:	8b 55 e0             	mov    -0x20(%ebp),%edx
480991:	83 c2 04             	add    $0x4,%edx
480994:	66 89 42 fc          	mov    %ax,-0x4(%edx)
480998:	66 89 4a fe          	mov    %cx,-0x2(%edx)
48099c:	89 55 f8             	mov    %edx,-0x8(%ebp)
48099f:	e9 3b 78 f8 ff       	jmp    0x4081df
4809a4:	83 f8 01             	cmp    $0x1,%eax
4809a7:	75 38                	jne    0x4809e1
4809a9:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4809ac:	83 fe ff             	cmp    $0xffffffff,%esi
4809af:	75 08                	jne    0x4809b9
4809b1:	8d 42 23             	lea    0x23(%edx),%eax
4809b4:	e9 14 78 f8 ff       	jmp    0x4081cd
4809b9:	8b d1                	mov    %ecx,%edx
4809bb:	89 55 f8             	mov    %edx,-0x8(%ebp)
4809be:	83 fe 01             	cmp    $0x1,%esi
4809c1:	0f 84 4b 78 f8 ff    	je     0x408212
4809c7:	8b 45 f0             	mov    -0x10(%ebp),%eax
4809ca:	83 c0 27             	add    $0x27,%eax
4809cd:	66 89 01             	mov    %ax,(%ecx)
4809d0:	8d 51 02             	lea    0x2(%ecx),%edx
4809d3:	8d 46 ff             	lea    -0x1(%esi),%eax
4809d6:	66 89 02             	mov    %ax,(%edx)
4809d9:	83 c2 02             	add    $0x2,%edx
4809dc:	e9 f5 77 f8 ff       	jmp    0x4081d6
4809e1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4809e4:	8d 46 29             	lea    0x29(%esi),%eax
4809e7:	66 89 01             	mov    %ax,(%ecx)
4809ea:	8b 45 ac             	mov    -0x54(%ebp),%eax
4809ed:	8d 51 02             	lea    0x2(%ecx),%edx
4809f0:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4809f3:	66 89 02             	mov    %ax,(%edx)
4809f6:	83 c2 02             	add    $0x2,%edx
4809f9:	89 55 f8             	mov    %edx,-0x8(%ebp)
4809fc:	85 c9                	test   %ecx,%ecx
4809fe:	79 75                	jns    0x480a75
480a00:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
480a04:	74 41                	je     0x480a47
480a06:	f7 c3 00 00 00 10    	test   $0x10000000,%ebx
480a0c:	74 39                	je     0x480a47
480a0e:	8b f3                	mov    %ebx,%esi
480a10:	83 e6 07             	and    $0x7,%esi
480a13:	8d 04 36             	lea    (%esi,%esi,1),%eax
480a16:	50                   	push   %eax
480a17:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
480a1d:	50                   	push   %eax
480a1e:	52                   	push   %edx
480a1f:	e8 5c e4 f9 ff       	call   0x41ee80
480a24:	8b 55 f8             	mov    -0x8(%ebp),%edx
480a27:	83 c4 0c             	add    $0xc,%esp
480a2a:	8d 14 72             	lea    (%edx,%esi,2),%edx
480a2d:	8b 75 e8             	mov    -0x18(%ebp),%esi
480a30:	8b 45 f0             	mov    -0x10(%ebp),%eax
480a33:	8b 7d ec             	mov    -0x14(%ebp),%edi
480a36:	83 c0 21             	add    $0x21,%eax
480a39:	66 89 02             	mov    %ax,(%edx)
480a3c:	83 c2 02             	add    $0x2,%edx
480a3f:	89 55 f8             	mov    %edx,-0x8(%ebp)
480a42:	e9 98 77 f8 ff       	jmp    0x4081df
480a47:	8b 75 e8             	mov    -0x18(%ebp),%esi
480a4a:	66 89 1a             	mov    %bx,(%edx)
480a4d:	83 c2 02             	add    $0x2,%edx
480a50:	85 f6                	test   %esi,%esi
480a52:	78 dc                	js     0x480a30
480a54:	8b 7d ec             	mov    -0x14(%ebp),%edi
480a57:	8b 45 f0             	mov    -0x10(%ebp),%eax
480a5a:	66 89 32             	mov    %si,(%edx)
480a5d:	66 89 7a 02          	mov    %di,0x2(%edx)
480a61:	83 c2 04             	add    $0x4,%edx
480a64:	83 c0 21             	add    $0x21,%eax
480a67:	66 89 02             	mov    %ax,(%edx)
480a6a:	83 c2 02             	add    $0x2,%edx
480a6d:	89 55 f8             	mov    %edx,-0x8(%ebp)