486dc6:	8b c2                	mov    %edx,%eax
486dc8:	99                   	cltd
486dc9:	83 e2 7f             	and    $0x7f,%edx
486dcc:	03 c2                	add    %edx,%eax
486dce:	8b 55 f4             	mov    -0xc(%ebp),%edx
486dd1:	c1 f8 07             	sar    $0x7,%eax
486dd4:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
486ddb:	c1 e0 07             	shl    $0x7,%eax
486dde:	81 e2 7f 00 00 80    	and    $0x8000007f,%edx
486de4:	79 05                	jns    0x486deb
486de6:	4a                   	dec    %edx
486de7:	83 ca 80             	or     $0xffffff80,%edx
486dea:	42                   	inc    %edx
486deb:	03 c2                	add    %edx,%eax
486ded:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
486df4:	00
486df5:	0f b6 14 c5 0a b1 4a 	movzbl 0x4ab10a(,%eax,8),%edx
486dfc:	00
486dfd:	8b 43 7c             	mov    0x7c(%ebx),%eax
486e00:	89 55 f4             	mov    %edx,-0xc(%ebp)
486e03:	3b c8                	cmp    %eax,%ecx
486e05:	0f 83 b3 00 00 00    	jae    0x486ebe
486e0b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
486e0e:	8b f2                	mov    %edx,%esi
486e10:	0f b7 11             	movzwl (%ecx),%edx
486e13:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
486e1a:	89 55 ec             	mov    %edx,-0x14(%ebp)
486e1d:	85 db                	test   %ebx,%ebx
486e1f:	74 32                	je     0x486e53
486e21:	8b c2                	mov    %edx,%eax
486e23:	25 00 fc 00 00       	and    $0xfc00,%eax
486e28:	3d 00 d8 00 00       	cmp    $0xd800,%eax
486e2d:	75 24                	jne    0x486e53
486e2f:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
486e33:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
486e39:	25 ff 03 00 00       	and    $0x3ff,%eax
486e3e:	c1 e2 0a             	shl    $0xa,%edx
486e41:	0b d0                	or     %eax,%edx
486e43:	81 c2 00 00 01 00    	add    $0x10000,%edx
486e49:	89 55 ec             	mov    %edx,-0x14(%ebp)
486e4c:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
486e53:	8b 4d ec             	mov    -0x14(%ebp),%ecx
486e56:	8b c2                	mov    %edx,%eax
486e58:	99                   	cltd
486e59:	83 e2 7f             	and    $0x7f,%edx
486e5c:	03 c2                	add    %edx,%eax
486e5e:	c1 f8 07             	sar    $0x7,%eax
486e61:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
486e68:	c1 e0 07             	shl    $0x7,%eax
486e6b:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
486e71:	79 05                	jns    0x486e78
486e73:	49                   	dec    %ecx
486e74:	83 c9 80             	or     $0xffffff80,%ecx
486e77:	41                   	inc    %ecx
486e78:	03 c1                	add    %ecx,%eax
486e7a:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
486e81:	00
486e82:	0f b6 0c c5 0a b1 4a 	movzbl 0x4ab10a(,%eax,8),%ecx
486e89:	00
486e8a:	b8 01 00 00 00       	mov    $0x1,%eax
486e8f:	d3 e0                	shl    %cl,%eax
486e91:	85 04 b5 2c e5 49 00 	test   %eax,0x49e52c(,%esi,4)
486e98:	74 1b                	je     0x486eb5
486e9a:	8b 45 f4             	mov    -0xc(%ebp),%eax
486e9d:	8b f1                	mov    %ecx,%esi
486e9f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
486ea2:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
486ea5:	8b 45 e0             	mov    -0x20(%ebp),%eax
486ea8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
486eab:	3b c8                	cmp    %eax,%ecx
486ead:	0f 82 5d ff ff ff    	jb     0x486e10
486eb3:	eb 06                	jmp    0x486ebb
486eb5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
486eb8:	8b 45 e0             	mov    -0x20(%ebp),%eax
486ebb:	8b 5d 10             	mov    0x10(%ebp),%ebx
486ebe:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
486ec5:	74 20                	je     0x486ee7
486ec7:	3b c8                	cmp    %eax,%ecx
486ec9:	72 1c                	jb     0x486ee7
486ecb:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
486ed1:	76 14                	jbe    0x486ee7
486ed3:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
486eda:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
486ee1:	0f 8f 46 d2 ff ff    	jg     0x48412d
486ee7:	8b 45 e8             	mov    -0x18(%ebp),%eax
486eea:	40                   	inc    %eax
486eeb:	89 45 e8             	mov    %eax,-0x18(%ebp)
486eee:	3b 45 f0             	cmp    -0x10(%ebp),%eax
486ef1:	0f 8e 7f fe ff ff    	jle    0x486d76
486ef7:	8b 55 c8             	mov    -0x38(%ebp),%edx
486efa:	e9 93 3b f8 ff       	jmp    0x40aa92
486eff:	8b 45 e4             	mov    -0x1c(%ebp),%eax
486f02:	85 c0                	test   %eax,%eax
486f04:	0f 84 df 07 00 00    	je     0x4876e9
486f0a:	8b 45 d8             	mov    -0x28(%ebp),%eax
486f0d:	83 c0 fa             	add    $0xfffffffa,%eax
486f10:	83 f8 0f             	cmp    $0xf,%eax
486f13:	0f 87 fe 2b 00 00    	ja     0x489b17
486f19:	8b 45 d8             	mov    -0x28(%ebp),%eax
486f1c:	83 c0 fa             	add    $0xfffffffa,%eax
486f1f:	ff 24 85 7e b9 48 00 	jmp    *0x48b97e(,%eax,4)
486f26:	8b 45 e4             	mov    -0x1c(%ebp),%eax
486f29:	83 f9 01             	cmp    $0x1,%ecx
486f2c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
486f2f:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
486f36:	0f 8c 59 3b f8 ff    	jl     0x40aa95
486f3c:	8d 51 02             	lea    0x2(%ecx),%edx
486f3f:	89 55 e0             	mov    %edx,-0x20(%ebp)
486f42:	8b 53 7c             	mov    0x7c(%ebx),%edx
486f45:	3b ca                	cmp    %edx,%ecx
486f47:	0f 83 0a 2e 00 00    	jae    0x489d57
486f4d:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
486f51:	0f 84 a9 00 00 00    	je     0x487000
486f57:	8b 45 e4             	mov    -0x1c(%ebp),%eax
486f5a:	50                   	push   %eax
486f5b:	8d 43 1c             	lea    0x1c(%ebx),%eax
486f5e:	50                   	push   %eax
486f5f:	52                   	push   %edx
486f60:	8b 53 18             	mov    0x18(%ebx),%edx
486f63:	e8 96 20 f8 ff       	call   0x408ffe
486f68:	83 c4 0c             	add    $0xc,%esp
486f6b:	85 c0                	test   %eax,%eax
486f6d:	0f 85 01 36 f8 ff    	jne    0x40a574
486f73:	8b 4d f8             	mov    -0x8(%ebp),%ecx
486f76:	8b 55 e0             	mov    -0x20(%ebp),%edx
486f79:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
486f80:	74 2e                	je     0x486fb0
486f82:	3b 53 7c             	cmp    0x7c(%ebx),%edx
486f85:	72 29                	jb     0x486fb0
486f87:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
486f8b:	75 23                	jne    0x486fb0
486f8d:	83 7b 1c 02          	cmpl   $0x2,0x1c(%ebx)
486f91:	75 1d                	jne    0x486fb0
486f93:	66 8b 01             	mov    (%ecx),%ax
486f96:	66 3b 43 34          	cmp    0x34(%ebx),%ax
486f9a:	75 14                	jne    0x486fb0
486f9c:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
486fa3:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
486faa:	0f 8f 7d d1 ff ff    	jg     0x48412d
486fb0:	83 c1 02             	add    $0x2,%ecx
486fb3:	83 c2 02             	add    $0x2,%edx
486fb6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
486fb9:	89 55 e0             	mov    %edx,-0x20(%ebp)
486fbc:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
486fbf:	73 27                	jae    0x486fe8
486fc1:	66 8b 01             	mov    (%ecx),%ax
486fc4:	c7 45 ec 00 fc 00 00 	movl   $0xfc00,-0x14(%ebp)
486fcb:	66 23 45 ec          	and    -0x14(%ebp),%ax
486fcf:	c7 45 ec 00 dc 00 00 	movl   $0xdc00,-0x14(%ebp)
486fd6:	66 3b 45 ec          	cmp    -0x14(%ebp),%ax
486fda:	75 0c                	jne    0x486fe8
486fdc:	83 c1 02             	add    $0x2,%ecx
486fdf:	83 c2 02             	add    $0x2,%edx
486fe2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
486fe5:	89 55 e0             	mov    %edx,-0x20(%ebp)
486fe8:	8b 45 f4             	mov    -0xc(%ebp),%eax
486feb:	40                   	inc    %eax
486fec:	89 45 f4             	mov    %eax,-0xc(%ebp)
486fef:	3b 45 f0             	cmp    -0x10(%ebp),%eax
486ff2:	0f 8e 4a ff ff ff    	jle    0x486f42
486ff8:	8b 55 c8             	mov    -0x38(%ebp),%edx
486ffb:	e9 92 3a f8 ff       	jmp    0x40aa92
487000:	8b 43 1c             	mov    0x1c(%ebx),%eax
487003:	03 c0                	add    %eax,%eax
487005:	2b d0                	sub    %eax,%edx
487007:	3b ca                	cmp    %edx,%ecx
487009:	0f 87 67 ff ff ff    	ja     0x486f76
48700f:	66 8b 01             	mov    (%ecx),%ax
487012:	66 3b 43 34          	cmp    0x34(%ebx),%ax
487016:	0f 85 5a ff ff ff    	jne    0x486f76
48701c:	83 7b 1c 01          	cmpl   $0x1,0x1c(%ebx)
487020:	0f 84 4e 35 f8 ff    	je     0x40a574
487026:	8b 55 e0             	mov    -0x20(%ebp),%edx
487029:	66 8b 02             	mov    (%edx),%ax
48702c:	66 3b 43 36          	cmp    0x36(%ebx),%ax
487030:	0f 84 3e 35 f8 ff    	je     0x40a574
487036:	e9 3e ff ff ff       	jmp    0x486f79
48703b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48703e:	83 f9 01             	cmp    $0x1,%ecx
487041:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487044:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
48704b:	0f 8c 44 3a f8 ff    	jl     0x40aa95
487051:	8b 45 f0             	mov    -0x10(%ebp),%eax
487054:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487057:	0f 83 fa 2c 00 00    	jae    0x489d57
48705d:	83 c1 02             	add    $0x2,%ecx
487060:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487063:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487066:	73 24                	jae    0x48708c
487068:	66 8b 01             	mov    (%ecx),%ax
48706b:	c7 45 f4 00 fc 00 00 	movl   $0xfc00,-0xc(%ebp)
487072:	66 23 45 f4          	and    -0xc(%ebp),%ax
487076:	c7 45 f4 00 dc 00 00 	movl   $0xdc00,-0xc(%ebp)
48707d:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
487081:	8b 45 f0             	mov    -0x10(%ebp),%eax
487084:	75 06                	jne    0x48708c
487086:	83 c1 02             	add    $0x2,%ecx
487089:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48708c:	ff 45 ec             	incl   -0x14(%ebp)
48708f:	39 45 ec             	cmp    %eax,-0x14(%ebp)
487092:	7e c0                	jle    0x487054
487094:	e9 f9 39 f8 ff       	jmp    0x40aa92
487099:	8b 43 7c             	mov    0x7c(%ebx),%eax
48709c:	03 c9                	add    %ecx,%ecx
48709e:	2b c1                	sub    %ecx,%eax
4870a0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4870a3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4870a6:	3b c8                	cmp    %eax,%ecx
4870a8:	0f 87 c6 34 f8 ff    	ja     0x40a574
4870ae:	03 4d f4             	add    -0xc(%ebp),%ecx
4870b1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4870b4:	e9 d9 39 f8 ff       	jmp    0x40aa92
4870b9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4870bc:	83 f9 01             	cmp    $0x1,%ecx
4870bf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4870c2:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4870c9:	0f 8c c6 39 f8 ff    	jl     0x40aa95
4870cf:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
4870d2:	0f 83 7f 2c 00 00    	jae    0x489d57
4870d8:	0f b7 01             	movzwl (%ecx),%eax
4870db:	89 45 e0             	mov    %eax,-0x20(%ebp)
4870de:	83 c1 02             	add    $0x2,%ecx
4870e1:	25 00 fc 00 00       	and    $0xfc00,%eax
4870e6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4870e9:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4870ee:	75 23                	jne    0x487113
4870f0:	0f b7 01             	movzwl (%ecx),%eax
4870f3:	81 65 e0 ff 03 00 00 	andl   $0x3ff,-0x20(%ebp)
4870fa:	c1 65 e0 0a          	shll   $0xa,-0x20(%ebp)
4870fe:	25 ff 03 00 00       	and    $0x3ff,%eax
487103:	0b 45 e0             	or     -0x20(%ebp),%eax
487106:	05 00 00 01 00       	add    $0x10000,%eax
48710b:	83 c1 02             	add    $0x2,%ecx
48710e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487111:	eb 03                	jmp    0x487116
487113:	8b 45 e0             	mov    -0x20(%ebp),%eax
487116:	83 f8 0d             	cmp    $0xd,%eax
487119:	77 28                	ja     0x487143
48711b:	74 13                	je     0x487130
48711d:	83 f8 0a             	cmp    $0xa,%eax
487120:	74 40                	je     0x487162
487122:	83 c0 f5             	add    $0xfffffff5,%eax
487125:	83 f8 01             	cmp    $0x1,%eax
487128:	0f 87 46 34 f8 ff    	ja     0x40a574
48712e:	eb 28                	jmp    0x487158
487130:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487133:	73 2d                	jae    0x487162
487135:	66 83 39 0a          	cmpw   $0xa,(%ecx)
487139:	75 27                	jne    0x487162
48713b:	83 c1 02             	add    $0x2,%ecx
48713e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487141:	eb 1f                	jmp    0x487162
487143:	3d 85 00 00 00       	cmp    $0x85,%eax
487148:	74 0e                	je     0x487158
48714a:	05 d8 df ff ff       	add    $0xffffdfd8,%eax
48714f:	83 f8 01             	cmp    $0x1,%eax
487152:	0f 87 1c 34 f8 ff    	ja     0x40a574
487158:	83 7b 6c 00          	cmpl   $0x0,0x6c(%ebx)
48715c:	0f 85 12 34 f8 ff    	jne    0x40a574
487162:	8b 45 f4             	mov    -0xc(%ebp),%eax
487165:	40                   	inc    %eax
487166:	89 45 f4             	mov    %eax,-0xc(%ebp)
487169:	3b 45 f0             	cmp    -0x10(%ebp),%eax
48716c:	0f 8e 5d ff ff ff    	jle    0x4870cf
487172:	e9 1b 39 f8 ff       	jmp    0x40aa92
487177:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48717a:	83 f9 01             	cmp    $0x1,%ecx
48717d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487180:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
487187:	0f 8c 08 39 f8 ff    	jl     0x40aa95
48718d:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487190:	0f 83 c1 2b 00 00    	jae    0x489d57
487196:	0f b7 01             	movzwl (%ecx),%eax
487199:	89 45 e0             	mov    %eax,-0x20(%ebp)
48719c:	83 c1 02             	add    $0x2,%ecx
48719f:	25 00 fc 00 00       	and    $0xfc00,%eax
4871a4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4871a7:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4871ac:	75 23                	jne    0x4871d1
4871ae:	0f b7 01             	movzwl (%ecx),%eax
4871b1:	81 65 e0 ff 03 00 00 	andl   $0x3ff,-0x20(%ebp)
4871b8:	c1 65 e0 0a          	shll   $0xa,-0x20(%ebp)
4871bc:	25 ff 03 00 00       	and    $0x3ff,%eax
4871c1:	0b 45 e0             	or     -0x20(%ebp),%eax
4871c4:	05 00 00 01 00       	add    $0x10000,%eax
4871c9:	83 c1 02             	add    $0x2,%ecx
4871cc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4871cf:	eb 03                	jmp    0x4871d4
4871d1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4871d4:	3d 0e 18 00 00       	cmp    $0x180e,%eax
4871d9:	77 34                	ja     0x48720f
4871db:	0f 84 93 33 f8 ff    	je     0x40a574
4871e1:	3d a0 00 00 00       	cmp    $0xa0,%eax
4871e6:	77 1a                	ja     0x487202
4871e8:	0f 84 86 33 f8 ff    	je     0x40a574
4871ee:	83 f8 09             	cmp    $0x9,%eax
4871f1:	0f 84 7d 33 f8 ff    	je     0x40a574
4871f7:	83 f8 20             	cmp    $0x20,%eax
4871fa:	0f 84 74 33 f8 ff    	je     0x40a574
487200:	eb 44                	jmp    0x487246
487202:	3d 80 16 00 00       	cmp    $0x1680,%eax
487207:	0f 84 67 33 f8 ff    	je     0x40a574
48720d:	eb 37                	jmp    0x487246
48720f:	3d 5f 20 00 00       	cmp    $0x205f,%eax
487214:	77 25                	ja     0x48723b
487216:	0f 84 58 33 f8 ff    	je     0x40a574
48721c:	3d 00 20 00 00       	cmp    $0x2000,%eax
487221:	72 23                	jb     0x487246
487223:	3d 0a 20 00 00       	cmp    $0x200a,%eax
487228:	0f 86 46 33 f8 ff    	jbe    0x40a574
48722e:	3d 2f 20 00 00       	cmp    $0x202f,%eax
487233:	0f 84 3b 33 f8 ff    	je     0x40a574
487239:	eb 0b                	jmp    0x487246
48723b:	3d 00 30 00 00       	cmp    $0x3000,%eax
487240:	0f 84 2e 33 f8 ff    	je     0x40a574
487246:	8b 45 f4             	mov    -0xc(%ebp),%eax
487249:	40                   	inc    %eax
48724a:	89 45 f4             	mov    %eax,-0xc(%ebp)
48724d:	3b 45 f0             	cmp    -0x10(%ebp),%eax
487250:	0f 8e 37 ff ff ff    	jle    0x48718d
487256:	e9 37 38 f8 ff       	jmp    0x40aa92
48725b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48725e:	83 f9 01             	cmp    $0x1,%ecx
487261:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487264:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
48726b:	0f 8c 24 38 f8 ff    	jl     0x40aa95
487271:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487274:	0f 83 dd 2a 00 00    	jae    0x489d57
48727a:	0f b7 01             	movzwl (%ecx),%eax
48727d:	89 45 e0             	mov    %eax,-0x20(%ebp)
487280:	83 c1 02             	add    $0x2,%ecx
487283:	25 00 fc 00 00       	and    $0xfc00,%eax
487288:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48728b:	3d 00 d8 00 00       	cmp    $0xd800,%eax
487290:	75 23                	jne    0x4872b5
487292:	0f b7 01             	movzwl (%ecx),%eax
487295:	81 65 e0 ff 03 00 00 	andl   $0x3ff,-0x20(%ebp)
48729c:	c1 65 e0 0a          	shll   $0xa,-0x20(%ebp)
4872a0:	25 ff 03 00 00       	and    $0x3ff,%eax
4872a5:	0b 45 e0             	or     -0x20(%ebp),%eax
4872a8:	05 00 00 01 00       	add    $0x10000,%eax
4872ad:	83 c1 02             	add    $0x2,%ecx
4872b0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4872b3:	eb 03                	jmp    0x4872b8
4872b5:	8b 45 e0             	mov    -0x20(%ebp),%eax
4872b8:	3d 0e 18 00 00       	cmp    $0x180e,%eax
4872bd:	77 28                	ja     0x4872e7
4872bf:	74 59                	je     0x48731a
4872c1:	3d a0 00 00 00       	cmp    $0xa0,%eax
4872c6:	77 12                	ja     0x4872da