485433:	8b 55 c8             	mov    -0x38(%ebp),%edx
485436:	8b 45 d0             	mov    -0x30(%ebp),%eax
485439:	3b ce                	cmp    %esi,%ecx
48543b:	0f 84 1f 4f f8 ff    	je     0x40a360
485441:	8b 75 f8             	mov    -0x8(%ebp),%esi
485444:	85 d2                	test   %edx,%edx
485446:	0f 85 b3 49 00 00    	jne    0x489dff
48544c:	89 75 f4             	mov    %esi,-0xc(%ebp)
48544f:	3b 4d e0             	cmp    -0x20(%ebp),%ecx
485452:	0f 8d a8 00 00 00    	jge    0x485500
485458:	8b 45 f8             	mov    -0x8(%ebp),%eax
48545b:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
485462:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485465:	73 6e                	jae    0x4854d5
485467:	0f b7 10             	movzwl (%eax),%edx
48546a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
48546d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
485470:	8b f0                	mov    %eax,%esi
485472:	85 c9                	test   %ecx,%ecx
485474:	74 30                	je     0x4854a6
485476:	8b c2                	mov    %edx,%eax
485478:	25 00 fc 00 00       	and    $0xfc00,%eax
48547d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485482:	75 22                	jne    0x4854a6
485484:	0f b7 46 02          	movzwl 0x2(%esi),%eax
485488:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
48548e:	25 ff 03 00 00       	and    $0x3ff,%eax
485493:	c1 e2 0a             	shl    $0xa,%edx
485496:	0b c2                	or     %edx,%eax
485498:	05 00 00 01 00       	add    $0x10000,%eax
48549d:	c7 45 e8 02 00 00 00 	movl   $0x2,-0x18(%ebp)
4854a4:	eb 03                	jmp    0x4854a9
4854a6:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4854a9:	8b 55 ec             	mov    -0x14(%ebp),%edx
4854ac:	51                   	push   %ecx
4854ad:	8b c8                	mov    %eax,%ecx
4854af:	e8 61 bf fe ff       	call   0x471415
4854b4:	83 c4 04             	add    $0x4,%esp
4854b7:	85 c0                	test   %eax,%eax
4854b9:	74 42                	je     0x4854fd
4854bb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4854be:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4854c1:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4854c4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4854c7:	41                   	inc    %ecx
4854c8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4854cb:	89 4d d8             	mov    %ecx,-0x28(%ebp)
4854ce:	3b 4d e0             	cmp    -0x20(%ebp),%ecx
4854d1:	7c 85                	jl     0x485458
4854d3:	eb 25                	jmp    0x4854fa
4854d5:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4854dc:	74 1c                	je     0x4854fa
4854de:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
4854e4:	76 14                	jbe    0x4854fa
4854e6:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4854ed:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4854f4:	0f 8f 33 ec ff ff    	jg     0x48412d
4854fa:	8b 75 f8             	mov    -0x8(%ebp),%esi
4854fd:	8b 45 d0             	mov    -0x30(%ebp),%eax
485500:	85 c0                	test   %eax,%eax
485502:	0f 85 58 4e f8 ff    	jne    0x40a360
485508:	8b 45 18             	mov    0x18(%ebp),%eax
48550b:	40                   	inc    %eax
48550c:	50                   	push   %eax
48550d:	ff 75 14             	push   0x14(%ebp)
485510:	8b d7                	mov    %edi,%edx
485512:	53                   	push   %ebx
485513:	ff 75 0c             	push   0xc(%ebp)
485516:	8b ce                	mov    %esi,%ecx
485518:	ff 75 08             	push   0x8(%ebp)
48551b:	e8 e0 4d f8 ff       	call   0x40a300
485520:	83 c4 14             	add    $0x14,%esp
485523:	85 c0                	test   %eax,%eax
485525:	0f 85 9c 4f f8 ff    	jne    0x40a4c7
48552b:	8b c6                	mov    %esi,%eax
48552d:	83 ee 02             	sub    $0x2,%esi
485530:	3b 45 f4             	cmp    -0xc(%ebp),%eax
485533:	0f 84 3b 50 f8 ff    	je     0x40a574
485539:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
48553d:	74 18                	je     0x485557
48553f:	66 8b 06             	mov    (%esi),%ax
485542:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
485547:	66 23 c1             	and    %cx,%ax
48554a:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
48554f:	66 3b c1             	cmp    %cx,%ax
485552:	75 03                	jne    0x485557
485554:	83 ee 02             	sub    $0x2,%esi
485557:	8b 45 18             	mov    0x18(%ebp),%eax
48555a:	40                   	inc    %eax
48555b:	50                   	push   %eax
48555c:	ff 75 14             	push   0x14(%ebp)
48555f:	8b d7                	mov    %edi,%edx
485561:	53                   	push   %ebx
485562:	ff 75 0c             	push   0xc(%ebp)
485565:	8b ce                	mov    %esi,%ecx
485567:	ff 75 08             	push   0x8(%ebp)
48556a:	e8 91 4d f8 ff       	call   0x40a300
48556f:	83 c4 14             	add    $0x14,%esp
485572:	85 c0                	test   %eax,%eax
485574:	74 b5                	je     0x48552b
485576:	e9 4c 4f f8 ff       	jmp    0x40a4c7
48557b:	8b 43 7c             	mov    0x7c(%ebx),%eax
48557e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485581:	2b c1                	sub    %ecx,%eax
485583:	83 e0 fe             	and    $0xfffffffe,%eax
485586:	83 f8 02             	cmp    $0x2,%eax
485589:	0f 8c 5c 49 00 00    	jl     0x489eeb
48558f:	66 8b 01             	mov    (%ecx),%ax
485592:	83 c1 02             	add    $0x2,%ecx
485595:	89 4d f8             	mov    %ecx,-0x8(%ebp)
485598:	66 39 47 02          	cmp    %ax,0x2(%edi)
48559c:	0f 85 d2 4f f8 ff    	jne    0x40a574
4855a2:	83 c7 04             	add    $0x4,%edi
4855a5:	e9 cf 50 f8 ff       	jmp    0x40a679
4855aa:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4855ae:	81 e6 ff 03 00 00    	and    $0x3ff,%esi
4855b4:	25 ff 03 00 00       	and    $0x3ff,%eax
4855b9:	c1 e6 0a             	shl    $0xa,%esi
4855bc:	0b f0                	or     %eax,%esi
4855be:	81 c6 00 00 01 00    	add    $0x10000,%esi
4855c4:	ba 02 00 00 00       	mov    $0x2,%edx
4855c9:	e9 c8 51 f8 ff       	jmp    0x40a796
4855ce:	83 c0 02             	add    $0x2,%eax
4855d1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4855d4:	8b c1                	mov    %ecx,%eax
4855d6:	25 00 fc 00 00       	and    $0xfc00,%eax
4855db:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4855de:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4855e3:	75 23                	jne    0x485608
4855e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4855e8:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4855ee:	0f b7 00             	movzwl (%eax),%eax
4855f1:	c1 e1 0a             	shl    $0xa,%ecx
4855f4:	25 ff 03 00 00       	and    $0x3ff,%eax
4855f9:	0b c8                	or     %eax,%ecx
4855fb:	81 c1 00 00 01 00    	add    $0x10000,%ecx
485601:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
485605:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
485608:	8d 3c 57             	lea    (%edi,%edx,2),%edi
48560b:	89 7d cc             	mov    %edi,-0x34(%ebp)
48560e:	3b f1                	cmp    %ecx,%esi
485610:	0f 84 4a 4d f8 ff    	je     0x40a360
485616:	8b c6                	mov    %esi,%eax
485618:	99                   	cltd
485619:	83 e2 7f             	and    $0x7f,%edx
48561c:	03 c2                	add    %edx,%eax
48561e:	c1 f8 07             	sar    $0x7,%eax
485621:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
485628:	8b c6                	mov    %esi,%eax
48562a:	c1 e1 07             	shl    $0x7,%ecx
48562d:	25 7f 00 00 80       	and    $0x8000007f,%eax
485632:	79 05                	jns    0x485639
485634:	48                   	dec    %eax
485635:	83 c8 80             	or     $0xffffff80,%eax
485638:	40                   	inc    %eax
485639:	03 c8                	add    %eax,%ecx
48563b:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485642:	00
485643:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
48564a:	03 c6                	add    %esi,%eax
48564c:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
48564f:	0f 84 0b 4d f8 ff    	je     0x40a360
485655:	e9 1a 4f f8 ff       	jmp    0x40a574
48565a:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
48565e:	ba ff 00 00 00       	mov    $0xff,%edx
485663:	66 3b ca             	cmp    %dx,%cx
485666:	77 0c                	ja     0x485674
485668:	8b 43 3c             	mov    0x3c(%ebx),%eax
48566b:	0f b6 14 08          	movzbl (%eax,%ecx,1),%edx
48566f:	8b 45 f8             	mov    -0x8(%ebp),%eax
485672:	eb 02                	jmp    0x485676
485674:	8b d1                	mov    %ecx,%edx
485676:	0f b7 08             	movzwl (%eax),%ecx
485679:	be ff 00 00 00       	mov    $0xff,%esi
48567e:	66 3b ce             	cmp    %si,%cx
485681:	77 0a                	ja     0x48568d
485683:	8b 43 3c             	mov    0x3c(%ebx),%eax
485686:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
48568a:	8b 45 f8             	mov    -0x8(%ebp),%eax
48568d:	3b d1                	cmp    %ecx,%edx
48568f:	0f 85 df 4e f8 ff    	jne    0x40a574
485695:	83 c0 02             	add    $0x2,%eax
485698:	89 45 f8             	mov    %eax,-0x8(%ebp)
48569b:	83 c7 04             	add    $0x4,%edi
48569e:	e9 d6 4f f8 ff       	jmp    0x40a679
4856a3:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4856a7:	89 45 e8             	mov    %eax,-0x18(%ebp)
4856aa:	89 45 d8             	mov    %eax,-0x28(%ebp)
4856ad:	83 c7 04             	add    $0x4,%edi
4856b0:	e9 b0 00 00 00       	jmp    0x485765
4856b5:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
4856bc:	0f b7 47 02          	movzwl 0x2(%edi),%eax
4856c0:	89 55 d8             	mov    %edx,-0x28(%ebp)
4856c3:	89 45 e8             	mov    %eax,-0x18(%ebp)
4856c6:	83 f9 28             	cmp    $0x28,%ecx
4856c9:	74 12                	je     0x4856dd
4856cb:	83 f9 35             	cmp    $0x35,%ecx
4856ce:	74 0d                	je     0x4856dd
4856d0:	33 d2                	xor    %edx,%edx
4856d2:	89 55 c8             	mov    %edx,-0x38(%ebp)
4856d5:	83 c7 04             	add    $0x4,%edi
4856d8:	e9 88 00 00 00       	jmp    0x485765
4856dd:	ba 01 00 00 00       	mov    $0x1,%edx
4856e2:	89 55 c8             	mov    %edx,-0x38(%ebp)
4856e5:	83 c7 04             	add    $0x4,%edi
4856e8:	eb 7b                	jmp    0x485765
4856ea:	b9 01 00 00 00       	mov    $0x1,%ecx
4856ef:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4856f2:	89 55 d8             	mov    %edx,-0x28(%ebp)
4856f5:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
4856fc:	83 c7 02             	add    $0x2,%edi
4856ff:	eb 67                	jmp    0x485768
485701:	b9 01 00 00 00       	mov    $0x1,%ecx
485706:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485709:	89 4d d8             	mov    %ecx,-0x28(%ebp)
48570c:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
485713:	83 c7 02             	add    $0x2,%edi
485716:	eb 50                	jmp    0x485768
485718:	b9 01 00 00 00       	mov    $0x1,%ecx
48571d:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485720:	89 55 d8             	mov    %edx,-0x28(%ebp)
485723:	89 4d e8             	mov    %ecx,-0x18(%ebp)
485726:	83 c7 02             	add    $0x2,%edi
485729:	eb 3d                	jmp    0x485768
48572b:	83 fe 2e             	cmp    $0x2e,%esi
48572e:	1b c0                	sbb    %eax,%eax
485730:	83 e0 f3             	and    $0xfffffff3,%eax
485733:	83 c0 2e             	add    $0x2e,%eax
485736:	8b ce                	mov    %esi,%ecx
485738:	2b c8                	sub    %eax,%ecx
48573a:	0f b6 d1             	movzbl %cl,%edx
48573d:	0f be 81 7c e4 49 00 	movsbl 0x49e47c(%ecx),%eax
485744:	89 45 d8             	mov    %eax,-0x28(%ebp)
485747:	0f be 81 20 e5 49 00 	movsbl 0x49e520(%ecx),%eax
48574e:	83 e2 01             	and    $0x1,%edx
485751:	83 c7 02             	add    $0x2,%edi
485754:	89 55 c8             	mov    %edx,-0x38(%ebp)
485757:	89 45 e8             	mov    %eax,-0x18(%ebp)
48575a:	85 c0                	test   %eax,%eax
48575c:	75 07                	jne    0x485765
48575e:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
485765:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485768:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48576b:	85 c0                	test   %eax,%eax
48576d:	0f 84 7b 02 00 00    	je     0x4859ee
485773:	0f b7 07             	movzwl (%edi),%eax
485776:	89 45 dc             	mov    %eax,-0x24(%ebp)
485779:	25 00 fc 00 00       	and    $0xfc00,%eax
48577e:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
485785:	89 7d d4             	mov    %edi,-0x2c(%ebp)
485788:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48578d:	75 29                	jne    0x4857b8
48578f:	8b 5d dc             	mov    -0x24(%ebp),%ebx
485792:	0f b7 47 02          	movzwl 0x2(%edi),%eax
485796:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
48579c:	25 ff 03 00 00       	and    $0x3ff,%eax
4857a1:	c1 e3 0a             	shl    $0xa,%ebx
4857a4:	0b c3                	or     %ebx,%eax
4857a6:	05 00 00 01 00       	add    $0x10000,%eax
4857ab:	89 45 dc             	mov    %eax,-0x24(%ebp)
4857ae:	b8 02 00 00 00       	mov    $0x2,%eax
4857b3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4857b6:	eb 05                	jmp    0x4857bd
4857b8:	b8 01 00 00 00       	mov    $0x1,%eax
4857bd:	8d 1c 00             	lea    (%eax,%eax,1),%ebx
4857c0:	03 fb                	add    %ebx,%edi
4857c2:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4857c5:	8b 5d 10             	mov    0x10(%ebp),%ebx
4857c8:	89 7d cc             	mov    %edi,-0x34(%ebp)
4857cb:	83 f8 01             	cmp    $0x1,%eax
4857ce:	0f 8e 2b 02 00 00    	jle    0x4859ff
4857d4:	83 fe 2e             	cmp    $0x2e,%esi
4857d7:	72 56                	jb     0x48582f
4857d9:	8b 75 dc             	mov    -0x24(%ebp),%esi
4857dc:	8b c6                	mov    %esi,%eax
4857de:	99                   	cltd
4857df:	83 e2 7f             	and    $0x7f,%edx
4857e2:	03 c2                	add    %edx,%eax
4857e4:	c1 f8 07             	sar    $0x7,%eax
4857e7:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
4857ee:	8b c6                	mov    %esi,%eax
4857f0:	c1 e1 07             	shl    $0x7,%ecx
4857f3:	25 7f 00 00 80       	and    $0x8000007f,%eax
4857f8:	79 05                	jns    0x4857ff
4857fa:	48                   	dec    %eax
4857fb:	83 c8 80             	or     $0xffffff80,%eax
4857fe:	40                   	inc    %eax
4857ff:	03 c8                	add    %eax,%ecx
485801:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485808:	00
485809:	8b 0c c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%ecx
485810:	03 ce                	add    %esi,%ecx
485812:	3b ce                	cmp    %esi,%ecx
485814:	74 13                	je     0x485829
485816:	8d 55 90             	lea    -0x70(%ebp),%edx
485819:	e8 fb bf fe ff       	call   0x471819
48581e:	8b 55 c8             	mov    -0x38(%ebp),%edx
485821:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485824:	89 45 dc             	mov    %eax,-0x24(%ebp)
485827:	eb 0d                	jmp    0x485836
485829:	8b 55 c8             	mov    -0x38(%ebp),%edx
48582c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
48582f:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
485836:	8b 75 d8             	mov    -0x28(%ebp),%esi
485839:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
485840:	83 fe 01             	cmp    $0x1,%esi
485843:	7d 08                	jge    0x48584d
485845:	8b 45 f8             	mov    -0x8(%ebp),%eax
485848:	e9 83 00 00 00       	jmp    0x4858d0
48584d:	8b 43 7c             	mov    0x7c(%ebx),%eax
485850:	2b 45 ec             	sub    -0x14(%ebp),%eax
485853:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485856:	3b c8                	cmp    %eax,%ecx
485858:	77 24                	ja     0x48587e
48585a:	8b 45 f0             	mov    -0x10(%ebp),%eax
48585d:	03 c0                	add    %eax,%eax
48585f:	50                   	push   %eax
485860:	ff 75 d4             	push   -0x2c(%ebp)
485863:	51                   	push   %ecx
485864:	e8 fa 9c f9 ff       	call   0x41f563
485869:	83 c4 0c             	add    $0xc,%esp
48586c:	85 c0                	test   %eax,%eax
48586e:	75 0b                	jne    0x48587b
485870:	8b 45 f8             	mov    -0x8(%ebp),%eax
485873:	03 45 ec             	add    -0x14(%ebp),%eax
485876:	89 45 f8             	mov    %eax,-0x8(%ebp)
485879:	eb 44                	jmp    0x4858bf
48587b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48587e:	8b 55 dc             	mov    -0x24(%ebp),%edx
485881:	85 d2                	test   %edx,%edx
485883:	0f 8e 7c 46 00 00    	jle    0x489f05
485889:	8d 04 12             	lea    (%edx,%edx,1),%eax
48588c:	89 45 e0             	mov    %eax,-0x20(%ebp)
48588f:	8b 43 7c             	mov    0x7c(%ebx),%eax
485892:	2b 45 e0             	sub    -0x20(%ebp),%eax
485895:	3b c8                	cmp    %eax,%ecx
485897:	0f 87 68 46 00 00    	ja     0x489f05
48589d:	8d 04 12             	lea    (%edx,%edx,1),%eax
4858a0:	50                   	push   %eax
4858a1:	8d 45 90             	lea    -0x70(%ebp),%eax
4858a4:	50                   	push   %eax
4858a5:	51                   	push   %ecx
4858a6:	e8 b8 9c f9 ff       	call   0x41f563
4858ab:	83 c4 0c             	add    $0xc,%esp
4858ae:	85 c0                	test   %eax,%eax
4858b0:	0f 85 4c 46 00 00    	jne    0x489f02
4858b6:	8b 45 e0             	mov    -0x20(%ebp),%eax
4858b9:	01 45 f8             	add    %eax,-0x8(%ebp)
4858bc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4858bf:	8b 4d f4             	mov    -0xc(%ebp),%ecx