473abe:	8b ce                	mov    %esi,%ecx
473ac0:	48                   	dec    %eax
473ac1:	74 19                	je     0x473adc
473ac3:	e8 58 5f f9 ff       	call   0x409a20
473ac8:	8b 45 0c             	mov    0xc(%ebp),%eax
473acb:	89 06                	mov    %eax,(%esi)
473acd:	8b 45 10             	mov    0x10(%ebp),%eax
473ad0:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
473ad7:	89 46 04             	mov    %eax,0x4(%esi)
473ada:	eb 51                	jmp    0x473b2d
473adc:	e8 3f 5f f9 ff       	call   0x409a20
473ae1:	8b 45 0c             	mov    0xc(%ebp),%eax
473ae4:	89 5e 0c             	mov    %ebx,0xc(%esi)
473ae7:	89 06                	mov    %eax,(%esi)
473ae9:	eb 42                	jmp    0x473b2d
473aeb:	8b 5d 10             	mov    0x10(%ebp),%ebx
473aee:	8b c3                	mov    %ebx,%eax
473af0:	57                   	push   %edi
473af1:	8b 7d 0c             	mov    0xc(%ebp),%edi
473af4:	8b cf                	mov    %edi,%ecx
473af6:	81 c1 00 00 00 80    	add    $0x80000000,%ecx
473afc:	13 c2                	adc    %edx,%eax
473afe:	3b c2                	cmp    %edx,%eax
473b00:	77 17                	ja     0x473b19
473b02:	72 05                	jb     0x473b09
473b04:	83 f9 ff             	cmp    $0xffffffff,%ecx
473b07:	77 10                	ja     0x473b19
473b09:	8b ce                	mov    %esi,%ecx
473b0b:	e8 10 5f f9 ff       	call   0x409a20
473b10:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473b17:	eb 11                	jmp    0x473b2a
473b19:	8b ce                	mov    %esi,%ecx
473b1b:	e8 00 5f f9 ff       	call   0x409a20
473b20:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
473b27:	89 5e 04             	mov    %ebx,0x4(%esi)
473b2a:	89 3e                	mov    %edi,(%esi)
473b2c:	5f                   	pop    %edi
473b2d:	8b c6                	mov    %esi,%eax
473b2f:	5e                   	pop    %esi
473b30:	5b                   	pop    %ebx
473b31:	5d                   	pop    %ebp
473b32:	c2 10 00             	ret    $0x10
473b35:	55                   	push   %ebp
473b36:	8b ec                	mov    %esp,%ebp
473b38:	53                   	push   %ebx
473b39:	56                   	push   %esi
473b3a:	8b d9                	mov    %ecx,%ebx
473b3c:	8d 4d 08             	lea    0x8(%ebp),%ecx
473b3f:	57                   	push   %edi
473b40:	e8 ea f6 f8 ff       	call   0x40322f
473b45:	8b 7d 0c             	mov    0xc(%ebp),%edi
473b48:	85 ff                	test   %edi,%edi
473b4a:	79 02                	jns    0x473b4e
473b4c:	33 ff                	xor    %edi,%edi
473b4e:	b8 ff 00 00 00       	mov    $0xff,%eax
473b53:	3b f8                	cmp    %eax,%edi
473b55:	7e 02                	jle    0x473b59
473b57:	8b f8                	mov    %eax,%edi
473b59:	8b 75 08             	mov    0x8(%ebp),%esi
473b5c:	8d 43 01             	lea    0x1(%ebx),%eax
473b5f:	50                   	push   %eax
473b60:	53                   	push   %ebx
473b61:	57                   	push   %edi
473b62:	56                   	push   %esi
473b63:	e8 7f 3f 00 00       	call   0x477ae7
473b68:	8d 43 03             	lea    0x3(%ebx),%eax
473b6b:	50                   	push   %eax
473b6c:	8d 43 02             	lea    0x2(%ebx),%eax
473b6f:	50                   	push   %eax
473b70:	8b c6                	mov    %esi,%eax
473b72:	57                   	push   %edi
473b73:	c1 e8 08             	shr    $0x8,%eax
473b76:	50                   	push   %eax
473b77:	e8 6b 3f 00 00       	call   0x477ae7
473b7c:	8d 43 05             	lea    0x5(%ebx),%eax
473b7f:	c1 fe 10             	sar    $0x10,%esi
473b82:	50                   	push   %eax
473b83:	8d 43 04             	lea    0x4(%ebx),%eax
473b86:	50                   	push   %eax
473b87:	57                   	push   %edi
473b88:	56                   	push   %esi
473b89:	e8 59 3f 00 00       	call   0x477ae7
473b8e:	5f                   	pop    %edi
473b8f:	5e                   	pop    %esi
473b90:	8b c3                	mov    %ebx,%eax
473b92:	5b                   	pop    %ebx
473b93:	5d                   	pop    %ebp
473b94:	c2 08 00             	ret    $0x8
473b97:	56                   	push   %esi
473b98:	8b f1                	mov    %ecx,%esi
473b9a:	8d 4e 44             	lea    0x44(%esi),%ecx
473b9d:	e8 c2 1e f9 ff       	call   0x405a64
473ba2:	8d 4e 34             	lea    0x34(%esi),%ecx
473ba5:	e8 ba 1e f9 ff       	call   0x405a64
473baa:	8d 4e 24             	lea    0x24(%esi),%ecx
473bad:	5e                   	pop    %esi
473bae:	e9 b1 1e f9 ff       	jmp    0x405a64
473bb3:	55                   	push   %ebp
473bb4:	8b ec                	mov    %esp,%ebp
473bb6:	83 e4 f8             	and    $0xfffffff8,%esp
473bb9:	83 ec 24             	sub    $0x24,%esp
473bbc:	53                   	push   %ebx
473bbd:	56                   	push   %esi
473bbe:	8b 75 10             	mov    0x10(%ebp),%esi
473bc1:	57                   	push   %edi
473bc2:	8b f9                	mov    %ecx,%edi
473bc4:	8b ce                	mov    %esi,%ecx
473bc6:	e8 55 5e f9 ff       	call   0x409a20
473bcb:	33 db                	xor    %ebx,%ebx
473bcd:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
473bd4:	53                   	push   %ebx
473bd5:	89 1e                	mov    %ebx,(%esi)
473bd7:	e8 85 49 f9 ff       	call   0x408561
473bdc:	8d 4c 24 20          	lea    0x20(%esp),%ecx
473be0:	e8 e2 3b f9 ff       	call   0x4077c7
473be5:	ff 75 14             	push   0x14(%ebp)
473be8:	8d 44 24 24          	lea    0x24(%esp),%eax
473bec:	8b cf                	mov    %edi,%ecx
473bee:	50                   	push   %eax
473bef:	ff 75 0c             	push   0xc(%ebp)
473bf2:	ff 75 08             	push   0x8(%ebp)
473bf5:	e8 e3 00 00 00       	call   0x473cdd
473bfa:	84 c0                	test   %al,%al
473bfc:	74 78                	je     0x473c76
473bfe:	8d 44 24 10          	lea    0x10(%esp),%eax
473c02:	c7 44 24 10 78 fb 48 	movl   $0x48fb78,0x10(%esp)
473c09:	00
473c0a:	50                   	push   %eax
473c0b:	ff 74 24 24          	push   0x24(%esp)
473c0f:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
473c13:	53                   	push   %ebx
473c14:	89 5c 24 24          	mov    %ebx,0x24(%esp)
473c18:	89 5c 24 28          	mov    %ebx,0x28(%esp)
473c1c:	e8 7f 27 f9 ff       	call   0x4063a0
473c21:	83 7c 24 18 01       	cmpl   $0x1,0x18(%esp)
473c26:	76 43                	jbe    0x473c6b
473c28:	8b cf                	mov    %edi,%ecx
473c2a:	e8 9c 00 fa ff       	call   0x413ccb
473c2f:	ff 75 1c             	push   0x1c(%ebp)
473c32:	8b f0                	mov    %eax,%esi
473c34:	89 5c 24 10          	mov    %ebx,0x10(%esp)
473c38:	ff 75 10             	push   0x10(%ebp)
473c3b:	8d 44 24 14          	lea    0x14(%esp),%eax
473c3f:	8b cf                	mov    %edi,%ecx
473c41:	50                   	push   %eax
473c42:	8d 44 24 1c          	lea    0x1c(%esp),%eax
473c46:	50                   	push   %eax
473c47:	53                   	push   %ebx
473c48:	e8 f3 c1 f9 ff       	call   0x40fe40
473c4d:	85 c0                	test   %eax,%eax
473c4f:	79 0e                	jns    0x473c5f
473c51:	85 f6                	test   %esi,%esi
473c53:	74 18                	je     0x473c6d
473c55:	56                   	push   %esi
473c56:	8b cf                	mov    %edi,%ecx
473c58:	e8 bc ff f9 ff       	call   0x413c19
473c5d:	eb 0e                	jmp    0x473c6d
473c5f:	85 f6                	test   %esi,%esi
473c61:	74 08                	je     0x473c6b
473c63:	56                   	push   %esi
473c64:	8b cf                	mov    %edi,%ecx
473c66:	e8 ae ff f9 ff       	call   0x413c19
473c6b:	b3 01                	mov    $0x1,%bl
473c6d:	8d 4c 24 10          	lea    0x10(%esp),%ecx
473c71:	e8 00 3b f9 ff       	call   0x407776
473c76:	8d 4c 24 20          	lea    0x20(%esp),%ecx
473c7a:	e8 e5 1d f9 ff       	call   0x405a64
473c7f:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
473c84:	e8 b6 47 f9 ff       	call   0x40843f
473c89:	5f                   	pop    %edi
473c8a:	5e                   	pop    %esi
473c8b:	8a c3                	mov    %bl,%al
473c8d:	5b                   	pop    %ebx
473c8e:	8b e5                	mov    %ebp,%esp
473c90:	5d                   	pop    %ebp
473c91:	c2 1c 00             	ret    $0x1c
473c94:	55                   	push   %ebp
473c95:	8b ec                	mov    %esp,%ebp
473c97:	83 ec 10             	sub    $0x10,%esp
473c9a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
473c9e:	75 1d                	jne    0x473cbd
473ca0:	8d 45 f0             	lea    -0x10(%ebp),%eax
473ca3:	50                   	push   %eax
473ca4:	ff 75 10             	push   0x10(%ebp)
473ca7:	ff 15 94 f6 48 00    	call   *0x48f694
473cad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
473cb0:	8b 45 f0             	mov    -0x10(%ebp),%eax
473cb3:	89 01                	mov    %eax,(%ecx)
473cb5:	8b 45 f4             	mov    -0xc(%ebp),%eax
473cb8:	89 41 04             	mov    %eax,0x4(%ecx)
473cbb:	eb 1a                	jmp    0x473cd7
473cbd:	8b 45 0c             	mov    0xc(%ebp),%eax
473cc0:	83 20 00             	andl   $0x0,(%eax)
473cc3:	83 60 04 00          	andl   $0x0,0x4(%eax)
473cc7:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
473ccb:	75 0a                	jne    0x473cd7
473ccd:	50                   	push   %eax
473cce:	ff 75 10             	push   0x10(%ebp)
473cd1:	ff 15 e0 f4 48 00    	call   *0x48f4e0
473cd7:	8b e5                	mov    %ebp,%esp
473cd9:	5d                   	pop    %ebp
473cda:	c2 0c 00             	ret    $0xc
473cdd:	55                   	push   %ebp
473cde:	8b ec                	mov    %esp,%ebp
473ce0:	81 ec a4 00 00 00    	sub    $0xa4,%esp
473ce6:	53                   	push   %ebx
473ce7:	56                   	push   %esi
473ce8:	57                   	push   %edi
473ce9:	ff 75 08             	push   0x8(%ebp)
473cec:	e8 cc 62 f9 ff       	call   0x409fbd
473cf1:	8b c8                	mov    %eax,%ecx
473cf3:	85 c9                	test   %ecx,%ecx
473cf5:	0f 84 dd 00 00 00    	je     0x473dd8
473cfb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
473cfe:	33 c0                	xor    %eax,%eax
473d00:	89 45 f4             	mov    %eax,-0xc(%ebp)
473d03:	89 45 f8             	mov    %eax,-0x8(%ebp)
473d06:	89 45 fc             	mov    %eax,-0x4(%ebp)
473d09:	8b 43 08             	mov    0x8(%ebx),%eax
473d0c:	2b 45 14             	sub    0x14(%ebp),%eax
473d0f:	c7 45 f0 84 fb 48 00 	movl   $0x48fb84,-0x10(%ebp)
473d16:	3b 41 18             	cmp    0x18(%ecx),%eax
473d19:	0f 8c b1 00 00 00    	jl     0x473dd0
473d1f:	3b 41 14             	cmp    0x14(%ecx),%eax
473d22:	0f 8f a8 00 00 00    	jg     0x473dd0
473d28:	ff 75 08             	push   0x8(%ebp)
473d2b:	8b 75 10             	mov    0x10(%ebp),%esi
473d2e:	8b ce                	mov    %esi,%ecx
473d30:	e8 72 44 f9 ff       	call   0x4081a7
473d35:	68 10 9e 4b 00       	push   $0x4b9e10
473d3a:	8b ce                	mov    %esi,%ecx
473d3c:	e8 ca 40 f9 ff       	call   0x407e0b
473d41:	8b 45 14             	mov    0x14(%ebp),%eax
473d44:	8b f8                	mov    %eax,%edi
473d46:	3b 43 08             	cmp    0x8(%ebx),%eax
473d49:	73 6d                	jae    0x473db8
473d4b:	57                   	push   %edi
473d4c:	68 24 a9 4b 00       	push   $0x4ba924
473d51:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
473d57:	6a 40                	push   $0x40
473d59:	50                   	push   %eax
473d5a:	e8 7b 2f fb ff       	call   0x426cda
473d5f:	83 c4 10             	add    $0x10,%esp
473d62:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
473d68:	8d 4d e0             	lea    -0x20(%ebp),%ecx
473d6b:	50                   	push   %eax
473d6c:	e8 d0 41 f9 ff       	call   0x407f41
473d71:	8b 43 04             	mov    0x4(%ebx),%eax
473d74:	6a 01                	push   $0x1
473d76:	6a 00                	push   $0x0
473d78:	ff 34 b8             	push   (%eax,%edi,4)
473d7b:	8d 45 e0             	lea    -0x20(%ebp),%eax
473d7e:	50                   	push   %eax
473d7f:	e8 9c 48 f9 ff       	call   0x408620
473d84:	8d 4d e0             	lea    -0x20(%ebp),%ecx
473d87:	e8 d8 1c f9 ff       	call   0x405a64
473d8c:	8b ce                	mov    %esi,%ecx
473d8e:	3b 7d 14             	cmp    0x14(%ebp),%edi
473d91:	75 07                	jne    0x473d9a
473d93:	68 0c 9e 4b 00       	push   $0x4b9e0c
473d98:	eb 05                	jmp    0x473d9f
473d9a:	68 50 a9 4b 00       	push   $0x4ba950
473d9f:	e8 67 40 f9 ff       	call   0x407e0b
473da4:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
473daa:	8b ce                	mov    %esi,%ecx
473dac:	50                   	push   %eax
473dad:	e8 59 40 f9 ff       	call   0x407e0b
473db2:	47                   	inc    %edi
473db3:	3b 7b 08             	cmp    0x8(%ebx),%edi
473db6:	72 93                	jb     0x473d4b
473db8:	68 14 9e 4b 00       	push   $0x4b9e14
473dbd:	8b ce                	mov    %esi,%ecx
473dbf:	e8 47 40 f9 ff       	call   0x407e0b
473dc4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
473dc7:	e8 28 29 fe ff       	call   0x4566f4
473dcc:	b0 01                	mov    $0x1,%al
473dce:	eb 0a                	jmp    0x473dda
473dd0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
473dd3:	e8 1c 29 fe ff       	call   0x4566f4
473dd8:	32 c0                	xor    %al,%al
473dda:	5f                   	pop    %edi
473ddb:	5e                   	pop    %esi
473ddc:	5b                   	pop    %ebx
473ddd:	8b e5                	mov    %ebp,%esp
473ddf:	5d                   	pop    %ebp
473de0:	c2 10 00             	ret    $0x10
473de3:	55                   	push   %ebp
473de4:	8b ec                	mov    %esp,%ebp
473de6:	83 e4 f8             	and    $0xfffffff8,%esp
473de9:	83 ec 3c             	sub    $0x3c,%esp
473dec:	53                   	push   %ebx
473ded:	56                   	push   %esi
473dee:	8b f1                	mov    %ecx,%esi
473df0:	57                   	push   %edi
473df1:	33 ff                	xor    %edi,%edi
473df3:	89 74 24 10          	mov    %esi,0x10(%esp)
473df7:	89 7c 24 0c          	mov    %edi,0xc(%esp)
473dfb:	39 be 54 04 00 00    	cmp    %edi,0x454(%esi)
473e01:	0f 84 2f 01 00 00    	je     0x473f36
473e07:	8b 45 08             	mov    0x8(%ebp),%eax
473e0a:	39 78 08             	cmp    %edi,0x8(%eax)
473e0d:	75 11                	jne    0x473e20
473e0f:	8b 86 50 04 00 00    	mov    0x450(%esi),%eax
473e15:	8b 00                	mov    (%eax),%eax
473e17:	c6 40 11 01          	movb   $0x1,0x11(%eax)
473e1b:	e9 eb 00 00 00       	jmp    0x473f0b
473e20:	8b 40 04             	mov    0x4(%eax),%eax
473e23:	8b 00                	mov    (%eax),%eax
473e25:	89 44 24 0c          	mov    %eax,0xc(%esp)
473e29:	83 78 0c 0e          	cmpl   $0xe,0xc(%eax)
473e2d:	75 13                	jne    0x473e42
473e2f:	8d 4c 24 38          	lea    0x38(%esp),%ecx
473e33:	33 db                	xor    %ebx,%ebx
473e35:	51                   	push   %ecx
473e36:	8b c8                	mov    %eax,%ecx
473e38:	43                   	inc    %ebx
473e39:	e8 66 3d ff ff       	call   0x467ba4
473e3e:	8b c8                	mov    %eax,%ecx
473e40:	eb 32                	jmp    0x473e74
473e42:	6a 02                	push   $0x2
473e44:	5b                   	pop    %ebx
473e45:	8b c8                	mov    %eax,%ecx
473e47:	e8 4b 5b f9 ff       	call   0x409997
473e4c:	8b 44 24 0c          	mov    0xc(%esp),%eax
473e50:	8b 48 08             	mov    0x8(%eax),%ecx
473e53:	8b 01                	mov    (%ecx),%eax
473e55:	89 44 24 28          	mov    %eax,0x28(%esp)
473e59:	8b 41 04             	mov    0x4(%ecx),%eax
473e5c:	89 44 24 2c          	mov    %eax,0x2c(%esp)
473e60:	8b 41 08             	mov    0x8(%ecx),%eax
473e63:	89 44 24 30          	mov    %eax,0x30(%esp)
473e67:	8b 41 0c             	mov    0xc(%ecx),%eax
473e6a:	8d 4c 24 28          	lea    0x28(%esp),%ecx
473e6e:	89 44 24 34          	mov    %eax,0x34(%esp)
473e72:	ff 00                	incl   (%eax)
473e74:	8b 01                	mov    (%ecx),%eax
473e76:	89 44 24 18          	mov    %eax,0x18(%esp)
473e7a:	8b 41 04             	mov    0x4(%ecx),%eax
473e7d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
473e81:	8b 41 08             	mov    0x8(%ecx),%eax
473e84:	89 44 24 20          	mov    %eax,0x20(%esp)
473e88:	8b 41 0c             	mov    0xc(%ecx),%eax
473e8b:	89 44 24 24          	mov    %eax,0x24(%esp)
473e8f:	ff 00                	incl   (%eax)
473e91:	f6 c3 02             	test   $0x2,%bl
473e94:	74 0c                	je     0x473ea2
473e96:	8d 4c 24 28          	lea    0x28(%esp),%ecx
473e9a:	83 e3 fd             	and    $0xfffffffd,%ebx
473e9d:	e8 c2 1b f9 ff       	call   0x405a64
473ea2:	f6 c3 01             	test   $0x1,%bl