406ad9:	83 f8 12             	cmp    $0x12,%eax
406adc:	75 0c                	jne    0x406aea
406ade:	6a 07                	push   $0x7
406ae0:	c7 45 f8 0b 00 00 00 	movl   $0xb,-0x8(%ebp)
406ae7:	58                   	pop    %eax
406ae8:	eb 2c                	jmp    0x406b16
406aea:	83 c0 f2             	add    $0xfffffff2,%eax
406aed:	c7 45 f8 03 00 00 00 	movl   $0x3,-0x8(%ebp)
406af4:	eb 20                	jmp    0x406b16
406af6:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406afa:	0f 84 47 05 00 00    	je     0x407047
406b00:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406b03:	ff 4d cc             	decl   -0x34(%ebp)
406b06:	0f b6 39             	movzbl (%ecx),%edi
406b09:	8b cb                	mov    %ebx,%ecx
406b0b:	d3 e7                	shl    %cl,%edi
406b0d:	09 7d c0             	or     %edi,-0x40(%ebp)
406b10:	ff 45 c8             	incl   -0x38(%ebp)
406b13:	83 c3 08             	add    $0x8,%ebx
406b16:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
406b19:	3b d9                	cmp    %ecx,%ebx
406b1b:	72 d9                	jb     0x406af6
406b1d:	8b ca                	mov    %edx,%ecx
406b1f:	2b da                	sub    %edx,%ebx
406b21:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406b24:	0f b7 0c 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%ecx
406b2b:	00
406b2c:	23 4d c0             	and    -0x40(%ebp),%ecx
406b2f:	8b 55 f8             	mov    -0x8(%ebp),%edx
406b32:	2b d8                	sub    %eax,%ebx
406b34:	03 d1                	add    %ecx,%edx
406b36:	8b c8                	mov    %eax,%ecx
406b38:	8b 46 04             	mov    0x4(%esi),%eax
406b3b:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406b3e:	8b 4e 08             	mov    0x8(%esi),%ecx
406b41:	8b f8                	mov    %eax,%edi
406b43:	c1 ef 05             	shr    $0x5,%edi
406b46:	83 e7 1f             	and    $0x1f,%edi
406b49:	83 e0 1f             	and    $0x1f,%eax
406b4c:	8d 84 07 02 01 00 00 	lea    0x102(%edi,%eax,1),%eax
406b53:	8d 3c 0a             	lea    (%edx,%ecx,1),%edi
406b56:	3b f8                	cmp    %eax,%edi
406b58:	0f 87 7c fb ff ff    	ja     0x4066da
406b5e:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
406b62:	75 0f                	jne    0x406b73
406b64:	83 f9 01             	cmp    $0x1,%ecx
406b67:	0f 82 6d fb ff ff    	jb     0x4066da
406b6d:	8b 7c 8e 08          	mov    0x8(%esi,%ecx,4),%edi
406b71:	eb 02                	jmp    0x406b75
406b73:	33 ff                	xor    %edi,%edi
406b75:	8d 44 8e 0c          	lea    0xc(%esi,%ecx,4),%eax
406b79:	89 38                	mov    %edi,(%eax)
406b7b:	41                   	inc    %ecx
406b7c:	83 c0 04             	add    $0x4,%eax
406b7f:	4a                   	dec    %edx
406b80:	75 f7                	jne    0x406b79
406b82:	89 4e 08             	mov    %ecx,0x8(%esi)
406b85:	8b 46 04             	mov    0x4(%esi),%eax
406b88:	8b 4e 08             	mov    0x8(%esi),%ecx
406b8b:	8b d0                	mov    %eax,%edx
406b8d:	83 e0 1f             	and    $0x1f,%eax
406b90:	c1 ea 05             	shr    $0x5,%edx
406b93:	83 e2 1f             	and    $0x1f,%edx
406b96:	8d 84 02 02 01 00 00 	lea    0x102(%edx,%eax,1),%eax
406b9d:	3b c8                	cmp    %eax,%ecx
406b9f:	0f 82 ce fe ff ff    	jb     0x406a73
406ba5:	8b 46 04             	mov    0x4(%esi),%eax
406ba8:	83 a6 10 05 00 00 00 	andl   $0x0,0x510(%esi)
406baf:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
406bb3:	8b f8                	mov    %eax,%edi
406bb5:	c1 e8 05             	shr    $0x5,%eax
406bb8:	83 e7 1f             	and    $0x1f,%edi
406bbb:	b9 01 01 00 00       	mov    $0x101,%ecx
406bc0:	83 e0 1f             	and    $0x1f,%eax
406bc3:	03 f9                	add    %ecx,%edi
406bc5:	40                   	inc    %eax
406bc6:	8d 55 f4             	lea    -0xc(%ebp),%edx
406bc9:	89 45 ec             	mov    %eax,-0x14(%ebp)
406bcc:	8d 86 20 05 00 00    	lea    0x520(%esi),%eax
406bd2:	52                   	push   %edx
406bd3:	50                   	push   %eax
406bd4:	8d 45 fc             	lea    -0x4(%ebp),%eax
406bd7:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
406bde:	50                   	push   %eax
406bdf:	8d 45 e8             	lea    -0x18(%ebp),%eax
406be2:	50                   	push   %eax
406be3:	68 54 84 40 00       	push   $0x408454
406be8:	68 14 84 40 00       	push   $0x408414
406bed:	51                   	push   %ecx
406bee:	8d 46 0c             	lea    0xc(%esi),%eax
406bf1:	57                   	push   %edi
406bf2:	50                   	push   %eax
406bf3:	c7 45 f0 06 00 00 00 	movl   $0x6,-0x10(%ebp)
406bfa:	e8 1b 05 00 00       	call   0x40711a
406bff:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406c03:	75 03                	jne    0x406c08
406c05:	83 c8 ff             	or     $0xffffffff,%eax
406c08:	85 c0                	test   %eax,%eax
406c0a:	0f 85 ca fa ff ff    	jne    0x4066da
406c10:	8d 45 f4             	lea    -0xc(%ebp),%eax
406c13:	50                   	push   %eax
406c14:	8d 86 20 05 00 00    	lea    0x520(%esi),%eax
406c1a:	50                   	push   %eax
406c1b:	8d 45 f0             	lea    -0x10(%ebp),%eax
406c1e:	50                   	push   %eax
406c1f:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406c22:	50                   	push   %eax
406c23:	68 d0 84 40 00       	push   $0x4084d0
406c28:	68 94 84 40 00       	push   $0x408494
406c2d:	6a 00                	push   $0x0
406c2f:	ff 75 ec             	push   -0x14(%ebp)
406c32:	8d 44 be 0c          	lea    0xc(%esi,%edi,4),%eax
406c36:	50                   	push   %eax
406c37:	e8 de 04 00 00       	call   0x40711a
406c3c:	85 c0                	test   %eax,%eax
406c3e:	0f 85 96 fa ff ff    	jne    0x4066da
406c44:	8b 45 f0             	mov    -0x10(%ebp),%eax
406c47:	85 c0                	test   %eax,%eax
406c49:	75 0c                	jne    0x406c57
406c4b:	81 ff 01 01 00 00    	cmp    $0x101,%edi
406c51:	0f 8f 83 fa ff ff    	jg     0x4066da
406c57:	8a 4d fc             	mov    -0x4(%ebp),%cl
406c5a:	83 26 00             	andl   $0x0,(%esi)
406c5d:	88 46 11             	mov    %al,0x11(%esi)
406c60:	8b 45 e8             	mov    -0x18(%ebp),%eax
406c63:	89 46 14             	mov    %eax,0x14(%esi)
406c66:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406c69:	88 4e 10             	mov    %cl,0x10(%esi)
406c6c:	89 46 18             	mov    %eax,0x18(%esi)
406c6f:	0f b6 46 10          	movzbl 0x10(%esi),%eax
406c73:	89 46 0c             	mov    %eax,0xc(%esi)
406c76:	8b 46 14             	mov    0x14(%esi),%eax
406c79:	89 46 08             	mov    %eax,0x8(%esi)
406c7c:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
406c82:	8b 46 0c             	mov    0xc(%esi),%eax
406c85:	eb 20                	jmp    0x406ca7
406c87:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406c8b:	0f 84 b6 03 00 00    	je     0x407047
406c91:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406c94:	ff 4d cc             	decl   -0x34(%ebp)
406c97:	0f b6 11             	movzbl (%ecx),%edx
406c9a:	8b cb                	mov    %ebx,%ecx
406c9c:	d3 e2                	shl    %cl,%edx
406c9e:	09 55 c0             	or     %edx,-0x40(%ebp)
406ca1:	ff 45 c8             	incl   -0x38(%ebp)
406ca4:	83 c3 08             	add    $0x8,%ebx
406ca7:	3b d8                	cmp    %eax,%ebx
406ca9:	72 dc                	jb     0x406c87
406cab:	0f b7 04 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%eax
406cb2:	00
406cb3:	23 45 c0             	and    -0x40(%ebp),%eax
406cb6:	8b 4e 08             	mov    0x8(%esi),%ecx
406cb9:	8d 04 81             	lea    (%ecx,%eax,4),%eax
406cbc:	0f b6 48 01          	movzbl 0x1(%eax),%ecx
406cc0:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406cc3:	2b d9                	sub    %ecx,%ebx
406cc5:	0f b6 08             	movzbl (%eax),%ecx
406cc8:	85 c9                	test   %ecx,%ecx
406cca:	75 12                	jne    0x406cde
406ccc:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406cd0:	89 46 08             	mov    %eax,0x8(%esi)
406cd3:	c7 06 06 00 00 00    	movl   $0x6,(%esi)
406cd9:	e9 59 03 00 00       	jmp    0x407037
406cde:	f6 c1 10             	test   $0x10,%cl
406ce1:	74 18                	je     0x406cfb
406ce3:	83 e1 0f             	and    $0xf,%ecx
406ce6:	89 4e 08             	mov    %ecx,0x8(%esi)
406ce9:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406ced:	89 46 04             	mov    %eax,0x4(%esi)
406cf0:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
406cf6:	e9 3c 03 00 00       	jmp    0x407037
406cfb:	f6 c1 40             	test   $0x40,%cl
406cfe:	0f 84 d1 00 00 00    	je     0x406dd5
406d04:	f6 c1 20             	test   $0x20,%cl
406d07:	0f 84 cd f9 ff ff    	je     0x4066da
406d0d:	c7 06 07 00 00 00    	movl   $0x7,(%esi)
406d13:	e9 1f 03 00 00       	jmp    0x407037
406d18:	8b 46 08             	mov    0x8(%esi),%eax
406d1b:	eb 20                	jmp    0x406d3d
406d1d:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406d21:	0f 84 20 03 00 00    	je     0x407047
406d27:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406d2a:	ff 4d cc             	decl   -0x34(%ebp)
406d2d:	0f b6 11             	movzbl (%ecx),%edx
406d30:	8b cb                	mov    %ebx,%ecx
406d32:	d3 e2                	shl    %cl,%edx
406d34:	09 55 c0             	or     %edx,-0x40(%ebp)
406d37:	ff 45 c8             	incl   -0x38(%ebp)
406d3a:	83 c3 08             	add    $0x8,%ebx
406d3d:	3b d8                	cmp    %eax,%ebx
406d3f:	72 dc                	jb     0x406d1d
406d41:	0f b7 0c 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%ecx
406d48:	00
406d49:	23 4d c0             	and    -0x40(%ebp),%ecx
406d4c:	01 4e 04             	add    %ecx,0x4(%esi)
406d4f:	8b c8                	mov    %eax,%ecx
406d51:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406d54:	2b d8                	sub    %eax,%ebx
406d56:	0f b6 46 11          	movzbl 0x11(%esi),%eax
406d5a:	89 46 0c             	mov    %eax,0xc(%esi)
406d5d:	8b 46 18             	mov    0x18(%esi),%eax
406d60:	89 46 08             	mov    %eax,0x8(%esi)
406d63:	c7 06 03 00 00 00    	movl   $0x3,(%esi)
406d69:	8b 46 0c             	mov    0xc(%esi),%eax
406d6c:	eb 20                	jmp    0x406d8e
406d6e:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406d72:	0f 84 cf 02 00 00    	je     0x407047
406d78:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406d7b:	ff 4d cc             	decl   -0x34(%ebp)
406d7e:	0f b6 11             	movzbl (%ecx),%edx
406d81:	8b cb                	mov    %ebx,%ecx
406d83:	d3 e2                	shl    %cl,%edx
406d85:	09 55 c0             	or     %edx,-0x40(%ebp)
406d88:	ff 45 c8             	incl   -0x38(%ebp)
406d8b:	83 c3 08             	add    $0x8,%ebx
406d8e:	3b d8                	cmp    %eax,%ebx
406d90:	72 dc                	jb     0x406d6e
406d92:	0f b7 04 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%eax
406d99:	00
406d9a:	23 45 c0             	and    -0x40(%ebp),%eax
406d9d:	8b 4e 08             	mov    0x8(%esi),%ecx
406da0:	8d 04 81             	lea    (%ecx,%eax,4),%eax
406da3:	0f b6 48 01          	movzbl 0x1(%eax),%ecx
406da7:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406daa:	2b d9                	sub    %ecx,%ebx
406dac:	0f b6 08             	movzbl (%eax),%ecx
406daf:	f6 c1 10             	test   $0x10,%cl
406db2:	74 18                	je     0x406dcc
406db4:	83 e1 0f             	and    $0xf,%ecx
406db7:	89 4e 08             	mov    %ecx,0x8(%esi)
406dba:	0f b7 40 02          	movzwl 0x2(%eax),%eax
406dbe:	89 46 0c             	mov    %eax,0xc(%esi)
406dc1:	c7 06 04 00 00 00    	movl   $0x4,(%esi)
406dc7:	e9 6b 02 00 00       	jmp    0x407037
406dcc:	f6 c1 40             	test   $0x40,%cl
406dcf:	0f 85 05 f9 ff ff    	jne    0x4066da
406dd5:	89 4e 0c             	mov    %ecx,0xc(%esi)
406dd8:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
406ddc:	8d 04 88             	lea    (%eax,%ecx,4),%eax
406ddf:	89 46 08             	mov    %eax,0x8(%esi)
406de2:	e9 50 02 00 00       	jmp    0x407037
406de7:	8b 46 08             	mov    0x8(%esi),%eax
406dea:	eb 20                	jmp    0x406e0c
406dec:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
406df0:	0f 84 51 02 00 00    	je     0x407047
406df6:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406df9:	ff 4d cc             	decl   -0x34(%ebp)
406dfc:	0f b6 11             	movzbl (%ecx),%edx
406dff:	8b cb                	mov    %ebx,%ecx
406e01:	d3 e2                	shl    %cl,%edx
406e03:	09 55 c0             	or     %edx,-0x40(%ebp)
406e06:	ff 45 c8             	incl   -0x38(%ebp)
406e09:	83 c3 08             	add    $0x8,%ebx
406e0c:	3b d8                	cmp    %eax,%ebx
406e0e:	72 dc                	jb     0x406dec
406e10:	0f b7 0c 45 00 a4 40 	movzwl 0x40a400(,%eax,2),%ecx
406e17:	00
406e18:	23 4d c0             	and    -0x40(%ebp),%ecx
406e1b:	01 4e 0c             	add    %ecx,0xc(%esi)
406e1e:	8b c8                	mov    %eax,%ecx
406e20:	d3 6d c0             	shrl   %cl,-0x40(%ebp)
406e23:	2b d8                	sub    %eax,%ebx
406e25:	c7 06 05 00 00 00    	movl   $0x5,(%esi)
406e2b:	8b 45 d0             	mov    -0x30(%ebp),%eax
406e2e:	8b 56 0c             	mov    0xc(%esi),%edx
406e31:	8b c8                	mov    %eax,%ecx
406e33:	2b ce                	sub    %esi,%ecx
406e35:	81 e9 a0 1b 00 00    	sub    $0x1ba0,%ecx
406e3b:	3b ca                	cmp    %edx,%ecx
406e3d:	73 13                	jae    0x406e52
406e3f:	8b 8e a0 9b 00 00    	mov    0x9ba0(%esi),%ecx
406e45:	2b ca                	sub    %edx,%ecx
406e47:	2b ce                	sub    %esi,%ecx
406e49:	8d 8c 01 60 e4 ff ff 	lea    -0x1ba0(%ecx,%eax,1),%ecx
406e50:	eb 04                	jmp    0x406e56
406e52:	8b c8                	mov    %eax,%ecx
406e54:	2b ca                	sub    %edx,%ecx
406e56:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
406e5a:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406e5d:	0f 84 90 f9 ff ff    	je     0x4067f3
406e63:	8b 7d d4             	mov    -0x2c(%ebp),%edi
406e66:	85 ff                	test   %edi,%edi
406e68:	0f 85 91 00 00 00    	jne    0x406eff
406e6e:	8b be a0 9b 00 00    	mov    0x9ba0(%esi),%edi
406e74:	3b c7                	cmp    %edi,%eax
406e76:	75 23                	jne    0x406e9b
406e78:	8b 8e a4 9b 00 00    	mov    0x9ba4(%esi),%ecx
406e7e:	8d 96 a0 1b 00 00    	lea    0x1ba0(%esi),%edx
406e84:	3b ca                	cmp    %edx,%ecx
406e86:	74 13                	je     0x406e9b
406e88:	8b c2                	mov    %edx,%eax
406e8a:	3b c1                	cmp    %ecx,%eax
406e8c:	73 07                	jae    0x406e95
406e8e:	2b c8                	sub    %eax,%ecx
406e90:	49                   	dec    %ecx
406e91:	8b f9                	mov    %ecx,%edi
406e93:	eb 02                	jmp    0x406e97
406e95:	2b f8                	sub    %eax,%edi
406e97:	85 ff                	test   %edi,%edi
406e99:	75 64                	jne    0x406eff
406e9b:	ff 75 08             	push   0x8(%ebp)
406e9e:	89 86 a8 9b 00 00    	mov    %eax,0x9ba8(%esi)
406ea4:	e8 09 02 00 00       	call   0x4070b2
406ea9:	8b 86 a8 9b 00 00    	mov    0x9ba8(%esi),%eax
406eaf:	8b 8e a4 9b 00 00    	mov    0x9ba4(%esi),%ecx
406eb5:	3b c1                	cmp    %ecx,%eax
406eb7:	89 45 d0             	mov    %eax,-0x30(%ebp)
406eba:	73 07                	jae    0x406ec3
406ebc:	8b f9                	mov    %ecx,%edi
406ebe:	2b f8                	sub    %eax,%edi
406ec0:	4f                   	dec    %edi
406ec1:	eb 08                	jmp    0x406ecb
406ec3:	8b be a0 9b 00 00    	mov    0x9ba0(%esi),%edi
406ec9:	2b f8                	sub    %eax,%edi
406ecb:	8b 96 a0 9b 00 00    	mov    0x9ba0(%esi),%edx
406ed1:	3b c2                	cmp    %edx,%eax
406ed3:	89 55 f8             	mov    %edx,-0x8(%ebp)
406ed6:	75 1f                	jne    0x406ef7
406ed8:	8d 96 a0 1b 00 00    	lea    0x1ba0(%esi),%edx
406ede:	3b ca                	cmp    %edx,%ecx
406ee0:	74 15                	je     0x406ef7
406ee2:	8b c2                	mov    %edx,%eax
406ee4:	3b c1                	cmp    %ecx,%eax
406ee6:	89 45 d0             	mov    %eax,-0x30(%ebp)
406ee9:	73 07                	jae    0x406ef2
406eeb:	2b c8                	sub    %eax,%ecx
406eed:	49                   	dec    %ecx
406eee:	8b f9                	mov    %ecx,%edi
406ef0:	eb 05                	jmp    0x406ef7
406ef2:	8b 7d f8             	mov    -0x8(%ebp),%edi
406ef5:	2b f8                	sub    %eax,%edi
406ef7:	85 ff                	test   %edi,%edi
406ef9:	0f 84 64 01 00 00    	je     0x407063
406eff:	8b 4d e0             	mov    -0x20(%ebp),%ecx
406f02:	8a 11                	mov    (%ecx),%dl
406f04:	88 10                	mov    %dl,(%eax)
406f06:	40                   	inc    %eax
406f07:	41                   	inc    %ecx
406f08:	4f                   	dec    %edi
406f09:	3b 8e a0 9b 00 00    	cmp    0x9ba0(%esi),%ecx
406f0f:	89 45 d0             	mov    %eax,-0x30(%ebp)
406f12:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406f15:	89 7d d4             	mov    %edi,-0x2c(%ebp)
406f18:	75 09                	jne    0x406f23
406f1a:	8d 8e a0 1b 00 00    	lea    0x1ba0(%esi),%ecx
406f20:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406f23:	ff 4e 04             	decl   0x4(%esi)
406f26:	0f 85 3a ff ff ff    	jne    0x406e66
406f2c:	e9 c2 f8 ff ff       	jmp    0x4067f3
406f31:	8b 45 d4             	mov    -0x2c(%ebp),%eax