488485:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488488:	0f 83 64 f9 ff ff    	jae    0x487df2
48848e:	0f b7 19             	movzwl (%ecx),%ebx
488491:	89 5d d8             	mov    %ebx,-0x28(%ebp)
488494:	85 c0                	test   %eax,%eax
488496:	74 37                	je     0x4884cf
488498:	8b c3                	mov    %ebx,%eax
48849a:	25 00 fc 00 00       	and    $0xfc00,%eax
48849f:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4884a4:	75 26                	jne    0x4884cc
4884a6:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4884aa:	81 65 d8 ff 03 00 00 	andl   $0x3ff,-0x28(%ebp)
4884b1:	c1 65 d8 0a          	shll   $0xa,-0x28(%ebp)
4884b5:	25 ff 03 00 00       	and    $0x3ff,%eax
4884ba:	0b 45 d8             	or     -0x28(%ebp),%eax
4884bd:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4884c4:	05 00 00 01 00       	add    $0x10000,%eax
4884c9:	89 45 d8             	mov    %eax,-0x28(%ebp)
4884cc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4884cf:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4884d2:	8d 1c 9d a0 e6 4a 00 	lea    0x4ae6a0(,%ebx,4),%ebx
4884d9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4884dc:	8b 1b                	mov    (%ebx),%ebx
4884de:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
4884e1:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4884e4:	8b 5d 10             	mov    0x10(%ebp),%ebx
4884e7:	72 1f                	jb     0x488508
4884e9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4884ec:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
4884f0:	39 4d d8             	cmp    %ecx,-0x28(%ebp)
4884f3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4884f6:	74 38                	je     0x488530
4884f8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4884fb:	8b 00                	mov    (%eax),%eax
4884fd:	39 45 d8             	cmp    %eax,-0x28(%ebp)
488500:	89 45 f4             	mov    %eax,-0xc(%ebp)
488503:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488506:	73 e1                	jae    0x4884e9
488508:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
48850c:	8b 75 d0             	mov    -0x30(%ebp),%esi
48850f:	0f 84 10 01 00 00    	je     0x488625
488515:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
488518:	42                   	inc    %edx
488519:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
48851c:	8b 5d 10             	mov    0x10(%ebp),%ebx
48851f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488522:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488525:	0f 8c 50 ff ff ff    	jl     0x48847b
48852b:	e9 f5 00 00 00       	jmp    0x488625
488530:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
488534:	8b 75 d0             	mov    -0x30(%ebp),%esi
488537:	74 dc                	je     0x488515
488539:	e9 e7 00 00 00       	jmp    0x488625
48853e:	8b 55 f0             	mov    -0x10(%ebp),%edx
488541:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488544:	0f 8d db 00 00 00    	jge    0x488625
48854a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48854d:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
488554:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488557:	0f 83 a3 00 00 00    	jae    0x488600
48855d:	0f b7 19             	movzwl (%ecx),%ebx
488560:	89 5d d8             	mov    %ebx,-0x28(%ebp)
488563:	8b 5d 10             	mov    0x10(%ebp),%ebx
488566:	85 c0                	test   %eax,%eax
488568:	74 38                	je     0x4885a2
48856a:	8b 45 d8             	mov    -0x28(%ebp),%eax
48856d:	25 00 fc 00 00       	and    $0xfc00,%eax
488572:	3d 00 d8 00 00       	cmp    $0xd800,%eax
488577:	75 26                	jne    0x48859f
488579:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
48857d:	81 65 d8 ff 03 00 00 	andl   $0x3ff,-0x28(%ebp)
488584:	c1 65 d8 0a          	shll   $0xa,-0x28(%ebp)
488588:	25 ff 03 00 00       	and    $0x3ff,%eax
48858d:	0b 45 d8             	or     -0x28(%ebp),%eax
488590:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
488597:	05 00 00 01 00       	add    $0x10000,%eax
48859c:	89 45 d8             	mov    %eax,-0x28(%ebp)
48859f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4885a2:	83 7d d8 24          	cmpl   $0x24,-0x28(%ebp)
4885a6:	74 2e                	je     0x4885d6
4885a8:	83 7d d8 40          	cmpl   $0x40,-0x28(%ebp)
4885ac:	74 28                	je     0x4885d6
4885ae:	83 7d d8 60          	cmpl   $0x60,-0x28(%ebp)
4885b2:	74 22                	je     0x4885d6
4885b4:	81 7d d8 a0 00 00 00 	cmpl   $0xa0,-0x28(%ebp)
4885bb:	72 09                	jb     0x4885c6
4885bd:	81 7d d8 ff d7 00 00 	cmpl   $0xd7ff,-0x28(%ebp)
4885c4:	76 10                	jbe    0x4885d6
4885c6:	81 7d d8 00 e0 00 00 	cmpl   $0xe000,-0x28(%ebp)
4885cd:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4885d4:	72 07                	jb     0x4885dd
4885d6:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4885dd:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4885e0:	39 75 f4             	cmp    %esi,-0xc(%ebp)
4885e3:	8b 75 d0             	mov    -0x30(%ebp),%esi
4885e6:	74 3d                	je     0x488625
4885e8:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
4885eb:	42                   	inc    %edx
4885ec:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
4885ef:	8b 5d 10             	mov    0x10(%ebp),%ebx
4885f2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4885f5:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4885f8:	0f 8c 4c ff ff ff    	jl     0x48854a
4885fe:	eb 25                	jmp    0x488625
488600:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488607:	74 1c                	je     0x488625
488609:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
48860f:	76 14                	jbe    0x488625
488611:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488618:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
48861f:	0f 8f 08 bb ff ff    	jg     0x48412d
488625:	85 f6                	test   %esi,%esi
488627:	0f 85 33 1d f8 ff    	jne    0x40a360
48862d:	8b 75 c8             	mov    -0x38(%ebp),%esi
488630:	3b ce                	cmp    %esi,%ecx
488632:	0f 84 99 1d f8 ff    	je     0x40a3d1
488638:	8b 45 18             	mov    0x18(%ebp),%eax
48863b:	40                   	inc    %eax
48863c:	50                   	push   %eax
48863d:	ff 75 14             	push   0x14(%ebp)
488640:	8b d7                	mov    %edi,%edx
488642:	53                   	push   %ebx
488643:	ff 75 0c             	push   0xc(%ebp)
488646:	ff 75 08             	push   0x8(%ebp)
488649:	e8 b2 1c f8 ff       	call   0x40a300
48864e:	83 c4 14             	add    $0x14,%esp
488651:	85 c0                	test   %eax,%eax
488653:	0f 85 6e 1e f8 ff    	jne    0x40a4c7
488659:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48865c:	83 e9 02             	sub    $0x2,%ecx
48865f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488662:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
488665:	74 1b                	je     0x488682
488667:	66 8b 01             	mov    (%ecx),%ax
48866a:	ba 00 fc 00 00       	mov    $0xfc00,%edx
48866f:	66 23 c2             	and    %dx,%ax
488672:	ba 00 dc 00 00       	mov    $0xdc00,%edx
488677:	66 3b c2             	cmp    %dx,%ax
48867a:	75 06                	jne    0x488682
48867c:	83 e9 02             	sub    $0x2,%ecx
48867f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488682:	3b ce                	cmp    %esi,%ecx
488684:	75 b2                	jne    0x488638
488686:	e9 46 1d f8 ff       	jmp    0x40a3d1
48868b:	8b 55 d8             	mov    -0x28(%ebp),%edx
48868e:	83 fa 16             	cmp    $0x16,%edx
488691:	0f 85 07 02 00 00    	jne    0x48889e
488697:	8b 55 dc             	mov    -0x24(%ebp),%edx
48869a:	39 55 f0             	cmp    %edx,-0x10(%ebp)
48869d:	7c 08                	jl     0x4886a7
48869f:	e9 ac 01 00 00       	jmp    0x488850
4886a4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4886a7:	8b 53 7c             	mov    0x7c(%ebx),%edx
4886aa:	89 55 d4             	mov    %edx,-0x2c(%ebp)
4886ad:	3b ca                	cmp    %edx,%ecx
4886af:	0f 83 76 01 00 00    	jae    0x48882b
4886b5:	0f b7 11             	movzwl (%ecx),%edx
4886b8:	83 c1 02             	add    $0x2,%ecx
4886bb:	89 55 f4             	mov    %edx,-0xc(%ebp)
4886be:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4886c1:	85 c0                	test   %eax,%eax
4886c3:	74 30                	je     0x4886f5
4886c5:	8b c2                	mov    %edx,%eax
4886c7:	25 00 fc 00 00       	and    $0xfc00,%eax
4886cc:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4886d1:	75 22                	jne    0x4886f5
4886d3:	0f b7 01             	movzwl (%ecx),%eax
4886d6:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
4886dc:	c1 e2 0a             	shl    $0xa,%edx
4886df:	25 ff 03 00 00       	and    $0x3ff,%eax
4886e4:	0b d0                	or     %eax,%edx
4886e6:	81 c2 00 00 01 00    	add    $0x10000,%edx
4886ec:	83 c1 02             	add    $0x2,%ecx
4886ef:	89 55 f4             	mov    %edx,-0xc(%ebp)
4886f2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4886f5:	8b c2                	mov    %edx,%eax
4886f7:	99                   	cltd
4886f8:	83 e2 7f             	and    $0x7f,%edx
4886fb:	03 c2                	add    %edx,%eax
4886fd:	8b 55 f4             	mov    -0xc(%ebp),%edx
488700:	c1 f8 07             	sar    $0x7,%eax
488703:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
48870a:	c1 e0 07             	shl    $0x7,%eax
48870d:	81 e2 7f 00 00 80    	and    $0x8000007f,%edx
488713:	79 05                	jns    0x48871a
488715:	4a                   	dec    %edx
488716:	83 ca 80             	or     $0xffffff80,%edx
488719:	42                   	inc    %edx
48871a:	03 c2                	add    %edx,%eax
48871c:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
488723:	00
488724:	0f b6 14 c5 0a b1 4a 	movzbl 0x4ab10a(,%eax,8),%edx
48872b:	00
48872c:	8b 43 7c             	mov    0x7c(%ebx),%eax
48872f:	89 55 f4             	mov    %edx,-0xc(%ebp)
488732:	3b c8                	cmp    %eax,%ecx
488734:	0f 83 b6 00 00 00    	jae    0x4887f0
48873a:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
48873d:	8b f2                	mov    %edx,%esi
48873f:	0f b7 11             	movzwl (%ecx),%edx
488742:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
488749:	89 55 ec             	mov    %edx,-0x14(%ebp)
48874c:	85 db                	test   %ebx,%ebx
48874e:	74 32                	je     0x488782
488750:	8b c2                	mov    %edx,%eax
488752:	25 00 fc 00 00       	and    $0xfc00,%eax
488757:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48875c:	75 24                	jne    0x488782
48875e:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
488762:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
488768:	25 ff 03 00 00       	and    $0x3ff,%eax
48876d:	c1 e2 0a             	shl    $0xa,%edx
488770:	0b d0                	or     %eax,%edx
488772:	81 c2 00 00 01 00    	add    $0x10000,%edx
488778:	89 55 ec             	mov    %edx,-0x14(%ebp)
48877b:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
488782:	8b 4d ec             	mov    -0x14(%ebp),%ecx
488785:	8b c2                	mov    %edx,%eax
488787:	99                   	cltd
488788:	83 e2 7f             	and    $0x7f,%edx
48878b:	03 c2                	add    %edx,%eax
48878d:	c1 f8 07             	sar    $0x7,%eax
488790:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
488797:	c1 e0 07             	shl    $0x7,%eax
48879a:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
4887a0:	79 05                	jns    0x4887a7
4887a2:	49                   	dec    %ecx
4887a3:	83 c9 80             	or     $0xffffff80,%ecx
4887a6:	41                   	inc    %ecx
4887a7:	03 c1                	add    %ecx,%eax
4887a9:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
4887b0:	00
4887b1:	0f b6 0c c5 0a b1 4a 	movzbl 0x4ab10a(,%eax,8),%ecx
4887b8:	00
4887b9:	b8 01 00 00 00       	mov    $0x1,%eax
4887be:	d3 e0                	shl    %cl,%eax
4887c0:	85 04 b5 2c e5 49 00 	test   %eax,0x49e52c(,%esi,4)
4887c7:	74 1b                	je     0x4887e4
4887c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4887cc:	8b f1                	mov    %ecx,%esi
4887ce:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4887d1:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
4887d4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4887d7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4887da:	3b c8                	cmp    %eax,%ecx
4887dc:	0f 82 5d ff ff ff    	jb     0x48873f
4887e2:	eb 06                	jmp    0x4887ea
4887e4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4887e7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4887ea:	8b 5d 10             	mov    0x10(%ebp),%ebx
4887ed:	8b 75 d0             	mov    -0x30(%ebp),%esi
4887f0:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4887f7:	74 20                	je     0x488819
4887f9:	3b c8                	cmp    %eax,%ecx
4887fb:	72 1c                	jb     0x488819
4887fd:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
488803:	76 14                	jbe    0x488819
488805:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
48880c:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
488813:	0f 8f 14 b9 ff ff    	jg     0x48412d
488819:	8b 45 f0             	mov    -0x10(%ebp),%eax
48881c:	40                   	inc    %eax
48881d:	89 45 f0             	mov    %eax,-0x10(%ebp)
488820:	3b 45 dc             	cmp    -0x24(%ebp),%eax
488823:	0f 8c 7b fe ff ff    	jl     0x4886a4
488829:	eb 25                	jmp    0x488850
48882b:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488832:	74 1c                	je     0x488850
488834:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
48883a:	76 14                	jbe    0x488850
48883c:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488843:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
48884a:	0f 8f dd b8 ff ff    	jg     0x48412d
488850:	85 f6                	test   %esi,%esi
488852:	0f 85 08 1b f8 ff    	jne    0x40a360
488858:	3b 4d c8             	cmp    -0x38(%ebp),%ecx
48885b:	0f 84 70 1b f8 ff    	je     0x40a3d1
488861:	8b 75 e4             	mov    -0x1c(%ebp),%esi
488864:	8b 45 18             	mov    0x18(%ebp),%eax
488867:	40                   	inc    %eax
488868:	50                   	push   %eax
488869:	ff 75 14             	push   0x14(%ebp)
48886c:	8b d7                	mov    %edi,%edx
48886e:	53                   	push   %ebx
48886f:	ff 75 0c             	push   0xc(%ebp)
488872:	ff 75 08             	push   0x8(%ebp)
488875:	e8 86 1a f8 ff       	call   0x40a300
48887a:	83 c4 14             	add    $0x14,%esp
48887d:	85 c0                	test   %eax,%eax
48887f:	0f 85 42 1c f8 ff    	jne    0x40a4c7
488885:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488888:	83 e9 02             	sub    $0x2,%ecx
48888b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48888e:	85 f6                	test   %esi,%esi
488890:	0f 85 61 0f 00 00    	jne    0x4897f7
488896:	0f b7 11             	movzwl (%ecx),%edx
488899:	e9 a2 0f 00 00       	jmp    0x489840
48889e:	85 c0                	test   %eax,%eax
4888a0:	0f 84 07 09 00 00    	je     0x4891ad
4888a6:	83 c2 fa             	add    $0xfffffffa,%edx
4888a9:	83 fa 0f             	cmp    $0xf,%edx
4888ac:	0f 87 65 12 00 00    	ja     0x489b17
4888b2:	ff 24 95 5e ba 48 00 	jmp    *0x48ba5e(,%edx,4)
4888b9:	81 7d dc ff ff ff 7f 	cmpl   $0x7fffffff,-0x24(%ebp)
4888c0:	8b 55 f0             	mov    -0x10(%ebp),%edx
4888c3:	0f 8d 01 01 00 00    	jge    0x4889ca
4888c9:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4888cc:	0f 8d 5d 08 00 00    	jge    0x48912f
4888d2:	8d 41 02             	lea    0x2(%ecx),%eax
4888d5:	89 45 e8             	mov    %eax,-0x18(%ebp)
4888d8:	8b 43 7c             	mov    0x7c(%ebx),%eax
4888db:	89 45 ec             	mov    %eax,-0x14(%ebp)
4888de:	3b c8                	cmp    %eax,%ecx
4888e0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4888e3:	0f 83 41 02 00 00    	jae    0x488b2a
4888e9:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
4888ed:	74 23                	je     0x488912
4888ef:	50                   	push   %eax
4888f0:	8d 53 1c             	lea    0x1c(%ebx),%edx
4888f3:	52                   	push   %edx
4888f4:	ff 75 ec             	push   -0x14(%ebp)
4888f7:	8b 53 18             	mov    0x18(%ebx),%edx
4888fa:	e8 ff 06 f8 ff       	call   0x408ffe
4888ff:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488902:	83 c4 0c             	add    $0xc,%esp
488905:	85 c0                	test   %eax,%eax
488907:	0f 85 22 08 00 00    	jne    0x48912f
48890d:	8b 55 f0             	mov    -0x10(%ebp),%edx
488910:	eb 30                	jmp    0x488942
488912:	8b 43 1c             	mov    0x1c(%ebx),%eax
488915:	03 c0                	add    %eax,%eax
488917:	29 45 ec             	sub    %eax,-0x14(%ebp)
48891a:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
48891d:	77 23                	ja     0x488942
48891f:	66 8b 01             	mov    (%ecx),%ax
488922:	66 3b 43 34          	cmp    0x34(%ebx),%ax
488926:	75 1a                	jne    0x488942
488928:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)
48892c:	0f 84 fd 07 00 00    	je     0x48912f
488932:	8b 45 e8             	mov    -0x18(%ebp),%eax
488935:	66 8b 00             	mov    (%eax),%ax
488938:	66 3b 43 36          	cmp    0x36(%ebx),%ax
48893c:	0f 84 ed 07 00 00    	je     0x48912f
488942:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488949:	8b 45 e8             	mov    -0x18(%ebp),%eax
48894c:	74 34                	je     0x488982
48894e:	3b 43 7c             	cmp    0x7c(%ebx),%eax
488951:	72 2f                	jb     0x488982
488953:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
488957:	75 29                	jne    0x488982