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
485d22:	79 05                	jns    0x485d29
485d24:	48                   	dec    %eax
485d25:	83 c8 80             	or     $0xffffff80,%eax
485d28:	40                   	inc    %eax
485d29:	03 c8                	add    %eax,%ecx
485d2b:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485d32:	00
485d33:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
485d36:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
485d3d:	03 c2                	add    %edx,%eax
485d3f:	eb 13                	jmp    0x485d54
485d41:	81 fa ff 00 00 00    	cmp    $0xff,%edx
485d47:	77 09                	ja     0x485d52
485d49:	8b 43 40             	mov    0x40(%ebx),%eax
485d4c:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
485d50:	eb 02                	jmp    0x485d54
485d52:	8b c2                	mov    %edx,%eax
485d54:	3b d1                	cmp    %ecx,%edx
485d56:	0f 84 18 48 f8 ff    	je     0x40a574
485d5c:	3b c1                	cmp    %ecx,%eax
485d5e:	0f 85 fc 45 f8 ff    	jne    0x40a360
485d64:	e9 0b 48 f8 ff       	jmp    0x40a574
485d69:	0f b7 10             	movzwl (%eax),%edx
485d6c:	0f b7 4f 02          	movzwl 0x2(%edi),%ecx
485d70:	83 c0 02             	add    $0x2,%eax
485d73:	89 45 f8             	mov    %eax,-0x8(%ebp)
485d76:	3b ca                	cmp    %edx,%ecx
485d78:	0f 84 f6 47 f8 ff    	je     0x40a574
485d7e:	83 fe 20             	cmp    $0x20,%esi
485d81:	75 17                	jne    0x485d9a
485d83:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
485d89:	77 07                	ja     0x485d92
485d8b:	8b 43 40             	mov    0x40(%ebx),%eax
485d8e:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
485d92:	3b ca                	cmp    %edx,%ecx
485d94:	0f 84 da 47 f8 ff    	je     0x40a574
485d9a:	83 c7 04             	add    $0x4,%edi
485d9d:	89 7d cc             	mov    %edi,-0x34(%ebp)
485da0:	e9 bb 45 f8 ff       	jmp    0x40a360
485da5:	0f b7 47 02          	movzwl 0x2(%edi),%eax
485da9:	89 45 f0             	mov    %eax,-0x10(%ebp)
485dac:	89 45 dc             	mov    %eax,-0x24(%ebp)
485daf:	83 c7 04             	add    $0x4,%edi
485db2:	e9 d0 00 00 00       	jmp    0x485e87
485db7:	0f b7 57 02          	movzwl 0x2(%edi),%edx
485dbb:	33 c0                	xor    %eax,%eax
485dbd:	89 45 dc             	mov    %eax,-0x24(%ebp)
485dc0:	89 55 f0             	mov    %edx,-0x10(%ebp)
485dc3:	83 f9 42             	cmp    $0x42,%ecx
485dc6:	74 12                	je     0x485dda
485dc8:	83 f9 4f             	cmp    $0x4f,%ecx
485dcb:	74 0d                	je     0x485dda
485dcd:	33 d2                	xor    %edx,%edx
485dcf:	89 55 c8             	mov    %edx,-0x38(%ebp)
485dd2:	83 c7 04             	add    $0x4,%edi
485dd5:	e9 ad 00 00 00       	jmp    0x485e87
485dda:	ba 01 00 00 00       	mov    $0x1,%edx
485ddf:	89 55 c8             	mov    %edx,-0x38(%ebp)
485de2:	83 c7 04             	add    $0x4,%edi
485de5:	e9 9d 00 00 00       	jmp    0x485e87
485dea:	33 c0                	xor    %eax,%eax
485dec:	b9 01 00 00 00       	mov    $0x1,%ecx
485df1:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485df4:	89 45 dc             	mov    %eax,-0x24(%ebp)
485df7:	c7 45 f0 ff ff ff 7f 	movl   $0x7fffffff,-0x10(%ebp)
485dfe:	83 c7 02             	add    $0x2,%edi
485e01:	e9 84 00 00 00       	jmp    0x485e8a
485e06:	b9 01 00 00 00       	mov    $0x1,%ecx
485e0b:	8b c1                	mov    %ecx,%eax
485e0d:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485e10:	89 45 dc             	mov    %eax,-0x24(%ebp)
485e13:	c7 45 f0 ff ff ff 7f 	movl   $0x7fffffff,-0x10(%ebp)
485e1a:	83 c7 02             	add    $0x2,%edi
485e1d:	eb 6b                	jmp    0x485e8a
485e1f:	b9 01 00 00 00       	mov    $0x1,%ecx
485e24:	33 c0                	xor    %eax,%eax
485e26:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485e29:	89 45 dc             	mov    %eax,-0x24(%ebp)
485e2c:	89 4d f0             	mov    %ecx,-0x10(%ebp)
485e2f:	83 c7 02             	add    $0x2,%edi
485e32:	eb 56                	jmp    0x485e8a
485e34:	0f b7 5f 02          	movzwl 0x2(%edi),%ebx
485e38:	33 c0                	xor    %eax,%eax
485e3a:	b9 01 00 00 00       	mov    $0x1,%ecx
485e3f:	89 4d d0             	mov    %ecx,-0x30(%ebp)
485e42:	89 45 dc             	mov    %eax,-0x24(%ebp)
485e45:	89 5d f0             	mov    %ebx,-0x10(%ebp)
485e48:	83 c7 04             	add    $0x4,%edi
485e4b:	eb 3d                	jmp    0x485e8a
485e4d:	83 fe 48             	cmp    $0x48,%esi
485e50:	1b c0                	sbb    %eax,%eax
485e52:	83 e0 f3             	and    $0xfffffff3,%eax
485e55:	83 c0 48             	add    $0x48,%eax
485e58:	8b ce                	mov    %esi,%ecx
485e5a:	2b c8                	sub    %eax,%ecx
485e5c:	0f b6 d1             	movzbl %cl,%edx
485e5f:	0f be 81 7c e4 49 00 	movsbl 0x49e47c(%ecx),%eax
485e66:	0f be 89 20 e5 49 00 	movsbl 0x49e520(%ecx),%ecx
485e6d:	83 e2 01             	and    $0x1,%edx
485e70:	83 c7 02             	add    $0x2,%edi
485e73:	89 55 c8             	mov    %edx,-0x38(%ebp)
485e76:	89 45 dc             	mov    %eax,-0x24(%ebp)
485e79:	89 4d f0             	mov    %ecx,-0x10(%ebp)
485e7c:	85 c9                	test   %ecx,%ecx
485e7e:	75 07                	jne    0x485e87
485e80:	c7 45 f0 ff ff ff 7f 	movl   $0x7fffffff,-0x10(%ebp)
485e87:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485e8a:	0f b7 1f             	movzwl (%edi),%ebx
485e8d:	83 c7 02             	add    $0x2,%edi
485e90:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
485e94:	89 5d e8             	mov    %ebx,-0x18(%ebp)
485e97:	8b 5d 10             	mov    0x10(%ebp),%ebx
485e9a:	89 7d cc             	mov    %edi,-0x34(%ebp)
485e9d:	74 39                	je     0x485ed8
485e9f:	8b 45 e8             	mov    -0x18(%ebp),%eax
485ea2:	25 00 fc 00 00       	and    $0xfc00,%eax
485ea7:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485eac:	75 27                	jne    0x485ed5
485eae:	0f b7 07             	movzwl (%edi),%eax
485eb1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
485eb4:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
485eba:	25 ff 03 00 00       	and    $0x3ff,%eax
485ebf:	c1 e3 0a             	shl    $0xa,%ebx
485ec2:	0b c3                	or     %ebx,%eax
485ec4:	8b 5d 10             	mov    0x10(%ebp),%ebx
485ec7:	05 00 00 01 00       	add    $0x10000,%eax
485ecc:	83 c7 02             	add    $0x2,%edi
485ecf:	89 45 e8             	mov    %eax,-0x18(%ebp)
485ed2:	89 7d cc             	mov    %edi,-0x34(%ebp)
485ed5:	8b 45 dc             	mov    -0x24(%ebp),%eax
485ed8:	83 fe 48             	cmp    $0x48,%esi
485edb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
485ede:	0f 82 0f 03 00 00    	jb     0x4861f3
485ee4:	85 f6                	test   %esi,%esi
485ee6:	74 4e                	je     0x485f36
485ee8:	83 7d e8 7f          	cmpl   $0x7f,-0x18(%ebp)
485eec:	76 48                	jbe    0x485f36
485eee:	8b 45 e8             	mov    -0x18(%ebp),%eax
485ef1:	99                   	cltd
485ef2:	83 e2 7f             	and    $0x7f,%edx
485ef5:	03 c2                	add    %edx,%eax
485ef7:	8b 55 e8             	mov    -0x18(%ebp),%edx
485efa:	c1 f8 07             	sar    $0x7,%eax
485efd:	0f b6 88 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%ecx
485f04:	8b c2                	mov    %edx,%eax
485f06:	c1 e1 07             	shl    $0x7,%ecx
485f09:	25 7f 00 00 80       	and    $0x8000007f,%eax
485f0e:	79 05                	jns    0x485f15
485f10:	48                   	dec    %eax
485f11:	83 c8 80             	or     $0xffffff80,%eax
485f14:	40                   	inc    %eax
485f15:	03 c8                	add    %eax,%ecx
485f17:	0f b7 04 4d 08 e6 49 	movzwl 0x49e608(,%ecx,2),%eax
485f1e:	00
485f1f:	8b 4d d0             	mov    -0x30(%ebp),%ecx
485f22:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
485f29:	03 c2                	add    %edx,%eax
485f2b:	8b 55 c8             	mov    -0x38(%ebp),%edx
485f2e:	89 45 e0             	mov    %eax,-0x20(%ebp)
485f31:	8b 45 dc             	mov    -0x24(%ebp),%eax
485f34:	eb 2a                	jmp    0x485f60
485f36:	81 7d e8 ff 00 00 00 	cmpl   $0xff,-0x18(%ebp)
485f3d:	8b 5d 10             	mov    0x10(%ebp),%ebx
485f40:	77 15                	ja     0x485f57
485f42:	8b 75 e8             	mov    -0x18(%ebp),%esi
485f45:	8b 43 40             	mov    0x40(%ebx),%eax
485f48:	0f b6 04 30          	movzbl (%eax,%esi,1),%eax
485f4c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
485f4f:	89 45 e0             	mov    %eax,-0x20(%ebp)
485f52:	8b 45 dc             	mov    -0x24(%ebp),%eax
485f55:	eb 09                	jmp    0x485f60
485f57:	8b 5d e8             	mov    -0x18(%ebp),%ebx
485f5a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
485f5d:	8b 5d 10             	mov    0x10(%ebp),%ebx
485f60:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)