414c54:	41                   	inc    %ecx
414c55:	8b 55 ec             	mov    -0x14(%ebp),%edx
414c58:	03 c1                	add    %ecx,%eax
414c5a:	0f b7 04 45 40 58 4a 	movzwl 0x4a5840(,%eax,2),%eax
414c61:	00
414c62:	0f b6 0c c5 52 2f 4a 	movzbl 0x4a2f52(,%eax,8),%ecx
414c69:	00
414c6a:	b8 01 00 00 00       	mov    $0x1,%eax
414c6f:	d3 e0                	shl    %cl,%eax
414c71:	85 04 95 00 58 4a 00 	test   %eax,0x4a5800(,%edx,4)
414c78:	0f 85 09 01 00 00    	jne    0x414d87
414c7e:	8b 5d d0             	mov    -0x30(%ebp),%ebx
414c81:	8b 7d d8             	mov    -0x28(%ebp),%edi
414c84:	89 75 f8             	mov    %esi,-0x8(%ebp)
414c87:	8b 75 10             	mov    0x10(%ebp),%esi
414c8a:	8b 45 f8             	mov    -0x8(%ebp),%eax
414c8d:	83 be 8c 00 00 00 00 	cmpl   $0x0,0x8c(%esi)
414c94:	0f 85 ae 51 03 00    	jne    0x449e48
414c9a:	83 c3 02             	add    $0x2,%ebx
414c9d:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414ca0:	8b 55 f8             	mov    -0x8(%ebp),%edx
414ca3:	e9 77 fd ff ff       	jmp    0x414a1f
414ca8:	0f b7 4b 22          	movzwl 0x22(%ebx),%ecx
414cac:	8d 43 02             	lea    0x2(%ebx),%eax
414caf:	83 c3 22             	add    $0x22,%ebx
414cb2:	89 45 e0             	mov    %eax,-0x20(%ebp)
414cb5:	8b d1                	mov    %ecx,%edx
414cb7:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414cba:	8b c2                	mov    %edx,%eax
414cbc:	83 f8 6d             	cmp    $0x6d,%eax
414cbf:	0f 8e fd 04 00 00    	jle    0x4151c2
414cc5:	8b 55 d4             	mov    -0x2c(%ebp),%edx
414cc8:	b9 01 00 00 00       	mov    $0x1,%ecx
414ccd:	8b c1                	mov    %ecx,%eax
414ccf:	89 45 f0             	mov    %eax,-0x10(%ebp)
414cd2:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
414cd5:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
414cd9:	0f 84 2e 54 03 00    	je     0x44a10d
414cdf:	c7 45 d8 01 00 00 00 	movl   $0x1,-0x28(%ebp)
414ce6:	83 f8 01             	cmp    $0x1,%eax
414ce9:	0f 8c 32 05 00 00    	jl     0x415221
414cef:	90                   	nop
414cf0:	8b 45 f8             	mov    -0x8(%ebp),%eax
414cf3:	3b 46 7c             	cmp    0x7c(%esi),%eax
414cf6:	0f 83 c3 97 03 00    	jae    0x44e4bf
414cfc:	0f b7 08             	movzwl (%eax),%ecx
414cff:	83 c0 02             	add    $0x2,%eax
414d02:	89 45 f8             	mov    %eax,-0x8(%ebp)
414d05:	8b c1                	mov    %ecx,%eax
414d07:	25 00 fc 00 00       	and    $0xfc00,%eax
414d0c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
414d0f:	3d 00 d8 00 00       	cmp    $0xd800,%eax
414d14:	0f 84 bd 53 03 00    	je     0x44a0d7
414d1a:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
414d20:	0f 87 d9 53 03 00    	ja     0x44a0ff
414d26:	8b 75 e0             	mov    -0x20(%ebp),%esi
414d29:	83 e1 07             	and    $0x7,%ecx
414d2c:	b8 01 00 00 00       	mov    $0x1,%eax
414d31:	d3 e0                	shl    %cl,%eax
414d33:	8b 4d ec             	mov    -0x14(%ebp),%ecx
414d36:	c1 e9 03             	shr    $0x3,%ecx
414d39:	84 04 31             	test   %al,(%ecx,%esi,1)
414d3c:	8b 75 10             	mov    0x10(%ebp),%esi
414d3f:	0f 84 19 03 00 00    	je     0x41505e
414d45:	8b 4d d8             	mov    -0x28(%ebp),%ecx
414d48:	41                   	inc    %ecx
414d49:	89 4d d8             	mov    %ecx,-0x28(%ebp)
414d4c:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
414d4f:	7e 9f                	jle    0x414cf0
414d51:	8b 45 f8             	mov    -0x8(%ebp),%eax
414d54:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
414d57:	39 4d f0             	cmp    %ecx,-0x10(%ebp)
414d5a:	0f 84 40 ff ff ff    	je     0x414ca0
414d60:	85 d2                	test   %edx,%edx
414d62:	0f 85 e8 98 03 00    	jne    0x44e650
414d68:	8b c8                	mov    %eax,%ecx
414d6a:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
414d6d:	39 55 dc             	cmp    %edx,-0x24(%ebp)
414d70:	0f 84 6a 54 03 00    	je     0x44a1e0
414d76:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
414d79:	39 4d f0             	cmp    %ecx,-0x10(%ebp)
414d7c:	0f 8d fe 04 00 00    	jge    0x415280
414d82:	e9 ac 04 00 00       	jmp    0x415233
414d87:	8d 34 7e             	lea    (%esi,%edi,2),%esi
414d8a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
414d8d:	3b f3                	cmp    %ebx,%esi
414d8f:	0f 82 7e fe ff ff    	jb     0x414c13
414d95:	e9 e4 fe ff ff       	jmp    0x414c7e
414d9a:	8b 45 f8             	mov    -0x8(%ebp),%eax
414d9d:	3b 46 7c             	cmp    0x7c(%esi),%eax
414da0:	0f 83 19 97 03 00    	jae    0x44e4bf
414da6:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
414daa:	0f 84 61 58 03 00    	je     0x44a611
414db0:	0f b7 7b 02          	movzwl 0x2(%ebx),%edi
414db4:	83 c3 02             	add    $0x2,%ebx
414db7:	8b c7                	mov    %edi,%eax
414db9:	ba 01 00 00 00       	mov    $0x1,%edx
414dbe:	25 00 fc 00 00       	and    $0xfc00,%eax
414dc3:	3d 00 d8 00 00       	cmp    $0xd800,%eax
414dc8:	0f 84 90 57 03 00    	je     0x44a55e
414dce:	8b 45 f8             	mov    -0x8(%ebp),%eax
414dd1:	0f b7 08             	movzwl (%eax),%ecx
414dd4:	81 ff 80 00 00 00    	cmp    $0x80,%edi
414dda:	0f 83 a2 57 03 00    	jae    0x44a582
414de0:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
414de6:	77 07                	ja     0x414def
414de8:	8b 46 3c             	mov    0x3c(%esi),%eax
414deb:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
414def:	8b 46 3c             	mov    0x3c(%esi),%eax
414df2:	0f b6 04 38          	movzbl (%eax,%edi,1),%eax
414df6:	3b c1                	cmp    %ecx,%eax
414df8:	0f 85 60 02 00 00    	jne    0x41505e
414dfe:	83 c3 02             	add    $0x2,%ebx
414e01:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
414e05:	8b 55 f8             	mov    -0x8(%ebp),%edx
414e08:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414e0b:	e9 0f fc ff ff       	jmp    0x414a1f
414e10:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
414e14:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
414e1a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
414e1d:	8d 3c 09             	lea    (%ecx,%ecx,1),%edi
414e20:	89 7d ec             	mov    %edi,-0x14(%ebp)
414e23:	85 c0                	test   %eax,%eax
414e25:	0f 85 af 40 03 00    	jne    0x448eda
414e2b:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
414e31:	25 00 00 ff ff       	and    $0xffff0000,%eax
414e36:	0b c1                	or     %ecx,%eax
414e38:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
414e3e:	3b 7e 14             	cmp    0x14(%esi),%edi
414e41:	0f 8d b8 40 03 00    	jge    0x448eff
414e47:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414e4a:	3b f9                	cmp    %ecx,%edi
414e4c:	0f 8f bd 40 03 00    	jg     0x448f0f
414e52:	8b 46 10             	mov    0x10(%esi),%eax
414e55:	8b 4e 0c             	mov    0xc(%esi),%ecx
414e58:	2b 45 d8             	sub    -0x28(%ebp),%eax
414e5b:	8b 55 f8             	mov    -0x8(%ebp),%edx
414e5e:	8b 04 81             	mov    (%ecx,%eax,4),%eax
414e61:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
414e64:	8b 4d f8             	mov    -0x8(%ebp),%ecx
414e67:	2b 4e 78             	sub    0x78(%esi),%ecx
414e6a:	8b 46 0c             	mov    0xc(%esi),%eax
414e6d:	d1 f9                	sar    $1,%ecx
414e6f:	89 4c b8 04          	mov    %ecx,0x4(%eax,%edi,4)
414e73:	39 7d 0c             	cmp    %edi,0xc(%ebp)
414e76:	7f 06                	jg     0x414e7e
414e78:	8d 47 02             	lea    0x2(%edi),%eax
414e7b:	89 45 0c             	mov    %eax,0xc(%ebp)
414e7e:	8b 7d e0             	mov    -0x20(%ebp),%edi
414e81:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
414e84:	e9 5f fc ff ff       	jmp    0x414ae8
414e89:	8b 45 f8             	mov    -0x8(%ebp),%eax
414e8c:	3b 46 7c             	cmp    0x7c(%esi),%eax
414e8f:	0f 83 2a 96 03 00    	jae    0x44e4bf
414e95:	0f b7 08             	movzwl (%eax),%ecx
414e98:	83 c0 02             	add    $0x2,%eax
414e9b:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
414e9f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
414ea2:	89 45 f8             	mov    %eax,-0x8(%ebp)
414ea5:	74 12                	je     0x414eb9
414ea7:	8b c1                	mov    %ecx,%eax
414ea9:	25 00 fc 00 00       	and    $0xfc00,%eax
414eae:	3d 00 d8 00 00       	cmp    $0xd800,%eax
414eb3:	0f 84 0e 4d 03 00    	je     0x449bc7
414eb9:	8b c1                	mov    %ecx,%eax
414ebb:	99                   	cltd
414ebc:	83 e2 7f             	and    $0x7f,%edx
414ebf:	03 c2                	add    %edx,%eax
414ec1:	8b 55 ec             	mov    -0x14(%ebp),%edx
414ec4:	c1 f8 07             	sar    $0x7,%eax
414ec7:	0f b6 88 40 3b 4b 00 	movzbl 0x4b3b40(%eax),%ecx
414ece:	8b c2                	mov    %edx,%eax
414ed0:	c1 e1 07             	shl    $0x7,%ecx
414ed3:	25 7f 00 00 80       	and    $0x8000007f,%eax
414ed8:	79 05                	jns    0x414edf
414eda:	48                   	dec    %eax
414edb:	83 c8 80             	or     $0xffffff80,%eax
414ede:	40                   	inc    %eax
414edf:	03 c8                	add    %eax,%ecx
414ee1:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
414ee5:	0f b7 0c 4d 40 58 4a 	movzwl 0x4a5840(,%ecx,2),%ecx
414eec:	00
414eed:	89 4d ec             	mov    %ecx,-0x14(%ebp)
414ef0:	83 f8 09             	cmp    $0x9,%eax
414ef3:	0f 85 f6 4c 03 00    	jne    0x449bef
414ef9:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
414efd:	8b 0c 85 d0 45 4a 00 	mov    0x4a45d0(,%eax,4),%ecx
414f04:	8d 04 85 d0 45 4a 00 	lea    0x4a45d0(,%eax,4),%eax
414f0b:	3b d1                	cmp    %ecx,%edx
414f0d:	0f 82 de 4e 03 00    	jb     0x449df1
414f13:	8d 40 04             	lea    0x4(%eax),%eax
414f16:	3b d1                	cmp    %ecx,%edx
414f18:	74 0b                	je     0x414f25
414f1a:	8b 08                	mov    (%eax),%ecx
414f1c:	3b d1                	cmp    %ecx,%edx
414f1e:	73 f3                	jae    0x414f13
414f20:	e9 cc 4e 03 00       	jmp    0x449df1
414f25:	83 ff 10             	cmp    $0x10,%edi
414f28:	0f 85 30 01 00 00    	jne    0x41505e
414f2e:	8b 55 f8             	mov    -0x8(%ebp),%edx
414f31:	83 c3 06             	add    $0x6,%ebx
414f34:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414f37:	e9 e3 fa ff ff       	jmp    0x414a1f
414f3c:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
414f40:	0f 84 e9 55 03 00    	je     0x44a52f
414f46:	66 8b 43 02          	mov    0x2(%ebx),%ax
414f4a:	83 c3 02             	add    $0x2,%ebx
414f4d:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
414f52:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414f55:	66 23 c1             	and    %cx,%ax
414f58:	bf 01 00 00 00       	mov    $0x1,%edi
414f5d:	b9 00 d8 00 00       	mov    $0xd800,%ecx
414f62:	66 3b c1             	cmp    %cx,%ax
414f65:	0f 84 5c 04 00 00    	je     0x4153c7
414f6b:	8b 46 7c             	mov    0x7c(%esi),%eax
414f6e:	8b 55 f8             	mov    -0x8(%ebp),%edx
414f71:	2b c2                	sub    %edx,%eax
414f73:	d1 f8                	sar    $1,%eax
414f75:	3b f8                	cmp    %eax,%edi
414f77:	0f 8f 01 99 03 00    	jg     0x44e87e
414f7d:	85 ff                	test   %edi,%edi
414f7f:	0f 8e 1b fd ff ff    	jle    0x414ca0
414f85:	66 8b 0b             	mov    (%ebx),%cx
414f88:	4f                   	dec    %edi
414f89:	66 8b 02             	mov    (%edx),%ax
414f8c:	83 c3 02             	add    $0x2,%ebx
414f8f:	83 c2 02             	add    $0x2,%edx
414f92:	89 5d d0             	mov    %ebx,-0x30(%ebp)
414f95:	89 55 f8             	mov    %edx,-0x8(%ebp)
414f98:	66 3b c8             	cmp    %ax,%cx
414f9b:	0f 85 bd 00 00 00    	jne    0x41505e
414fa1:	85 ff                	test   %edi,%edi
414fa3:	0f 8e f7 fc ff ff    	jle    0x414ca0
414fa9:	eb da                	jmp    0x414f85
414fab:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
414faf:	89 55 d8             	mov    %edx,-0x28(%ebp)
414fb2:	8d 04 12             	lea    (%edx,%edx,1),%eax
414fb5:	89 45 ec             	mov    %eax,-0x14(%ebp)
414fb8:	3b 46 14             	cmp    0x14(%esi),%eax
414fbb:	0f 8d 83 fb ff ff    	jge    0x414b44
414fc1:	8b 4e 0c             	mov    0xc(%esi),%ecx
414fc4:	8b 55 ec             	mov    -0x14(%ebp),%edx
414fc7:	8b 04 81             	mov    (%ecx,%eax,4),%eax
414fca:	89 45 c4             	mov    %eax,-0x3c(%ebp)
414fcd:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
414fd1:	89 45 c8             	mov    %eax,-0x38(%ebp)
414fd4:	8b 46 10             	mov    0x10(%esi),%eax
414fd7:	2b 45 d8             	sub    -0x28(%ebp),%eax
414fda:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
414fdd:	8b 01                	mov    (%ecx),%eax
414fdf:	89 45 cc             	mov    %eax,-0x34(%ebp)
414fe2:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
414fe8:	89 45 e0             	mov    %eax,-0x20(%ebp)
414feb:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
414ff1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
414ff4:	8b 45 f8             	mov    -0x8(%ebp),%eax
414ff7:	2b 46 78             	sub    0x78(%esi),%eax
414ffa:	d1 f8                	sar    $1,%eax
414ffc:	89 01                	mov    %eax,(%ecx)
414ffe:	8b ff                	mov    %edi,%edi
415000:	81 ff 88 00 00 00    	cmp    $0x88,%edi
415006:	0f 83 f9 ad 03 00    	jae    0x44fe05
41500c:	8b 45 18             	mov    0x18(%ebp),%eax
41500f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
415012:	40                   	inc    %eax
415013:	50                   	push   %eax
415014:	ff 75 14             	push   0x14(%ebp)
415017:	0f b7 03             	movzwl (%ebx),%eax
41501a:	56                   	push   %esi
41501b:	ff 75 0c             	push   0xc(%ebp)
41501e:	0f b6 80 50 57 4a 00 	movzbl 0x4a5750(%eax),%eax
415025:	ff 75 08             	push   0x8(%ebp)
415028:	8d 14 43             	lea    (%ebx,%eax,2),%edx
41502b:	e8 90 f9 ff ff       	call   0x4149c0
415030:	8b d0                	mov    %eax,%edx
415032:	83 c4 14             	add    $0x14,%esp
415035:	81 fa 1b fc ff ff    	cmp    $0xfffffc1b,%edx
41503b:	0f 84 1b ae 03 00    	je     0x44fe5c
415041:	81 fa 20 fc ff ff    	cmp    $0xfffffc20,%edx
415047:	0f 84 c7 ad 03 00    	je     0x44fe14
41504d:	85 d2                	test   %edx,%edx
41504f:	0f 84 e4 ad 03 00    	je     0x44fe39
415055:	8b c2                	mov    %edx,%eax
415057:	5f                   	pop    %edi
415058:	5e                   	pop    %esi
415059:	5b                   	pop    %ebx
41505a:	8b e5                	mov    %ebp,%esp
41505c:	5d                   	pop    %ebp
41505d:	c3                   	ret
41505e:	5f                   	pop    %edi
41505f:	5e                   	pop    %esi
415060:	33 c0                	xor    %eax,%eax
415062:	5b                   	pop    %ebx
415063:	8b e5                	mov    %ebp,%esp
415065:	5d                   	pop    %ebp
415066:	c3                   	ret
415067:	8d 4f ab             	lea    -0x55(%edi),%ecx
41506a:	83 c3 02             	add    $0x2,%ebx
41506d:	f6 c1 01             	test   $0x1,%cl
415070:	0f 84 62 03 00 00    	je     0x4153d8
415076:	b8 01 00 00 00       	mov    $0x1,%eax
41507b:	0f be b9 3c 57 4a 00 	movsbl 0x4a573c(%ecx),%edi
415082:	0f be 91 30 57 4a 00 	movsbl 0x4a5730(%ecx),%edx
415089:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41508c:	89 55 f4             	mov    %edx,-0xc(%ebp)
41508f:	89 7d e8             	mov    %edi,-0x18(%ebp)
415092:	85 ff                	test   %edi,%edi
415094:	75 07                	jne    0x41509d
415096:	c7 45 e8 ff ff ff 7f 	movl   $0x7fffffff,-0x18(%ebp)
41509d:	0f b7 3b             	movzwl (%ebx),%edi
4150a0:	83 c3 02             	add    $0x2,%ebx
4150a3:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4150a6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4150a9:	83 ff 10             	cmp    $0x10,%edi
4150ac:	0f 84 42 63 03 00    	je     0x44b3f4
4150b2:	83 ff 0f             	cmp    $0xf,%edi
4150b5:	0f 84 30 63 03 00    	je     0x44b3eb
4150bb:	83 c9 ff             	or     $0xffffffff,%ecx
4150be:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4150c1:	85 d2                	test   %edx,%edx
4150c3:	0f 8f 4a 63 03 00    	jg     0x44b413
4150c9:	8b 7d f8             	mov    -0x8(%ebp),%edi
4150cc:	3b 55 e8             	cmp    -0x18(%ebp),%edx
4150cf:	0f 84 cb fb ff ff    	je     0x414ca0
4150d5:	85 c0                	test   %eax,%eax
4150d7:	0f 84 b8 78 03 00    	je     0x44c995
4150dd:	85 c9                	test   %ecx,%ecx
4150df:	0f 89 85 9b 03 00    	jns    0x44ec6a
4150e5:	8b 45 18             	mov    0x18(%ebp),%eax
4150e8:	8b d3                	mov    %ebx,%edx
4150ea:	40                   	inc    %eax
4150eb:	8b cf                	mov    %edi,%ecx
4150ed:	50                   	push   %eax
4150ee:	ff 75 14             	push   0x14(%ebp)
4150f1:	56                   	push   %esi
4150f2:	ff 75 0c             	push   0xc(%ebp)
4150f5:	ff 75 08             	push   0x8(%ebp)
4150f8:	e8 c3 f8 ff ff       	call   0x4149c0
4150fd:	83 c4 14             	add    $0x14,%esp
415100:	83 7d e4 16          	cmpl   $0x16,-0x1c(%ebp)
415104:	0f 84 90 a4 03 00    	je     0x44f59a
41510a:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
41510e:	0f 84 5e a9 03 00    	je     0x44fa72
415114:	85 c0                	test   %eax,%eax
415116:	0f 85 21 fa ff ff    	jne    0x414b3d
41511c:	8d 64 24 00          	lea    0x0(%esp),%esp
415120:	8b 55 f4             	mov    -0xc(%ebp),%edx
415123:	3b 55 e8             	cmp    -0x18(%ebp),%edx
415126:	0f 8d 32 ff ff ff    	jge    0x41505e
41512c:	8b 4e 7c             	mov    0x7c(%esi),%ecx