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
485ad8:	3b d3                	cmp    %ebx,%edx
485ada:	8b 5d 10             	mov    0x10(%ebp),%ebx
485add:	74 0b                	je     0x485aea
485adf:	0f b7 18             	movzwl (%eax),%ebx
485ae2:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
485ae5:	8b 5d 10             	mov    0x10(%ebp),%ebx
485ae8:	75 33                	jne    0x485b1d
485aea:	83 c0 02             	add    $0x2,%eax
485aed:	46                   	inc    %esi
485aee:	89 45 f8             	mov    %eax,-0x8(%ebp)
485af1:	3b 75 e8             	cmp    -0x18(%ebp),%esi
485af4:	7c da                	jl     0x485ad0
485af6:	eb 25                	jmp    0x485b1d
485af8:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
485aff:	74 1c                	je     0x485b1d
485b01:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
485b07:	76 14                	jbe    0x485b1d
485b09:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
485b10:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
485b17:	0f 8f 10 e6 ff ff    	jg     0x48412d
485b1d:	8b 55 e0             	mov    -0x20(%ebp),%edx
485b20:	85 c9                	test   %ecx,%ecx
485b22:	0f 85 38 48 f8 ff    	jne    0x40a360
485b28:	3b c2                	cmp    %edx,%eax
485b2a:	0f 84 a1 48 f8 ff    	je     0x40a3d1
485b30:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485b33:	8b 75 e0             	mov    -0x20(%ebp),%esi
485b36:	8b 45 18             	mov    0x18(%ebp),%eax
485b39:	40                   	inc    %eax
485b3a:	50                   	push   %eax
485b3b:	ff 75 14             	push   0x14(%ebp)
485b3e:	8b d7                	mov    %edi,%edx
485b40:	53                   	push   %ebx
485b41:	ff 75 0c             	push   0xc(%ebp)
485b44:	ff 75 08             	push   0x8(%ebp)
485b47:	e8 b4 47 f8 ff       	call   0x40a300
485b4c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485b4f:	83 e9 02             	sub    $0x2,%ecx
485b52:	83 c4 14             	add    $0x14,%esp
485b55:	89 4d f8             	mov    %ecx,-0x8(%ebp)
485b58:	85 c0                	test   %eax,%eax
485b5a:	0f 85 67 49 f8 ff    	jne    0x40a4c7
485b60:	3b ce                	cmp    %esi,%ecx
485b62:	75 d2                	jne    0x485b36
485b64:	e9 68 48 f8 ff       	jmp    0x40a3d1
485b69:	8b 45 d8             	mov    -0x28(%ebp),%eax
485b6c:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
485b73:	83 f8 01             	cmp    $0x1,%eax
485b76:	7d 05                	jge    0x485b7d
485b78:	8b 75 f8             	mov    -0x8(%ebp),%esi
485b7b:	eb 2c                	jmp    0x485ba9
485b7d:	8b 45 f8             	mov    -0x8(%ebp),%eax
485b80:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485b83:	0f 83 1c 50 f8 ff    	jae    0x40aba5
485b89:	0f b7 00             	movzwl (%eax),%eax
485b8c:	8b 75 f8             	mov    -0x8(%ebp),%esi
485b8f:	83 c6 02             	add    $0x2,%esi
485b92:	89 75 f8             	mov    %esi,-0x8(%ebp)
485b95:	39 45 dc             	cmp    %eax,-0x24(%ebp)
485b98:	0f 85 d6 49 f8 ff    	jne    0x40a574
485b9e:	ff 45 ec             	incl   -0x14(%ebp)
485ba1:	8b 45 d8             	mov    -0x28(%ebp),%eax
485ba4:	39 45 ec             	cmp    %eax,-0x14(%ebp)
485ba7:	7e d4                	jle    0x485b7d
485ba9:	3b 45 e8             	cmp    -0x18(%ebp),%eax
485bac:	0f 84 ae 47 f8 ff    	je     0x40a360
485bb2:	85 d2                	test   %edx,%edx
485bb4:	0f 85 a5 44 00 00    	jne    0x48a05f
485bba:	8b 45 f8             	mov    -0x8(%ebp),%eax
485bbd:	8b 55 d8             	mov    -0x28(%ebp),%edx
485bc0:	8b f0                	mov    %eax,%esi
485bc2:	89 75 e0             	mov    %esi,-0x20(%ebp)
485bc5:	3b 55 e8             	cmp    -0x18(%ebp),%edx
485bc8:	7d 22                	jge    0x485bec
485bca:	8b 75 dc             	mov    -0x24(%ebp),%esi
485bcd:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485bd0:	73 60                	jae    0x485c32
485bd2:	0f b7 00             	movzwl (%eax),%eax
485bd5:	3b f0                	cmp    %eax,%esi
485bd7:	75 0d                	jne    0x485be6
485bd9:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
485bdd:	8b 45 f8             	mov    -0x8(%ebp),%eax
485be0:	42                   	inc    %edx
485be1:	3b 55 e8             	cmp    -0x18(%ebp),%edx
485be4:	7c e7                	jl     0x485bcd
485be6:	8b 45 f8             	mov    -0x8(%ebp),%eax
485be9:	8b 75 e0             	mov    -0x20(%ebp),%esi
485bec:	85 c9                	test   %ecx,%ecx
485bee:	0f 85 6c 47 f8 ff    	jne    0x40a360
485bf4:	3b c6                	cmp    %esi,%eax
485bf6:	0f 84 d5 47 f8 ff    	je     0x40a3d1
485bfc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485bff:	8b 45 18             	mov    0x18(%ebp),%eax
485c02:	40                   	inc    %eax
485c03:	50                   	push   %eax
485c04:	ff 75 14             	push   0x14(%ebp)
485c07:	8b d7                	mov    %edi,%edx
485c09:	53                   	push   %ebx
485c0a:	ff 75 0c             	push   0xc(%ebp)
485c0d:	ff 75 08             	push   0x8(%ebp)
485c10:	e8 eb 46 f8 ff       	call   0x40a300
485c15:	8b 4d f8             	mov    -0x8(%ebp),%ecx
485c18:	83 e9 02             	sub    $0x2,%ecx
485c1b:	83 c4 14             	add    $0x14,%esp
485c1e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
485c21:	85 c0                	test   %eax,%eax
485c23:	0f 85 9e 48 f8 ff    	jne    0x40a4c7
485c29:	3b ce                	cmp    %esi,%ecx
485c2b:	75 d2                	jne    0x485bff
485c2d:	e9 9f 47 f8 ff       	jmp    0x40a3d1
485c32:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
485c39:	74 ae                	je     0x485be9
485c3b:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
485c41:	76 a6                	jbe    0x485be9
485c43:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
485c4a:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
485c51:	0f 8f d6 e4 ff ff    	jg     0x48412d
485c57:	eb 90                	jmp    0x485be9
485c59:	8b 45 f8             	mov    -0x8(%ebp),%eax
485c5c:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485c5f:	0f 83 2f 4f f8 ff    	jae    0x40ab94
485c65:	39 55 e4             	cmp    %edx,-0x1c(%ebp)
485c68:	0f 84 fb 00 00 00    	je     0x485d69
485c6e:	0f b7 57 02          	movzwl 0x2(%edi),%edx
485c72:	8b c2                	mov    %edx,%eax
485c74:	83 c7 04             	add    $0x4,%edi
485c77:	25 00 fc 00 00       	and    $0xfc00,%eax
485c7c:	89 55 f4             	mov    %edx,-0xc(%ebp)
485c7f:	89 7d cc             	mov    %edi,-0x34(%ebp)
485c82:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485c87:	75 22                	jne    0x485cab
485c89:	0f b7 07             	movzwl (%edi),%eax
485c8c:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
485c92:	c1 e2 0a             	shl    $0xa,%edx
485c95:	25 ff 03 00 00       	and    $0x3ff,%eax
485c9a:	0b d0                	or     %eax,%edx
485c9c:	81 c2 00 00 01 00    	add    $0x10000,%edx
485ca2:	83 c7 02             	add    $0x2,%edi
485ca5:	89 55 f4             	mov    %edx,-0xc(%ebp)
485ca8:	89 7d cc             	mov    %edi,-0x34(%ebp)
485cab:	8b 45 f8             	mov    -0x8(%ebp),%eax
485cae:	83 c0 02             	add    $0x2,%eax
485cb1:	0f b7 48 fe          	movzwl -0x2(%eax),%ecx
485cb5:	89 45 f8             	mov    %eax,-0x8(%ebp)
485cb8:	8b c1                	mov    %ecx,%eax
485cba:	25 00 fc 00 00       	and    $0xfc00,%eax
485cbf:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
485cc2:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485cc7:	75 23                	jne    0x485cec
485cc9:	8b 45 f8             	mov    -0x8(%ebp),%eax
485ccc:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
485cd2:	0f b7 00             	movzwl (%eax),%eax
485cd5:	c1 e1 0a             	shl    $0xa,%ecx
485cd8:	25 ff 03 00 00       	and    $0x3ff,%eax
485cdd:	0b c8                	or     %eax,%ecx
485cdf:	81 c1 00 00 01 00    	add    $0x10000,%ecx
485ce5:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
485ce9:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
485cec:	83 fe 1f             	cmp    $0x1f,%esi
485cef:	75 0d                	jne    0x485cfe
485cf1:	3b d1                	cmp    %ecx,%edx
485cf3:	0f 85 67 46 f8 ff    	jne    0x40a360
485cf9:	e9 76 48 f8 ff       	jmp    0x40a574
485cfe:	83 fa 7f             	cmp    $0x7f,%edx
485d01:	76 3e                	jbe    0x485d41
485d03:	8b c2                	mov    %edx,%eax
485d05:	99                   	cltd
485d06:	83 e2 7f             	and    $0x7f,%edx
485d09:	03 c2                	add    %edx,%eax
485d0b:	8b 55 f4             	mov    -0xc(%ebp),%edx
485d0e:	c1 f8 07             	sar    $0x7,%eax
485d11:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
485d18:	8b c2                	mov    %edx,%eax
485d1a:	c1 e1 07             	shl    $0x7,%ecx
485d1d:	25 7f 00 00 80       	and    $0x8000007f,%eax