406ba9:	89 56 08             	mov    %edx,0x8(%esi)
406bac:	8b c6                	mov    %esi,%eax
406bae:	5e                   	pop    %esi
406baf:	5d                   	pop    %ebp
406bb0:	c2 04 00             	ret    $0x4
406bb3:	ff 75 08             	push   0x8(%ebp)
406bb6:	8b 4e 08             	mov    0x8(%esi),%ecx
406bb9:	e8 2f 03 00 00       	call   0x406eed
406bbe:	eb ec                	jmp    0x406bac
406bc0:	33 d2                	xor    %edx,%edx
406bc2:	eb e5                	jmp    0x406ba9
406bc4:	55                   	push   %ebp
406bc5:	8b ec                	mov    %esp,%ebp
406bc7:	83 ec 0c             	sub    $0xc,%esp
406bca:	53                   	push   %ebx
406bcb:	56                   	push   %esi
406bcc:	57                   	push   %edi
406bcd:	8b c2                	mov    %edx,%eax
406bcf:	33 ff                	xor    %edi,%edi
406bd1:	83 ce ff             	or     $0xffffffff,%esi
406bd4:	89 45 f4             	mov    %eax,-0xc(%ebp)
406bd7:	8b d9                	mov    %ecx,%ebx
406bd9:	89 30                	mov    %esi,(%eax)
406bdb:	c7 45 fc 7d 00 00 00 	movl   $0x7d,-0x4(%ebp)
406be2:	0f b7 03             	movzwl (%ebx),%eax
406be5:	ba 86 00 00 00       	mov    $0x86,%edx
406bea:	8d 4a ff             	lea    -0x1(%edx),%ecx
406bed:	66 3b c1             	cmp    %cx,%ax
406bf0:	74 7a                	je     0x406c6c
406bf2:	83 c1 05             	add    $0x5,%ecx
406bf5:	66 3b c1             	cmp    %cx,%ax
406bf8:	74 72                	je     0x406c6c
406bfa:	66 3b c2             	cmp    %dx,%ax
406bfd:	74 6d                	je     0x406c6c
406bff:	8d 4a 05             	lea    0x5(%edx),%ecx
406c02:	66 3b c1             	cmp    %cx,%ax
406c05:	74 65                	je     0x406c6c
406c07:	33 c0                	xor    %eax,%eax
406c09:	8d 40 02             	lea    0x2(%eax),%eax
406c0c:	33 d2                	xor    %edx,%edx
406c0e:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
406c11:	42                   	inc    %edx
406c12:	e8 fd 1e 00 00       	call   0x408b14
406c17:	8b c8                	mov    %eax,%ecx
406c19:	0f b7 11             	movzwl (%ecx),%edx
406c1c:	8b c2                	mov    %edx,%eax
406c1e:	83 f8 31             	cmp    $0x31,%eax
406c21:	7f 1f                	jg     0x406c42
406c23:	83 f8 30             	cmp    $0x30,%eax
406c26:	7d 4c                	jge    0x406c74
406c28:	83 f8 1d             	cmp    $0x1d,%eax
406c2b:	74 34                	je     0x406c61
406c2d:	83 f8 1e             	cmp    $0x1e,%eax
406c30:	74 42                	je     0x406c74
406c32:	83 f8 22             	cmp    $0x22,%eax
406c35:	0f 8f 13 bc 07 00    	jg     0x48284e
406c3b:	33 c0                	xor    %eax,%eax
406c3d:	5f                   	pop    %edi
406c3e:	5e                   	pop    %esi
406c3f:	5b                   	pop    %ebx
406c40:	c9                   	leave
406c41:	c3                   	ret
406c42:	83 f8 36             	cmp    $0x36,%eax
406c45:	74 2a                	je     0x406c71
406c47:	83 f8 38             	cmp    $0x38,%eax
406c4a:	74 28                	je     0x406c74
406c4c:	83 f8 7d             	cmp    $0x7d,%eax
406c4f:	0f 84 3e bc 07 00    	je     0x482893
406c55:	3d 80 00 00 00       	cmp    $0x80,%eax
406c5a:	7e df                	jle    0x406c3b
406c5c:	e9 1d bc 07 00       	jmp    0x48287e
406c61:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406c65:	74 d4                	je     0x406c3b
406c67:	e9 06 bc 07 00       	jmp    0x482872
406c6c:	33 c0                	xor    %eax,%eax
406c6e:	40                   	inc    %eax
406c6f:	eb 98                	jmp    0x406c09
406c71:	83 c1 02             	add    $0x2,%ecx
406c74:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406c78:	74 c1                	je     0x406c3b
406c7a:	85 f6                	test   %esi,%esi
406c7c:	0f 89 45 bc 07 00    	jns    0x4828c7
406c82:	33 f6                	xor    %esi,%esi
406c84:	46                   	inc    %esi
406c85:	e9 ee bb 07 00       	jmp    0x482878
406c8a:	55                   	push   %ebp
406c8b:	8b ec                	mov    %esp,%ebp
406c8d:	51                   	push   %ecx
406c8e:	53                   	push   %ebx
406c8f:	56                   	push   %esi
406c90:	57                   	push   %edi
406c91:	8b 7d 08             	mov    0x8(%ebp),%edi
406c94:	8b da                	mov    %edx,%ebx
406c96:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406c99:	0f b7 01             	movzwl (%ecx),%eax
406c9c:	33 d2                	xor    %edx,%edx
406c9e:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
406ca5:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
406ca8:	e8 67 1e 00 00       	call   0x408b14
406cad:	8b f0                	mov    %eax,%esi
406caf:	0f b7 06             	movzwl (%esi),%eax
406cb2:	3d 87 00 00 00       	cmp    $0x87,%eax
406cb7:	0f 84 bf be 07 00    	je     0x482b7c
406cbd:	3d 83 00 00 00       	cmp    $0x83,%eax
406cc2:	0f 84 a5 00 00 00    	je     0x406d6d
406cc8:	3d 84 00 00 00       	cmp    $0x84,%eax
406ccd:	0f 84 9a 00 00 00    	je     0x406d6d
406cd3:	3d 88 00 00 00       	cmp    $0x88,%eax
406cd8:	0f 84 8f 00 00 00    	je     0x406d6d
406cde:	3d 89 00 00 00       	cmp    $0x89,%eax
406ce3:	0f 84 84 00 00 00    	je     0x406d6d
406ce9:	3d 85 00 00 00       	cmp    $0x85,%eax
406cee:	74 66                	je     0x406d56
406cf0:	3d 86 00 00 00       	cmp    $0x86,%eax
406cf5:	74 5f                	je     0x406d56
406cf7:	3d 8a 00 00 00       	cmp    $0x8a,%eax
406cfc:	74 58                	je     0x406d56
406cfe:	3d 8b 00 00 00       	cmp    $0x8b,%eax
406d03:	74 51                	je     0x406d56
406d05:	83 f8 7d             	cmp    $0x7d,%eax
406d08:	74 63                	je     0x406d6d
406d0a:	3d 81 00 00 00       	cmp    $0x81,%eax
406d0f:	74 3b                	je     0x406d4c
406d11:	3d 82 00 00 00       	cmp    $0x82,%eax
406d16:	74 34                	je     0x406d4c
406d18:	83 f8 55             	cmp    $0x55,%eax
406d1b:	0f 84 b6 be 07 00    	je     0x482bd7
406d21:	83 f8 56             	cmp    $0x56,%eax
406d24:	0f 84 ad be 07 00    	je     0x482bd7
406d2a:	83 f8 5e             	cmp    $0x5e,%eax
406d2d:	0f 84 a4 be 07 00    	je     0x482bd7
406d33:	83 f8 1b             	cmp    $0x1b,%eax
406d36:	0f 84 dd be 07 00    	je     0x482c19
406d3c:	83 f8 1c             	cmp    $0x1c,%eax
406d3f:	0f 84 d4 be 07 00    	je     0x482c19
406d45:	33 c0                	xor    %eax,%eax
406d47:	5f                   	pop    %edi
406d48:	5e                   	pop    %esi
406d49:	5b                   	pop    %ebx
406d4a:	c9                   	leave
406d4b:	c3                   	ret
406d4c:	8b 45 0c             	mov    0xc(%ebp),%eax
406d4f:	40                   	inc    %eax
406d50:	50                   	push   %eax
406d51:	e9 af be 07 00       	jmp    0x482c05
406d56:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
406d5a:	33 d2                	xor    %edx,%edx
406d5c:	42                   	inc    %edx
406d5d:	83 f9 20             	cmp    $0x20,%ecx
406d60:	0f 8d 98 be 07 00    	jge    0x482bfe
406d66:	d3 e2                	shl    %cl,%edx
406d68:	e9 91 be 07 00       	jmp    0x482bfe
406d6d:	ff 75 0c             	push   0xc(%ebp)
406d70:	e9 90 be 07 00       	jmp    0x482c05
406d75:	55                   	push   %ebp
406d76:	8b ec                	mov    %esp,%ebp
406d78:	51                   	push   %ecx
406d79:	53                   	push   %ebx
406d7a:	56                   	push   %esi
406d7b:	57                   	push   %edi
406d7c:	8b 7d 08             	mov    0x8(%ebp),%edi
406d7f:	89 55 fc             	mov    %edx,-0x4(%ebp)
406d82:	8b d9                	mov    %ecx,%ebx
406d84:	0f b7 03             	movzwl (%ebx),%eax
406d87:	33 d2                	xor    %edx,%edx
406d89:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
406d90:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
406d93:	e8 7c 1d 00 00       	call   0x408b14
406d98:	8b f0                	mov    %eax,%esi
406d9a:	0f b7 06             	movzwl (%esi),%eax
406d9d:	3d 83 00 00 00       	cmp    $0x83,%eax
406da2:	0f 84 ae 00 00 00    	je     0x406e56
406da8:	3d 84 00 00 00       	cmp    $0x84,%eax
406dad:	0f 84 a3 00 00 00    	je     0x406e56
406db3:	3d 88 00 00 00       	cmp    $0x88,%eax
406db8:	0f 84 98 00 00 00    	je     0x406e56
406dbe:	3d 89 00 00 00       	cmp    $0x89,%eax
406dc3:	0f 84 8d 00 00 00    	je     0x406e56
406dc9:	3d 85 00 00 00       	cmp    $0x85,%eax
406dce:	0f 84 64 bd 07 00    	je     0x482b38
406dd4:	3d 86 00 00 00       	cmp    $0x86,%eax
406dd9:	0f 84 59 bd 07 00    	je     0x482b38
406ddf:	3d 8a 00 00 00       	cmp    $0x8a,%eax
406de4:	0f 84 4e bd 07 00    	je     0x482b38
406dea:	3d 8b 00 00 00       	cmp    $0x8b,%eax
406def:	0f 84 43 bd 07 00    	je     0x482b38
406df5:	83 f8 7d             	cmp    $0x7d,%eax
406df8:	74 5c                	je     0x406e56
406dfa:	3d 87 00 00 00       	cmp    $0x87,%eax
406dff:	74 55                	je     0x406e56
406e01:	3d 81 00 00 00       	cmp    $0x81,%eax
406e06:	74 44                	je     0x406e4c
406e08:	3d 82 00 00 00       	cmp    $0x82,%eax
406e0d:	74 3d                	je     0x406e4c
406e0f:	83 f8 55             	cmp    $0x55,%eax
406e12:	0f 84 f8 bc 07 00    	je     0x482b10
406e18:	83 f8 56             	cmp    $0x56,%eax
406e1b:	0f 84 ef bc 07 00    	je     0x482b10
406e21:	83 f8 5e             	cmp    $0x5e,%eax
406e24:	0f 84 e6 bc 07 00    	je     0x482b10
406e2a:	83 f8 01             	cmp    $0x1,%eax
406e2d:	0f 84 30 bd 07 00    	je     0x482b63
406e33:	83 f8 02             	cmp    $0x2,%eax
406e36:	0f 84 27 bd 07 00    	je     0x482b63
406e3c:	83 f8 1b             	cmp    $0x1b,%eax
406e3f:	0f 84 1e bd 07 00    	je     0x482b63
406e45:	33 c0                	xor    %eax,%eax
406e47:	5f                   	pop    %edi
406e48:	5e                   	pop    %esi
406e49:	5b                   	pop    %ebx
406e4a:	c9                   	leave
406e4b:	c3                   	ret
406e4c:	8b 45 0c             	mov    0xc(%ebp),%eax
406e4f:	40                   	inc    %eax
406e50:	50                   	push   %eax
406e51:	e9 f8 bc 07 00       	jmp    0x482b4e
406e56:	ff 75 0c             	push   0xc(%ebp)
406e59:	e9 f0 bc 07 00       	jmp    0x482b4e
406e5e:	55                   	push   %ebp
406e5f:	8b ec                	mov    %esp,%ebp
406e61:	56                   	push   %esi
406e62:	ff 75 08             	push   0x8(%ebp)
406e65:	8b f1                	mov    %ecx,%esi
406e67:	e8 81 00 00 00       	call   0x406eed
406e6c:	8b 46 04             	mov    0x4(%esi),%eax
406e6f:	89 46 28             	mov    %eax,0x28(%esi)
406e72:	c6 46 10 01          	movb   $0x1,0x10(%esi)
406e76:	5e                   	pop    %esi
406e77:	5d                   	pop    %ebp
406e78:	c2 04 00             	ret    $0x4
406e7b:	55                   	push   %ebp
406e7c:	8b ec                	mov    %esp,%ebp
406e7e:	51                   	push   %ecx
406e7f:	56                   	push   %esi
406e80:	57                   	push   %edi
406e81:	8b f9                	mov    %ecx,%edi
406e83:	e8 aa 1f 00 00       	call   0x408e32
406e88:	ff 75 08             	push   0x8(%ebp)
406e8b:	8d 4f 14             	lea    0x14(%edi),%ecx
406e8e:	e8 5a 00 00 00       	call   0x406eed
406e93:	8b 57 3c             	mov    0x3c(%edi),%edx
406e96:	51                   	push   %ecx
406e97:	8d 45 08             	lea    0x8(%ebp),%eax
406e9a:	50                   	push   %eax
406e9b:	8d 45 fc             	lea    -0x4(%ebp),%eax
406e9e:	50                   	push   %eax
406e9f:	51                   	push   %ecx
406ea0:	8b 4f 14             	mov    0x14(%edi),%ecx
406ea3:	e8 5f 00 00 00       	call   0x406f07
406ea8:	83 c4 10             	add    $0x10,%esp
406eab:	89 47 24             	mov    %eax,0x24(%edi)
406eae:	85 c0                	test   %eax,%eax
406eb0:	74 36                	je     0x406ee8
406eb2:	8d 77 30             	lea    0x30(%edi),%esi
406eb5:	56                   	push   %esi
406eb6:	51                   	push   %ecx
406eb7:	8b c8                	mov    %eax,%ecx
406eb9:	e8 84 1c 00 00       	call   0x408b42
406ebe:	8b 06                	mov    (%esi),%eax
406ec0:	40                   	inc    %eax
406ec1:	6b c0 03             	imul   $0x3,%eax,%eax
406ec4:	33 c9                	xor    %ecx,%ecx
406ec6:	6a 04                	push   $0x4
406ec8:	5a                   	pop    %edx
406ec9:	89 06                	mov    %eax,(%esi)
406ecb:	f7 e2                	mul    %edx
406ecd:	0f 90 c1             	seto   %cl
406ed0:	f7 d9                	neg    %ecx
406ed2:	0b c8                	or     %eax,%ecx
406ed4:	51                   	push   %ecx
406ed5:	e8 10 86 01 00       	call   0x41f4ea
406eda:	83 c4 0c             	add    $0xc,%esp
406edd:	89 47 2c             	mov    %eax,0x2c(%edi)
406ee0:	33 c0                	xor    %eax,%eax
406ee2:	5f                   	pop    %edi
406ee3:	5e                   	pop    %esi
406ee4:	c9                   	leave
406ee5:	c2 04 00             	ret    $0x4
406ee8:	8b 45 08             	mov    0x8(%ebp),%eax
406eeb:	eb f5                	jmp    0x406ee2
406eed:	55                   	push   %ebp
406eee:	8b ec                	mov    %esp,%ebp
406ef0:	56                   	push   %esi
406ef1:	8b f1                	mov    %ecx,%esi
406ef3:	3b 75 08             	cmp    0x8(%ebp),%esi
406ef6:	74 08                	je     0x406f00
406ef8:	ff 75 08             	push   0x8(%ebp)
406efb:	e8 47 6e 00 00       	call   0x40dd47
406f00:	8b c6                	mov    %esi,%eax
406f02:	5e                   	pop    %esi
406f03:	5d                   	pop    %ebp
406f04:	c2 04 00             	ret    $0x4
406f07:	55                   	push   %ebp
406f08:	8b ec                	mov    %esp,%ebp
406f0a:	b8 c4 11 00 00       	mov    $0x11c4,%eax
406f0f:	e8 8c 89 02 00       	call   0x42f8a0
406f14:	8b 45 0c             	mov    0xc(%ebp),%eax
406f17:	83 4d d8 ff          	orl    $0xffffffff,-0x28(%ebp)
406f1b:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
406f1f:	53                   	push   %ebx
406f20:	56                   	push   %esi
406f21:	8b da                	mov    %edx,%ebx
406f23:	57                   	push   %edi
406f24:	8b f9                	mov    %ecx,%edi
406f26:	33 c9                	xor    %ecx,%ecx
406f28:	33 d2                	xor    %edx,%edx
406f2a:	42                   	inc    %edx
406f2b:	8b f1                	mov    %ecx,%esi
406f2d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406f30:	89 7d f0             	mov    %edi,-0x10(%ebp)
406f33:	89 55 d0             	mov    %edx,-0x30(%ebp)
406f36:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406f39:	89 75 fc             	mov    %esi,-0x4(%ebp)
406f3c:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406f3f:	89 7d dc             	mov    %edi,-0x24(%ebp)
406f42:	85 c0                	test   %eax,%eax
406f44:	0f 84 23 05 00 00    	je     0x40746d
406f4a:	89 08                	mov    %ecx,(%eax)
406f4c:	8b 45 10             	mov    0x10(%ebp),%eax
406f4f:	85 c0                	test   %eax,%eax
406f51:	0f 84 bd 04 00 00    	je     0x407414
406f57:	89 08                	mov    %ecx,(%eax)
406f59:	c7 85 30 ff ff ff e0 	movl   $0x4ae7e0,-0xd0(%ebp)
406f60:	e7 4a 00
406f63:	c7 85 34 ff ff ff e0 	movl   $0x4ae8e0,-0xcc(%ebp)
406f6a:	e8 4a 00
406f6d:	c7 85 38 ff ff ff e0 	movl   $0x4ae9e0,-0xc8(%ebp)
406f74:	e9 4a 00
406f77:	c7 85 3c ff ff ff 20 	movl   $0x4aeb20,-0xc4(%ebp)
406f7e:	eb 4a 00
406f81:	f7 c3 80 85 00 d8    	test   $0xd8008580,%ebx
406f87:	0f 85 8e 04 00 00    	jne    0x40741b
406f8d:	f7 c3 00 00 01 00    	test   $0x10000,%ebx
406f93:	0f 85 8e 04 00 00    	jne    0x407427
406f99:	6a 28                	push   $0x28
406f9b:	5a                   	pop    %edx
406f9c:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
406f9f:	66 39 17             	cmp    %dx,(%edi)
406fa2:	0f 84 9a bc 07 00    	je     0x482c42
406fa8:	f7 c3 00 08 00 00    	test   $0x800,%ebx
406fae:	0f 84 82 04 00 00    	je     0x407436
406fb4:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
406fb8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
406fbf:	0f 85 6a 04 00 00    	jne    0x40742f
406fc5:	f7 c3 00 20 00 00    	test   $0x2000,%ebx
406fcb:	0f 84 2f bf 07 00    	je     0x482f00
406fd1:	b9 00 00 80 01       	mov    $0x1800000,%ecx
406fd6:	8b c3                	mov    %ebx,%eax
406fd8:	23 c1                	and    %ecx,%eax
406fda:	3b c1                	cmp    %ecx,%eax