407b5e:	89 45 98             	mov    %eax,-0x68(%ebp)
407b61:	83 fe 01             	cmp    $0x1,%esi
407b64:	0f 85 a1 93 07 00    	jne    0x480f0b
407b6a:	0f b7 42 fe          	movzwl -0x2(%edx),%eax
407b6e:	8b 7d fc             	mov    -0x4(%ebp),%edi
407b71:	89 45 a0             	mov    %eax,-0x60(%ebp)
407b74:	8b 41 68             	mov    0x68(%ecx),%eax
407b77:	0b 85 70 ff ff ff    	or     -0x90(%ebp),%eax
407b7d:	89 45 a8             	mov    %eax,-0x58(%ebp)
407b80:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407b83:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
407b86:	83 c7 02             	add    $0x2,%edi
407b89:	89 7d fc             	mov    %edi,-0x4(%ebp)
407b8c:	e9 02 fd ff ff       	jmp    0x407893
407b91:	83 fe 3f             	cmp    $0x3f,%esi
407b94:	0f 82 b9 fe ff ff    	jb     0x407a53
407b9a:	e9 13 fe ff ff       	jmp    0x4079b2
407b9f:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
407ba5:	89 55 f8             	mov    %edx,-0x8(%ebp)
407ba8:	e9 9a fd ff ff       	jmp    0x407947
407bad:	8b 55 f8             	mov    -0x8(%ebp),%edx
407bb0:	e9 92 fd ff ff       	jmp    0x407947
407bb5:	8b 4d 28             	mov    0x28(%ebp),%ecx
407bb8:	dd d8                	fstp   %st(0)
407bba:	83 c7 02             	add    $0x2,%edi
407bbd:	8b 51 20             	mov    0x20(%ecx),%edx
407bc0:	89 55 c0             	mov    %edx,-0x40(%ebp)
407bc3:	89 7d fc             	mov    %edi,-0x4(%ebp)
407bc6:	0f b7 17             	movzwl (%edi),%edx
407bc9:	8b d8                	mov    %eax,%ebx
407bcb:	89 5d bc             	mov    %ebx,-0x44(%ebp)
407bce:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
407bd5:	be 85 00 00 00       	mov    $0x85,%esi
407bda:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
407be1:	83 fa 2a             	cmp    $0x2a,%edx
407be4:	0f 84 36 93 07 00    	je     0x480f20
407bea:	83 fa 3f             	cmp    $0x3f,%edx
407bed:	0f 85 40 06 00 00    	jne    0x408233
407bf3:	83 c7 02             	add    $0x2,%edi
407bf6:	89 7d fc             	mov    %edi,-0x4(%ebp)
407bf9:	0f b7 17             	movzwl (%edi),%edx
407bfc:	8b c2                	mov    %edx,%eax
407bfe:	83 f8 53             	cmp    $0x53,%eax
407c01:	0f 8c 4a 95 07 00    	jl     0x481151
407c07:	83 f8 7c             	cmp    $0x7c,%eax
407c0a:	0f 8d 41 95 07 00    	jge    0x481151
407c10:	33 c0                	xor    %eax,%eax
407c12:	33 db                	xor    %ebx,%ebx
407c14:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
407c1a:	89 9d 08 ff ff ff    	mov    %ebx,-0xf8(%ebp)
407c20:	8d 8d 08 ff ff ff    	lea    -0xf8(%ebp),%ecx
407c26:	66 83 fa 29          	cmp    $0x29,%dx
407c2a:	74 33                	je     0x407c5f
407c2c:	8d 64 24 00          	lea    0x0(%esp),%esp
407c30:	66 83 fa 3a          	cmp    $0x3a,%dx
407c34:	74 1d                	je     0x407c53
407c36:	0f b7 c2             	movzwl %dx,%eax
407c39:	83 c7 02             	add    $0x2,%edi
407c3c:	89 7d fc             	mov    %edi,-0x4(%ebp)
407c3f:	83 f8 69             	cmp    $0x69,%eax
407c42:	0f 85 35 a2 07 00    	jne    0x481e7d
407c48:	83 09 01             	orl    $0x1,(%ecx)
407c4b:	0f b7 17             	movzwl (%edi),%edx
407c4e:	83 fa 29             	cmp    $0x29,%edx
407c51:	75 dd                	jne    0x407c30
407c53:	8b 9d 08 ff ff ff    	mov    -0xf8(%ebp),%ebx
407c59:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
407c5f:	0b 5d f4             	or     -0xc(%ebp),%ebx
407c62:	8b 55 f8             	mov    -0x8(%ebp),%edx
407c65:	f7 d0                	not    %eax
407c67:	23 d8                	and    %eax,%ebx
407c69:	66 83 3f 29          	cmpw   $0x29,(%edi)
407c6d:	0f 85 96 a2 07 00    	jne    0x481f09
407c73:	8b 4d 28             	mov    0x28(%ebp),%ecx
407c76:	8b 41 14             	mov    0x14(%ecx),%eax
407c79:	83 c0 04             	add    $0x4,%eax
407c7c:	3b d0                	cmp    %eax,%edx
407c7e:	0f 84 5e a2 07 00    	je     0x481ee2
407c84:	f7 c3 00 02 00 00    	test   $0x200,%ebx
407c8a:	0f 85 3e 0b 00 00    	jne    0x4087ce
407c90:	33 c0                	xor    %eax,%eax
407c92:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
407c98:	83 f0 01             	xor    $0x1,%eax
407c9b:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
407ca1:	f6 c3 01             	test   $0x1,%bl
407ca4:	0f 84 50 a2 07 00    	je     0x481efa
407caa:	c7 85 70 ff ff ff 01 	movl   $0x1,-0x90(%ebp)
407cb1:	00 00 00
407cb4:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
407cba:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
407cbd:	83 c7 02             	add    $0x2,%edi
407cc0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
407cc3:	89 18                	mov    %ebx,(%eax)
407cc5:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
407ccc:	89 7d fc             	mov    %edi,-0x4(%ebp)
407ccf:	e9 bf fb ff ff       	jmp    0x407893
407cd4:	85 c9                	test   %ecx,%ecx
407cd6:	0f 84 c8 fb ff ff    	je     0x4078a4
407cdc:	e9 aa 78 07 00       	jmp    0x47f58b
407ce1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407ce4:	c7 02 10 00 09 00    	movl   $0x90010,(%edx)
407cea:	66 89 42 04          	mov    %ax,0x4(%edx)
407cee:	83 c2 06             	add    $0x6,%edx
407cf1:	83 7d d0 fe          	cmpl   $0xfffffffe,-0x30(%ebp)
407cf5:	89 55 f8             	mov    %edx,-0x8(%ebp)
407cf8:	0f 84 b5 91 07 00    	je     0x480eb3
407cfe:	8b 7d fc             	mov    -0x4(%ebp),%edi
407d01:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
407d04:	83 c7 02             	add    $0x2,%edi
407d07:	89 7d fc             	mov    %edi,-0x4(%ebp)
407d0a:	e9 84 fb ff ff       	jmp    0x407893
407d0f:	b8 1d 00 00 00       	mov    $0x1d,%eax
407d14:	e9 e4 fd ff ff       	jmp    0x407afd
407d19:	6a 06                	push   $0x6
407d1b:	dd d8                	fstp   %st(0)
407d1d:	ba c8 26 4b 00       	mov    $0x4b26c8,%edx
407d22:	8d 4f 02             	lea    0x2(%edi),%ecx
407d25:	e8 c9 0b 00 00       	call   0x4088f3
407d2a:	83 c4 04             	add    $0x4,%esp
407d2d:	85 c0                	test   %eax,%eax
407d2f:	0f 84 26 7b 07 00    	je     0x47f85b
407d35:	6a 06                	push   $0x6
407d37:	ba d0 26 4b 00       	mov    $0x4b26d0,%edx
407d3c:	8d 4f 02             	lea    0x2(%edi),%ecx
407d3f:	e8 af 0b 00 00       	call   0x4088f3
407d44:	83 c4 04             	add    $0x4,%esp
407d47:	85 c0                	test   %eax,%eax
407d49:	0f 84 22 7b 07 00    	je     0x47f871
407d4f:	0f b7 47 02          	movzwl 0x2(%edi),%eax
407d53:	8b 75 f8             	mov    -0x8(%ebp),%esi
407d56:	89 75 e0             	mov    %esi,-0x20(%ebp)
407d59:	83 f8 3a             	cmp    $0x3a,%eax
407d5c:	0f 84 25 7b 07 00    	je     0x47f887
407d62:	83 f8 2e             	cmp    $0x2e,%eax
407d65:	0f 84 1c 7b 07 00    	je     0x47f887
407d6b:	83 f8 3d             	cmp    $0x3d,%eax
407d6e:	0f 84 13 7b 07 00    	je     0x47f887
407d74:	33 c0                	xor    %eax,%eax
407d76:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407d79:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
407d80:	83 c7 02             	add    $0x2,%edi
407d83:	89 7d fc             	mov    %edi,-0x4(%ebp)
407d86:	0f b7 1f             	movzwl (%edi),%ebx
407d89:	83 fb 5c             	cmp    $0x5c,%ebx
407d8c:	0f 84 34 09 00 00    	je     0x4086c6
407d92:	85 c0                	test   %eax,%eax
407d94:	75 09                	jne    0x407d9f
407d96:	83 fb 5e             	cmp    $0x5e,%ebx
407d99:	0f 84 ec 09 00 00    	je     0x40878b
407d9f:	83 fb 5d             	cmp    $0x5d,%ebx
407da2:	0f 84 13 7b 07 00    	je     0x47f8bb
407da8:	33 c0                	xor    %eax,%eax
407daa:	6a 20                	push   $0x20
407dac:	50                   	push   %eax
407dad:	89 45 e4             	mov    %eax,-0x1c(%ebp)
407db0:	89 45 d8             	mov    %eax,-0x28(%ebp)
407db3:	89 45 f0             	mov    %eax,-0x10(%ebp)
407db6:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
407dbc:	50                   	push   %eax
407dbd:	e8 8e 8f 01 00       	call   0x420d50
407dc2:	8b 7d fc             	mov    -0x4(%ebp),%edi
407dc5:	83 c6 06             	add    $0x6,%esi
407dc8:	33 c0                	xor    %eax,%eax
407dca:	83 c4 0c             	add    $0xc,%esp
407dcd:	8b d6                	mov    %esi,%edx
407dcf:	89 45 b0             	mov    %eax,-0x50(%ebp)
407dd2:	89 75 e8             	mov    %esi,-0x18(%ebp)
407dd5:	89 75 a4             	mov    %esi,-0x5c(%ebp)
407dd8:	89 55 ec             	mov    %edx,-0x14(%ebp)
407ddb:	85 db                	test   %ebx,%ebx
407ddd:	0f 84 9b 81 07 00    	je     0x47ff7e
407de3:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
407de7:	74 12                	je     0x407dfb
407de9:	8b c3                	mov    %ebx,%eax
407deb:	25 00 fc 00 00       	and    $0xfc00,%eax
407df0:	3d 00 d8 00 00       	cmp    $0xd800,%eax
407df5:	0f 84 0c 7b 07 00    	je     0x47f907
407dfb:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
407dfe:	85 c9                	test   %ecx,%ecx
407e00:	74 08                	je     0x407e0a
407e02:	3b f2                	cmp    %edx,%esi
407e04:	0f 87 37 7b 07 00    	ja     0x47f941
407e0a:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
407e0e:	0f 85 47 7b 07 00    	jne    0x47f95b
407e14:	83 fb 5b             	cmp    $0x5b,%ebx
407e17:	0f 84 66 7b 07 00    	je     0x47f983
407e1d:	83 fb 5c             	cmp    $0x5c,%ebx
407e20:	0f 84 d0 08 00 00    	je     0x4086f6
407e26:	8b 55 f0             	mov    -0x10(%ebp),%edx
407e29:	66 83 7f 02 5c       	cmpw   $0x5c,0x2(%edi)
407e2e:	8b 75 cc             	mov    -0x34(%ebp),%esi
407e31:	0f 84 d6 7f 07 00    	je     0x47fe0d
407e37:	8b c7                	mov    %edi,%eax
407e39:	83 fb 0d             	cmp    $0xd,%ebx
407e3c:	0f 84 e9 7f 07 00    	je     0x47fe2b
407e42:	83 fb 0a             	cmp    $0xa,%ebx
407e45:	0f 84 e0 7f 07 00    	je     0x47fe2b
407e4b:	85 f6                	test   %esi,%esi
407e4d:	75 0b                	jne    0x407e5a
407e4f:	66 83 7f 02 2d       	cmpw   $0x2d,0x2(%edi)
407e54:	0f 84 b5 06 00 00    	je     0x40850f
407e5a:	83 fa 02             	cmp    $0x2,%edx
407e5d:	0f 8c f1 00 00 00    	jl     0x407f54
407e63:	83 fa 01             	cmp    $0x1,%edx
407e66:	0f 84 38 02 00 00    	je     0x4080a4
407e6c:	53                   	push   %ebx
407e6d:	53                   	push   %ebx
407e6e:	ff 75 28             	push   0x28(%ebp)
407e71:	ff 75 f4             	push   -0xc(%ebp)
407e74:	8d 55 a4             	lea    -0x5c(%ebp),%edx
407e77:	8d 8d 28 ff ff ff    	lea    -0xd8(%ebp),%ecx
407e7d:	e8 fb 09 00 00       	call   0x40887d
407e82:	8b 4d d8             	mov    -0x28(%ebp),%ecx
407e85:	83 c4 10             	add    $0x10,%esp
407e88:	03 c8                	add    %eax,%ecx
407e8a:	89 4d d8             	mov    %ecx,-0x28(%ebp)
407e8d:	8b 75 a4             	mov    -0x5c(%ebp),%esi
407e90:	8b 7d fc             	mov    -0x4(%ebp),%edi
407e93:	89 75 e8             	mov    %esi,-0x18(%ebp)
407e96:	8b 45 cc             	mov    -0x34(%ebp),%eax
407e99:	8b 55 ec             	mov    -0x14(%ebp),%edx
407e9c:	83 c7 02             	add    $0x2,%edi
407e9f:	89 7d fc             	mov    %edi,-0x4(%ebp)
407ea2:	0f b7 1f             	movzwl (%edi),%ebx
407ea5:	85 db                	test   %ebx,%ebx
407ea7:	0f 84 b2 80 07 00    	je     0x47ff5f
407ead:	83 fb 5d             	cmp    $0x5d,%ebx
407eb0:	0f 85 2d ff ff ff    	jne    0x407de3
407eb6:	85 c0                	test   %eax,%eax
407eb8:	0f 85 25 ff ff ff    	jne    0x407de3
407ebe:	3b f2                	cmp    %edx,%esi
407ec0:	0f 87 d9 08 00 00    	ja     0x40879f
407ec6:	8b 45 b0             	mov    -0x50(%ebp),%eax
407ec9:	8b 55 d0             	mov    -0x30(%ebp),%edx
407ecc:	83 fa fe             	cmp    $0xfffffffe,%edx
407ecf:	75 06                	jne    0x407ed7
407ed1:	83 ca ff             	or     $0xffffffff,%edx
407ed4:	89 55 d0             	mov    %edx,-0x30(%ebp)
407ed7:	8b 5d 90             	mov    -0x70(%ebp),%ebx
407eda:	89 55 8c             	mov    %edx,-0x74(%ebp)
407edd:	8b 55 a0             	mov    -0x60(%ebp),%edx
407ee0:	89 55 d8             	mov    %edx,-0x28(%ebp)
407ee3:	8b 55 a8             	mov    -0x58(%ebp),%edx
407ee6:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
407eec:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407eef:	85 c0                	test   %eax,%eax
407ef1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407ef4:	89 55 98             	mov    %edx,-0x68(%ebp)
407ef7:	0f 85 a7 81 07 00    	jne    0x4800a4
407efd:	8b 7d d4             	mov    -0x2c(%ebp),%edi
407f00:	3b f8                	cmp    %eax,%edi
407f02:	0f 85 a1 08 00 00    	jne    0x4087a9
407f08:	b8 6e 00 00 00       	mov    $0x6e,%eax
407f0d:	8b 55 f8             	mov    -0x8(%ebp),%edx
407f10:	83 c2 02             	add    $0x2,%edx
407f13:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
407f17:	66 89 42 fe          	mov    %ax,-0x2(%edx)
407f1b:	89 55 f8             	mov    %edx,-0x8(%ebp)
407f1e:	75 1d                	jne    0x407f3d
407f20:	85 ff                	test   %edi,%edi
407f22:	0f 85 8b 08 00 00    	jne    0x4087b3
407f28:	6a 20                	push   $0x20
407f2a:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
407f30:	50                   	push   %eax
407f31:	52                   	push   %edx
407f32:	e8 49 6f 01 00       	call   0x41ee80
407f37:	8b 55 f8             	mov    -0x8(%ebp),%edx
407f3a:	83 c4 0c             	add    $0xc,%esp
407f3d:	8b 7d fc             	mov    -0x4(%ebp),%edi
407f40:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
407f43:	83 c2 20             	add    $0x20,%edx
407f46:	83 c7 02             	add    $0x2,%edi
407f49:	89 55 f8             	mov    %edx,-0x8(%ebp)
407f4c:	89 7d fc             	mov    %edi,-0x4(%ebp)
407f4f:	e9 3f f9 ff ff       	jmp    0x407893
407f54:	42                   	inc    %edx
407f55:	89 55 f0             	mov    %edx,-0x10(%ebp)
407f58:	e9 06 ff ff ff       	jmp    0x407e63
407f5d:	b9 01 00 00 00       	mov    $0x1,%ecx
407f62:	e9 2b fa ff ff       	jmp    0x407992
407f67:	8b 45 a0             	mov    -0x60(%ebp),%eax
407f6a:	89 45 d8             	mov    %eax,-0x28(%ebp)
407f6d:	8b 45 a8             	mov    -0x58(%ebp),%eax
407f70:	89 45 98             	mov    %eax,-0x68(%ebp)
407f73:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
407f79:	c7 45 8c ff ff ff ff 	movl   $0xffffffff,-0x74(%ebp)
407f80:	83 fe 01             	cmp    $0x1,%esi
407f83:	0f 85 4f 8f 07 00    	jne    0x480ed8
407f89:	0f b7 db             	movzwl %bx,%ebx
407f8c:	89 5d 90             	mov    %ebx,-0x70(%ebp)
407f8f:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407f92:	89 45 d0             	mov    %eax,-0x30(%ebp)
407f95:	83 fe 01             	cmp    $0x1,%esi
407f98:	0f 84 60 fd ff ff    	je     0x407cfe
407f9e:	e9 53 8f 07 00       	jmp    0x480ef6
407fa3:	8b 5d f4             	mov    -0xc(%ebp),%ebx
407fa6:	dd d8                	fstp   %st(0)
407fa8:	6a 00                	push   $0x0
407faa:	89 7d 80             	mov    %edi,-0x80(%ebp)
407fad:	8b 7d 28             	mov    0x28(%ebp),%edi
407fb0:	53                   	push   %ebx
407fb1:	ff 77 40             	push   0x40(%edi)
407fb4:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
407fba:	ff 75 0c             	push   0xc(%ebp)
407fbd:	8d 4d fc             	lea    -0x4(%ebp),%ecx
407fc0:	e8 a9 0e 00 00       	call   0x408e6e
407fc5:	8b 55 0c             	mov    0xc(%ebp),%edx
407fc8:	83 c4 10             	add    $0x10,%esp
407fcb:	83 3a 00             	cmpl   $0x0,(%edx)
407fce:	8b f0                	mov    %eax,%esi
407fd0:	0f 85 16 08 00 00    	jne    0x4087ec
407fd6:	85 f6                	test   %esi,%esi
407fd8:	0f 84 e7 04 00 00    	je     0x4084c5
407fde:	83 fe 1a             	cmp    $0x1a,%esi
407fe1:	0f 84 74 8c 07 00    	je     0x480c5b
407fe7:	83 fe 19             	cmp    $0x19,%esi
407fea:	0f 84 60 8e 07 00    	je     0x480e50
407ff0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
407ff3:	83 f9 fe             	cmp    $0xfffffffe,%ecx
407ff6:	75 0e                	jne    0x408006
407ff8:	8d 46 fa             	lea    -0x6(%esi),%eax
407ffb:	83 f8 10             	cmp    $0x10,%eax
407ffe:	77 06                	ja     0x408006
408000:	83 c9 ff             	or     $0xffffffff,%ecx
408003:	89 4d d0             	mov    %ecx,-0x30(%ebp)
408006:	8b 45 90             	mov    -0x70(%ebp),%eax
408009:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
40800f:	8b 45 a0             	mov    -0x60(%ebp),%eax
408012:	89 45 d8             	mov    %eax,-0x28(%ebp)
408015:	8b 45 a8             	mov    -0x58(%ebp),%eax
408018:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
40801b:	89 45 98             	mov    %eax,-0x68(%ebp)
40801e:	83 fe 1b             	cmp    $0x1b,%esi
408021:	0f 84 5f 8c 07 00    	je     0x480c86
408027:	83 fe 1c             	cmp    $0x1c,%esi
40802a:	0f 84 e6 8c 07 00    	je     0x480d16
408030:	85 f6                	test   %esi,%esi
408032:	0f 88 34 8d 07 00    	js     0x480d6c
408038:	83 fe 0f             	cmp    $0xf,%esi
40803b:	0f 84 90 8d 07 00    	je     0x480dd1
408041:	83 fe 10             	cmp    $0x10,%esi
408044:	0f 84 87 8d 07 00    	je     0x480dd1
40804a:	83 fe 05             	cmp    $0x5,%esi
40804d:	0f 84 25 8d 07 00    	je     0x480d78
408053:	83 fe 04             	cmp    $0x4,%esi
408056:	0f 84 1c 8d 07 00    	je     0x480d78
40805c:	83 fe 01             	cmp    $0x1,%esi
40805f:	0f 84 13 8d 07 00    	je     0x480d78
408065:	83 fe 1d             	cmp    $0x1d,%esi
408068:	0f 8d 20 8d 07 00    	jge    0x480d8e