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
4858c2:	41                   	inc    %ecx
4858c3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4858c6:	3b ce                	cmp    %esi,%ecx
4858c8:	7e 83                	jle    0x48584d
4858ca:	8b 55 c8             	mov    -0x38(%ebp),%edx
4858cd:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4858d0:	3b 75 e8             	cmp    -0x18(%ebp),%esi
4858d3:	0f 84 87 4a f8 ff    	je     0x40a360
4858d9:	85 d2                	test   %edx,%edx
4858db:	0f 85 3f 46 00 00    	jne    0x489f20
4858e1:	8b d0                	mov    %eax,%edx
4858e3:	89 55 e0             	mov    %edx,-0x20(%ebp)
4858e6:	3b 75 e8             	cmp    -0x18(%ebp),%esi
4858e9:	0f 8d 9b 00 00 00    	jge    0x48598a
4858ef:	8b 43 7c             	mov    0x7c(%ebx),%eax
4858f2:	2b 45 ec             	sub    -0x14(%ebp),%eax
4858f5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4858f8:	3b c8                	cmp    %eax,%ecx
4858fa:	77 1e                	ja     0x48591a
4858fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4858ff:	03 c0                	add    %eax,%eax
485901:	50                   	push   %eax
485902:	ff 75 d4             	push   -0x2c(%ebp)
485905:	51                   	push   %ecx
485906:	e8 58 9c f9 ff       	call   0x41f563
48590b:	83 c4 0c             	add    $0xc,%esp
48590e:	85 c0                	test   %eax,%eax
485910:	75 05                	jne    0x485917
485912:	8b 45 ec             	mov    -0x14(%ebp),%eax
485915:	eb 32                	jmp    0x485949
485917:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48591a:	8b 55 dc             	mov    -0x24(%ebp),%edx
48591d:	85 d2                	test   %edx,%edx
48591f:	7e 33                	jle    0x485954
485921:	8d 04 12             	lea    (%edx,%edx,1),%eax
485924:	89 45 f4             	mov    %eax,-0xc(%ebp)
485927:	8b 43 7c             	mov    0x7c(%ebx),%eax
48592a:	2b 45 f4             	sub    -0xc(%ebp),%eax
48592d:	3b c8                	cmp    %eax,%ecx
48592f:	77 23                	ja     0x485954
485931:	8d 04 12             	lea    (%edx,%edx,1),%eax
485934:	50                   	push   %eax
485935:	8d 45 90             	lea    -0x70(%ebp),%eax
485938:	50                   	push   %eax
485939:	51                   	push   %ecx
48593a:	e8 24 9c f9 ff       	call   0x41f563
48593f:	83 c4 0c             	add    $0xc,%esp
485942:	85 c0                	test   %eax,%eax
485944:	75 0e                	jne    0x485954
485946:	8b 45 f4             	mov    -0xc(%ebp),%eax
485949:	01 45 f8             	add    %eax,-0x8(%ebp)
48594c:	46                   	inc    %esi
48594d:	3b 75 e8             	cmp    -0x18(%ebp),%esi
485950:	7c 9d                	jl     0x4858ef
485952:	eb 2d                	jmp    0x485981
485954:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
48595b:	8b 45 f8             	mov    -0x8(%ebp),%eax
48595e:	74 24                	je     0x485984
485960:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485963:	72 1c                	jb     0x485981
485965:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
48596b:	76 14                	jbe    0x485981
48596d:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
485974:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
48597b:	0f 8f ac e7 ff ff    	jg     0x48412d
485981:	8b 45 f8             	mov    -0x8(%ebp),%eax
485984:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485987:	8b 55 e0             	mov    -0x20(%ebp),%edx
48598a:	85 c9                	test   %ecx,%ecx
48598c:	0f 85 ce 49 f8 ff    	jne    0x40a360
485992:	3b c2                	cmp    %edx,%eax
485994:	0f 84 37 4a f8 ff    	je     0x40a3d1
48599a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48599d:	8b 75 e0             	mov    -0x20(%ebp),%esi
4859a0:	8b 45 18             	mov    0x18(%ebp),%eax
4859a3:	40                   	inc    %eax
4859a4:	50                   	push   %eax
4859a5:	ff 75 14             	push   0x14(%ebp)
4859a8:	8b d7                	mov    %edi,%edx
4859aa:	53                   	push   %ebx
4859ab:	ff 75 0c             	push   0xc(%ebp)
4859ae:	ff 75 08             	push   0x8(%ebp)
4859b1:	e8 4a 49 f8 ff       	call   0x40a300
4859b6:	83 c4 14             	add    $0x14,%esp
4859b9:	85 c0                	test   %eax,%eax
4859bb:	0f 85 06 4b f8 ff    	jne    0x40a4c7
4859c1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4859c4:	83 e9 02             	sub    $0x2,%ecx
4859c7:	ba 00 fc 00 00       	mov    $0xfc00,%edx
4859cc:	66 8b 01             	mov    (%ecx),%ax
4859cf:	66 23 c2             	and    %dx,%ax
4859d2:	ba 00 dc 00 00       	mov    $0xdc00,%edx
4859d7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4859da:	66 3b c2             	cmp    %dx,%ax
4859dd:	75 06                	jne    0x4859e5
4859df:	83 e9 02             	sub    $0x2,%ecx
4859e2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4859e5:	3b ce                	cmp    %esi,%ecx
4859e7:	75 b7                	jne    0x4859a0
4859e9:	e9 e3 49 f8 ff       	jmp    0x40a3d1
4859ee:	0f b7 1f             	movzwl (%edi),%ebx
4859f1:	83 c7 02             	add    $0x2,%edi
4859f4:	89 5d dc             	mov    %ebx,-0x24(%ebp)
4859f7:	8b 5d 10             	mov    0x10(%ebp),%ebx
4859fa:	89 7d cc             	mov    %edi,-0x34(%ebp)
4859fd:	eb 03                	jmp    0x485a02
4859ff:	8b 45 e4             	mov    -0x1c(%ebp),%eax
485a02:	83 fe 2e             	cmp    $0x2e,%esi
485a05:	0f 82 5e 01 00 00    	jb     0x485b69
485a0b:	8b 75 dc             	mov    -0x24(%ebp),%esi
485a0e:	85 c0                	test   %eax,%eax
485a10:	74 46                	je     0x485a58
485a12:	83 fe 7f             	cmp    $0x7f,%esi
485a15:	76 41                	jbe    0x485a58
485a17:	8b c6                	mov    %esi,%eax
485a19:	99                   	cltd
485a1a:	83 e2 7f             	and    $0x7f,%edx
485a1d:	03 c2                	add    %edx,%eax
485a1f:	c1 f8 07             	sar    $0x7,%eax
485a22:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
485a29:	8b c6                	mov    %esi,%eax
485a2b:	c1 e1 07             	shl    $0x7,%ecx
485a2e:	25 7f 00 00 80       	and    $0x8000007f,%eax
485a33:	79 05                	jns    0x485a3a
485a35:	48                   	dec    %eax
485a36:	83 c8 80             	or     $0xffffff80,%eax
485a39:	40                   	inc    %eax
485a3a:	8b 55 c8             	mov    -0x38(%ebp),%edx
485a3d:	03 c8                	add    %eax,%ecx
485a3f:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485a46:	00
485a47:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485a4a:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
485a51:	03 c6                	add    %esi,%eax
485a53:	89 45 f0             	mov    %eax,-0x10(%ebp)
485a56:	eb 17                	jmp    0x485a6f
485a58:	81 fe ff 00 00 00    	cmp    $0xff,%esi
485a5e:	77 0c                	ja     0x485a6c
485a60:	8b 43 40             	mov    0x40(%ebx),%eax
485a63:	0f b6 04 30          	movzbl (%eax,%esi,1),%eax
485a67:	89 45 f0             	mov    %eax,-0x10(%ebp)
485a6a:	eb 03                	jmp    0x485a6f
485a6c:	89 75 f0             	mov    %esi,-0x10(%ebp)
485a6f:	8b 75 d8             	mov    -0x28(%ebp),%esi
485a72:	8b 45 f8             	mov    -0x8(%ebp),%eax
485a75:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
485a7c:	83 fe 01             	cmp    $0x1,%esi
485a7f:	7c 31                	jl     0x485ab2
485a81:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485a84:	0f 83 1b 51 f8 ff    	jae    0x40aba5
485a8a:	0f b7 18             	movzwl (%eax),%ebx
485a8d:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
485a90:	8b 5d 10             	mov    0x10(%ebp),%ebx
485a93:	74 0f                	je     0x485aa4
485a95:	0f b7 18             	movzwl (%eax),%ebx
485a98:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
485a9b:	8b 5d 10             	mov    0x10(%ebp),%ebx
485a9e:	0f 85 d0 4a f8 ff    	jne    0x40a574
485aa4:	ff 45 ec             	incl   -0x14(%ebp)
485aa7:	83 c0 02             	add    $0x2,%eax
485aaa:	89 45 f8             	mov    %eax,-0x8(%ebp)
485aad:	39 75 ec             	cmp    %esi,-0x14(%ebp)
485ab0:	7e cf                	jle    0x485a81
485ab2:	3b 75 e8             	cmp    -0x18(%ebp),%esi
485ab5:	0f 84 a5 48 f8 ff    	je     0x40a360
485abb:	85 d2                	test   %edx,%edx
485abd:	0f 85 25 45 00 00    	jne    0x489fe8
485ac3:	8b d0                	mov    %eax,%edx
485ac5:	89 55 e0             	mov    %edx,-0x20(%ebp)
485ac8:	3b 75 e8             	cmp    -0x18(%ebp),%esi
485acb:	7d 53                	jge    0x485b20
485acd:	8b 55 dc             	mov    -0x24(%ebp),%edx
485ad0:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485ad3:	73 23                	jae    0x485af8
485ad5:	0f b7 18             	movzwl (%eax),%ebx