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
488959:	83 7b 1c 02          	cmpl   $0x2,0x1c(%ebx)
48895d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488960:	75 20                	jne    0x488982
488962:	66 8b 01             	mov    (%ecx),%ax
488965:	66 3b 43 34          	cmp    0x34(%ebx),%ax
488969:	75 14                	jne    0x48897f
48896b:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488972:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
488979:	0f 8f ae b7 ff ff    	jg     0x48412d
48897f:	8b 45 e8             	mov    -0x18(%ebp),%eax
488982:	83 c1 02             	add    $0x2,%ecx
488985:	83 c0 02             	add    $0x2,%eax
488988:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48898b:	89 45 e8             	mov    %eax,-0x18(%ebp)
48898e:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488991:	73 25                	jae    0x4889b8
488993:	66 8b 01             	mov    (%ecx),%ax
488996:	c7 45 f4 00 fc 00 00 	movl   $0xfc00,-0xc(%ebp)
48899d:	66 23 45 f4          	and    -0xc(%ebp),%ax
4889a1:	c7 45 f4 00 dc 00 00 	movl   $0xdc00,-0xc(%ebp)
4889a8:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
4889ac:	75 0a                	jne    0x4889b8
4889ae:	83 c1 02             	add    $0x2,%ecx
4889b1:	83 45 e8 02          	addl   $0x2,-0x18(%ebp)
4889b5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4889b8:	42                   	inc    %edx
4889b9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4889bc:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4889bf:	0f 8c 13 ff ff ff    	jl     0x4888d8
4889c5:	e9 65 07 00 00       	jmp    0x48912f
4889ca:	3b 55 dc             	cmp    -0x24(%ebp),%edx
4889cd:	0f 8d 5c 07 00 00    	jge    0x48912f
4889d3:	8d 41 02             	lea    0x2(%ecx),%eax
4889d6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4889d9:	8b 43 7c             	mov    0x7c(%ebx),%eax
4889dc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4889df:	3b c8                	cmp    %eax,%ecx
4889e1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4889e4:	0f 83 40 01 00 00    	jae    0x488b2a
4889ea:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
4889ee:	74 23                	je     0x488a13
4889f0:	50                   	push   %eax
4889f1:	8d 53 1c             	lea    0x1c(%ebx),%edx
4889f4:	52                   	push   %edx
4889f5:	ff 75 ec             	push   -0x14(%ebp)
4889f8:	8b 53 18             	mov    0x18(%ebx),%edx
4889fb:	e8 fe 05 f8 ff       	call   0x408ffe
488a00:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488a03:	83 c4 0c             	add    $0xc,%esp
488a06:	85 c0                	test   %eax,%eax
488a08:	0f 85 21 07 00 00    	jne    0x48912f
488a0e:	8b 55 f0             	mov    -0x10(%ebp),%edx
488a11:	eb 30                	jmp    0x488a43
488a13:	8b 43 1c             	mov    0x1c(%ebx),%eax
488a16:	03 c0                	add    %eax,%eax
488a18:	29 45 ec             	sub    %eax,-0x14(%ebp)
488a1b:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
488a1e:	77 23                	ja     0x488a43
488a20:	66 8b 01             	mov    (%ecx),%ax
488a23:	66 3b 43 34          	cmp    0x34(%ebx),%ax
488a27:	75 1a                	jne    0x488a43
488a29:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)
488a2d:	0f 84 fc 06 00 00    	je     0x48912f
488a33:	8b 45 e8             	mov    -0x18(%ebp),%eax
488a36:	66 8b 00             	mov    (%eax),%ax
488a39:	66 3b 43 36          	cmp    0x36(%ebx),%ax
488a3d:	0f 84 ec 06 00 00    	je     0x48912f
488a43:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488a4a:	8b 45 e8             	mov    -0x18(%ebp),%eax
488a4d:	74 34                	je     0x488a83
488a4f:	3b 43 7c             	cmp    0x7c(%ebx),%eax
488a52:	72 2f                	jb     0x488a83
488a54:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
488a58:	75 29                	jne    0x488a83
488a5a:	83 7b 1c 02          	cmpl   $0x2,0x1c(%ebx)
488a5e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488a61:	75 20                	jne    0x488a83
488a63:	66 8b 01             	mov    (%ecx),%ax
488a66:	66 3b 43 34          	cmp    0x34(%ebx),%ax
488a6a:	75 14                	jne    0x488a80
488a6c:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488a73:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
488a7a:	0f 8f ad b6 ff ff    	jg     0x48412d
488a80:	8b 45 e8             	mov    -0x18(%ebp),%eax
488a83:	83 c1 02             	add    $0x2,%ecx
488a86:	83 c0 02             	add    $0x2,%eax
488a89:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488a8c:	89 45 e8             	mov    %eax,-0x18(%ebp)
488a8f:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
488a92:	73 25                	jae    0x488ab9
488a94:	66 8b 01             	mov    (%ecx),%ax
488a97:	c7 45 f4 00 fc 00 00 	movl   $0xfc00,-0xc(%ebp)
488a9e:	66 23 45 f4          	and    -0xc(%ebp),%ax
488aa2:	c7 45 f4 00 dc 00 00 	movl   $0xdc00,-0xc(%ebp)
488aa9:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
488aad:	75 0a                	jne    0x488ab9
488aaf:	83 c1 02             	add    $0x2,%ecx
488ab2:	83 45 e8 02          	addl   $0x2,-0x18(%ebp)
488ab6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488ab9:	42                   	inc    %edx
488aba:	89 55 f0             	mov    %edx,-0x10(%ebp)
488abd:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488ac0:	0f 8c 13 ff ff ff    	jl     0x4889d9
488ac6:	e9 64 06 00 00       	jmp    0x48912f
488acb:	8b 45 dc             	mov    -0x24(%ebp),%eax
488ace:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
488ad3:	7d 4b                	jge    0x488b20
488ad5:	8b 55 f0             	mov    -0x10(%ebp),%edx
488ad8:	3b d0                	cmp    %eax,%edx
488ada:	0f 8d 4f 06 00 00    	jge    0x48912f
488ae0:	8b 43 7c             	mov    0x7c(%ebx),%eax
488ae3:	3b c8                	cmp    %eax,%ecx
488ae5:	73 43                	jae    0x488b2a
488ae7:	83 c1 02             	add    $0x2,%ecx
488aea:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488aed:	3b c8                	cmp    %eax,%ecx
488aef:	73 24                	jae    0x488b15
488af1:	66 8b 01             	mov    (%ecx),%ax
488af4:	c7 45 f4 00 fc 00 00 	movl   $0xfc00,-0xc(%ebp)
488afb:	66 23 45 f4          	and    -0xc(%ebp),%ax
488aff:	c7 45 f4 00 dc 00 00 	movl   $0xdc00,-0xc(%ebp)
488b06:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
488b0a:	8b 43 7c             	mov    0x7c(%ebx),%eax
488b0d:	75 06                	jne    0x488b15
488b0f:	83 c1 02             	add    $0x2,%ecx
488b12:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488b15:	42                   	inc    %edx
488b16:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488b19:	7c c8                	jl     0x488ae3
488b1b:	e9 0f 06 00 00       	jmp    0x48912f
488b20:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
488b23:	eb 02                	jmp    0x488b27
488b25:	8b ca                	mov    %edx,%ecx
488b27:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488b2a:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
488b31:	0f 84 f8 05 00 00    	je     0x48912f
488b37:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
488b3d:	0f 86 ec 05 00 00    	jbe    0x48912f
488b43:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
488b4a:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
488b51:	0f 8e d8 05 00 00    	jle    0x48912f
488b57:	b8 f4 ff ff ff       	mov    $0xfffffff4,%eax
488b5c:	e9 66 19 f8 ff       	jmp    0x40a4c7
488b61:	8b 45 dc             	mov    -0x24(%ebp),%eax
488b64:	2b 45 f0             	sub    -0x10(%ebp),%eax
488b67:	8b 53 7c             	mov    0x7c(%ebx),%edx
488b6a:	89 45 dc             	mov    %eax,-0x24(%ebp)
488b6d:	8b c2                	mov    %edx,%eax
488b6f:	2b c1                	sub    %ecx,%eax
488b71:	d1 f8                	sar    $1,%eax
488b73:	39 45 dc             	cmp    %eax,-0x24(%ebp)
488b76:	77 ad                	ja     0x488b25
488b78:	8b 45 dc             	mov    -0x24(%ebp),%eax
488b7b:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
488b7e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
488b81:	e9 a9 05 00 00       	jmp    0x48912f
488b86:	8b 55 f0             	mov    -0x10(%ebp),%edx
488b89:	3b 55 dc             	cmp    -0x24(%ebp),%edx
488b8c:	0f 8d 9d 05 00 00    	jge    0x48912f
488b92:	8b 43 7c             	mov    0x7c(%ebx),%eax
488b95:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
488b9c:	3b c8                	cmp    %eax,%ecx
488b9e:	73 8a                	jae    0x488b2a
488ba0:	0f b7 01             	movzwl (%ecx),%eax
488ba3:	89 45 e0             	mov    %eax,-0x20(%ebp)
488ba6:	25 00 fc 00 00       	and    $0xfc00,%eax
488bab:	3d 00 d8 00 00       	cmp    $0xd800,%eax
488bb0:	75 25                	jne    0x488bd7
488bb2:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
488bb6:	81 65 e0 ff 03 00 00 	andl   $0x3ff,-0x20(%ebp)
488bbd:	c1 65 e0 0a          	shll   $0xa,-0x20(%ebp)
488bc1:	25 ff 03 00 00       	and    $0x3ff,%eax
488bc6:	0b 45 e0             	or     -0x20(%ebp),%eax
488bc9:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
488bd0:	05 00 00 01 00       	add    $0x10000,%eax