428b04:	0f 84 d0 00 00 00    	je     0x428bda
428b0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b0d:	e8 32 c2 ff ff       	call   0x424d44
428b12:	33 c0                	xor    %eax,%eax
428b14:	55                   	push   %ebp
428b15:	68 d3 8b 42 00       	push   $0x428bd3
428b1a:	64 ff 30             	push   %fs:(%eax)
428b1d:	64 89 20             	mov    %esp,%fs:(%eax)
428b20:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b23:	8b 40 58             	mov    0x58(%eax),%eax
428b26:	e8 f1 12 00 00       	call   0x429e1c
428b2b:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b2e:	8b 40 58             	mov    0x58(%eax),%eax
428b31:	8b 40 28             	mov    0x28(%eax),%eax
428b34:	8b 40 08             	mov    0x8(%eax),%eax
428b37:	e8 34 fe ff ff       	call   0x428970
428b3c:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b3f:	8b 40 58             	mov    0x58(%eax),%eax
428b42:	e8 d5 13 00 00       	call   0x429f1c
428b47:	6a 00                	push   $0x0
428b49:	e8 6a e0 fd ff       	call   0x406bb8
428b4e:	8b d8                	mov    %eax,%ebx
428b50:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b53:	8b 40 58             	mov    0x58(%eax),%eax
428b56:	8b 40 28             	mov    0x28(%eax),%eax
428b59:	8b 70 08             	mov    0x8(%eax),%esi
428b5c:	85 f6                	test   %esi,%esi
428b5e:	74 0f                	je     0x428b6f
428b60:	56                   	push   %esi
428b61:	53                   	push   %ebx
428b62:	e8 e1 e1 fd ff       	call   0x406d48
428b67:	8b 55 fc             	mov    -0x4(%ebp),%edx
428b6a:	89 42 5c             	mov    %eax,0x5c(%edx)
428b6d:	eb 08                	jmp    0x428b77
428b6f:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b72:	33 d2                	xor    %edx,%edx
428b74:	89 50 5c             	mov    %edx,0x5c(%eax)
428b77:	8b 45 fc             	mov    -0x4(%ebp),%eax
428b7a:	8b 40 58             	mov    0x58(%eax),%eax
428b7d:	8b 40 28             	mov    0x28(%eax),%eax
428b80:	8b 70 10             	mov    0x10(%eax),%esi
428b83:	85 f6                	test   %esi,%esi
428b85:	74 17                	je     0x428b9e
428b87:	6a ff                	push   $0xffffffff
428b89:	56                   	push   %esi
428b8a:	53                   	push   %ebx
428b8b:	e8 c0 e1 fd ff       	call   0x406d50
428b90:	8b 55 fc             	mov    -0x4(%ebp),%edx
428b93:	89 42 60             	mov    %eax,0x60(%edx)
428b96:	53                   	push   %ebx
428b97:	e8 84 e1 fd ff       	call   0x406d20
428b9c:	eb 08                	jmp    0x428ba6
428b9e:	8b 45 fc             	mov    -0x4(%ebp),%eax
428ba1:	33 d2                	xor    %edx,%edx
428ba3:	89 50 60             	mov    %edx,0x60(%eax)
428ba6:	8b d3                	mov    %ebx,%edx
428ba8:	8b 45 fc             	mov    -0x4(%ebp),%eax
428bab:	e8 e4 c5 ff ff       	call   0x425194
428bb0:	8b 55 fc             	mov    -0x4(%ebp),%edx
428bb3:	a1 ec bd 49 00       	mov    0x49bdec,%eax
428bb8:	e8 5b f9 fe ff       	call   0x418518
428bbd:	33 c0                	xor    %eax,%eax
428bbf:	5a                   	pop    %edx
428bc0:	59                   	pop    %ecx
428bc1:	59                   	pop    %ecx
428bc2:	64 89 10             	mov    %edx,%fs:(%eax)
428bc5:	68 da 8b 42 00       	push   $0x428bda
428bca:	8b 45 fc             	mov    -0x4(%ebp),%eax
428bcd:	e8 2e c4 ff ff       	call   0x425000
428bd2:	c3                   	ret
428bd3:	e9 d8 b4 fd ff       	jmp    0x4040b0
428bd8:	eb f0                	jmp    0x428bca
428bda:	5e                   	pop    %esi
428bdb:	5b                   	pop    %ebx
428bdc:	59                   	pop    %ecx
428bdd:	5d                   	pop    %ebp
428bde:	c3                   	ret
428bdf:	90                   	nop
428be0:	ff 40 04             	incl   0x4(%eax)
428be3:	c3                   	ret
428be4:	53                   	push   %ebx
428be5:	8b d8                	mov    %eax,%ebx
428be7:	85 db                	test   %ebx,%ebx
428be9:	74 16                	je     0x428c01
428beb:	ff 4b 04             	decl   0x4(%ebx)
428bee:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
428bf2:	75 0d                	jne    0x428c01
428bf4:	8b c3                	mov    %ebx,%eax
428bf6:	8b 10                	mov    (%eax),%edx
428bf8:	ff 12                	call   *(%edx)
428bfa:	8b c3                	mov    %ebx,%eax
428bfc:	e8 1b ad fd ff       	call   0x40391c
428c01:	5b                   	pop    %ebx
428c02:	c3                   	ret
428c03:	90                   	nop
428c04:	53                   	push   %ebx
428c05:	56                   	push   %esi
428c06:	e8 dd b0 fd ff       	call   0x403ce8
428c0b:	8b da                	mov    %edx,%ebx
428c0d:	8b f0                	mov    %eax,%esi
428c0f:	8b 46 14             	mov    0x14(%esi),%eax
428c12:	85 c0                	test   %eax,%eax
428c14:	74 13                	je     0x428c29
428c16:	e8 55 fd ff ff       	call   0x428970
428c1b:	8b 46 14             	mov    0x14(%esi),%eax
428c1e:	50                   	push   %eax
428c1f:	e8 ec df fd ff       	call   0x406c10
428c24:	33 c0                	xor    %eax,%eax
428c26:	89 46 14             	mov    %eax,0x14(%esi)
428c29:	8b c6                	mov    %esi,%eax
428c2b:	8b 10                	mov    (%eax),%edx
428c2d:	ff 12                	call   *(%edx)
428c2f:	8b 46 64             	mov    0x64(%esi),%eax
428c32:	85 c0                	test   %eax,%eax
428c34:	74 06                	je     0x428c3c
428c36:	50                   	push   %eax
428c37:	e8 44 dd fd ff       	call   0x406980
428c3c:	8d 46 6c             	lea    0x6c(%esi),%eax
428c3f:	e8 e4 54 fe ff       	call   0x40e128
428c44:	8b d3                	mov    %ebx,%edx
428c46:	80 e2 fc             	and    $0xfc,%dl
428c49:	8b c6                	mov    %esi,%eax
428c4b:	e8 bc ac fd ff       	call   0x40390c
428c50:	84 db                	test   %bl,%bl
428c52:	7e 07                	jle    0x428c5b
428c54:	8b c6                	mov    %esi,%eax
428c56:	e8 35 b0 fd ff       	call   0x403c90
428c5b:	5e                   	pop    %esi
428c5c:	5b                   	pop    %ebx
428c5d:	c3                   	ret
428c5e:	8b c0                	mov    %eax,%eax
428c60:	53                   	push   %ebx
428c61:	8b d8                	mov    %eax,%ebx
428c63:	8b 43 08             	mov    0x8(%ebx),%eax
428c66:	85 c0                	test   %eax,%eax
428c68:	74 13                	je     0x428c7d
428c6a:	e8 01 fd ff ff       	call   0x428970
428c6f:	8b 43 08             	mov    0x8(%ebx),%eax
428c72:	3b 43 14             	cmp    0x14(%ebx),%eax
428c75:	74 06                	je     0x428c7d
428c77:	50                   	push   %eax
428c78:	e8 93 df fd ff       	call   0x406c10
428c7d:	8b 43 0c             	mov    0xc(%ebx),%eax
428c80:	85 c0                	test   %eax,%eax
428c82:	74 13                	je     0x428c97
428c84:	e8 e7 fc ff ff       	call   0x428970
428c89:	8b 43 0c             	mov    0xc(%ebx),%eax
428c8c:	50                   	push   %eax
428c8d:	e8 7e df fd ff       	call   0x406c10
428c92:	33 c0                	xor    %eax,%eax
428c94:	89 43 0c             	mov    %eax,0xc(%ebx)
428c97:	8b 43 10             	mov    0x10(%ebx),%eax
428c9a:	e8 59 a5 ff ff       	call   0x4231f8
428c9f:	33 c0                	xor    %eax,%eax
428ca1:	89 43 08             	mov    %eax,0x8(%ebx)
428ca4:	33 c0                	xor    %eax,%eax
428ca6:	89 43 10             	mov    %eax,0x10(%ebx)
428ca9:	5b                   	pop    %ebx
428caa:	c3                   	ret
428cab:	90                   	nop
428cac:	55                   	push   %ebp
428cad:	8b ec                	mov    %esp,%ebp
428caf:	81 c4 f0 fb ff ff    	add    $0xfffffbf0,%esp
428cb5:	53                   	push   %ebx
428cb6:	56                   	push   %esi
428cb7:	89 55 fc             	mov    %edx,-0x4(%ebp)
428cba:	8b f0                	mov    %eax,%esi
428cbc:	85 f6                	test   %esi,%esi
428cbe:	0f 84 9e 00 00 00    	je     0x428d62
428cc4:	66 83 79 26 08       	cmpw   $0x8,0x26(%ecx)
428cc9:	0f 87 93 00 00 00    	ja     0x428d62
428ccf:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
428cd5:	b9 ff 00 00 00       	mov    $0xff,%ecx
428cda:	8b 45 fc             	mov    -0x4(%ebp),%eax
428cdd:	e8 ca cf ff ff       	call   0x425cac
428ce2:	8b d8                	mov    %eax,%ebx
428ce4:	85 db                	test   %ebx,%ebx
428ce6:	74 7a                	je     0x428d62
428ce8:	6a 00                	push   $0x0
428cea:	e8 91 e2 fd ff       	call   0x406f80
428cef:	89 45 f8             	mov    %eax,-0x8(%ebp)
428cf2:	8b 45 f8             	mov    -0x8(%ebp),%eax
428cf5:	50                   	push   %eax
428cf6:	e8 bd de fd ff       	call   0x406bb8
428cfb:	89 45 f4             	mov    %eax,-0xc(%ebp)
428cfe:	56                   	push   %esi
428cff:	8b 45 f4             	mov    -0xc(%ebp),%eax
428d02:	50                   	push   %eax
428d03:	e8 40 e0 fd ff       	call   0x406d48
428d08:	89 45 f0             	mov    %eax,-0x10(%ebp)
428d0b:	33 c0                	xor    %eax,%eax
428d0d:	55                   	push   %ebp
428d0e:	68 5b 8d 42 00       	push   $0x428d5b
428d13:	64 ff 30             	push   %fs:(%eax)
428d16:	64 89 20             	mov    %esp,%fs:(%eax)
428d19:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
428d1f:	50                   	push   %eax
428d20:	53                   	push   %ebx
428d21:	6a 00                	push   $0x0
428d23:	8b 45 f4             	mov    -0xc(%ebp),%eax
428d26:	50                   	push   %eax
428d27:	e8 44 e0 fd ff       	call   0x406d70
428d2c:	33 c0                	xor    %eax,%eax
428d2e:	5a                   	pop    %edx
428d2f:	59                   	pop    %ecx
428d30:	59                   	pop    %ecx
428d31:	64 89 10             	mov    %edx,%fs:(%eax)
428d34:	68 62 8d 42 00       	push   $0x428d62
428d39:	8b 45 f0             	mov    -0x10(%ebp),%eax
428d3c:	50                   	push   %eax
428d3d:	8b 45 f4             	mov    -0xc(%ebp),%eax
428d40:	50                   	push   %eax
428d41:	e8 02 e0 fd ff       	call   0x406d48
428d46:	8b 45 f4             	mov    -0xc(%ebp),%eax
428d49:	50                   	push   %eax
428d4a:	e8 b1 de fd ff       	call   0x406c00
428d4f:	8b 45 f8             	mov    -0x8(%ebp),%eax
428d52:	50                   	push   %eax
428d53:	6a 00                	push   $0x0
428d55:	e8 ae e4 fd ff       	call   0x407208
428d5a:	c3                   	ret
428d5b:	e9 50 b3 fd ff       	jmp    0x4040b0
428d60:	eb d7                	jmp    0x428d39
428d62:	5e                   	pop    %esi
428d63:	5b                   	pop    %ebx
428d64:	8b e5                	mov    %ebp,%esp
428d66:	5d                   	pop    %ebp
428d67:	c3                   	ret
428d68:	f6 40 28 03          	testb  $0x3,0x28(%eax)
428d6c:	74 42                	je     0x428db0
428d6e:	83 78 40 00          	cmpl   $0x0,0x40(%eax)
428d72:	75 3c                	jne    0x428db0
428d74:	0f b7 50 26          	movzwl 0x26(%eax),%edx
428d78:	66 83 fa 10          	cmp    $0x10,%dx
428d7c:	75 17                	jne    0x428d95
428d7e:	c7 40 40 00 f8 00 00 	movl   $0xf800,0x40(%eax)
428d85:	c7 40 44 e0 07 00 00 	movl   $0x7e0,0x44(%eax)
428d8c:	c7 40 48 1f 00 00 00 	movl   $0x1f,0x48(%eax)
428d93:	eb 1b                	jmp    0x428db0
428d95:	66 83 fa 20          	cmp    $0x20,%dx
428d99:	75 15                	jne    0x428db0
428d9b:	c7 40 40 00 00 ff 00 	movl   $0xff0000,0x40(%eax)
428da2:	c7 40 44 00 ff 00 00 	movl   $0xff00,0x44(%eax)
428da9:	c7 40 48 ff 00 00 00 	movl   $0xff,0x48(%eax)
428db0:	c3                   	ret
428db1:	8d 40 00             	lea    0x0(%eax),%eax
428db4:	55                   	push   %ebp
428db5:	8b ec                	mov    %esp,%ebp
428db7:	81 c4 68 ff ff ff    	add    $0xffffff68,%esp
428dbd:	53                   	push   %ebx
428dbe:	56                   	push   %esi
428dbf:	57                   	push   %edi
428dc0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
428dc3:	89 55 f8             	mov    %edx,-0x8(%ebp)
428dc6:	89 45 fc             	mov    %eax,-0x4(%ebp)
428dc9:	33 c0                	xor    %eax,%eax
428dcb:	89 45 f0             	mov    %eax,-0x10(%ebp)
428dce:	8b 45 0c             	mov    0xc(%ebp),%eax
428dd1:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
428dd5:	74 1a                	je     0x428df1
428dd7:	8b 45 0c             	mov    0xc(%ebp),%eax
428dda:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
428dde:	0f 84 25 06 00 00    	je     0x429409
428de4:	8b 45 0c             	mov    0xc(%ebp),%eax
428de7:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
428deb:	0f 84 18 06 00 00    	je     0x429409
428df1:	8b 45 0c             	mov    0xc(%ebp),%eax
428df4:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
428df8:	75 1a                	jne    0x428e14
428dfa:	8b 45 0c             	mov    0xc(%ebp),%eax
428dfd:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
428e01:	0f 84 02 06 00 00    	je     0x429409
428e07:	8b 45 0c             	mov    0xc(%ebp),%eax
428e0a:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
428e0e:	0f 84 f5 05 00 00    	je     0x429409
428e14:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e17:	e8 54 fb ff ff       	call   0x428970
428e1c:	33 c0                	xor    %eax,%eax
428e1e:	89 45 90             	mov    %eax,-0x70(%ebp)
428e21:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
428e25:	74 1c                	je     0x428e43
428e27:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
428e2d:	50                   	push   %eax
428e2e:	6a 54                	push   $0x54
428e30:	8b 45 fc             	mov    -0x4(%ebp),%eax
428e33:	50                   	push   %eax
428e34:	e8 4f de fd ff       	call   0x406c88
428e39:	83 f8 18             	cmp    $0x18,%eax
428e3c:	7d 05                	jge    0x428e43
428e3e:	e8 ad c5 ff ff       	call   0x4253f0
428e43:	6a 00                	push   $0x0
428e45:	e8 36 e1 fd ff       	call   0x406f80
428e4a:	e8 c1 c6 ff ff       	call   0x425510
428e4f:	89 45 e8             	mov    %eax,-0x18(%ebp)
428e52:	8b 45 e8             	mov    -0x18(%ebp),%eax
428e55:	50                   	push   %eax
428e56:	e8 5d dd fd ff       	call   0x406bb8
428e5b:	e8 b0 c6 ff ff       	call   0x425510
428e60:	89 45 e4             	mov    %eax,-0x1c(%ebp)
428e63:	33 d2                	xor    %edx,%edx
428e65:	55                   	push   %ebp
428e66:	68 02 94 42 00       	push   $0x429402
428e6b:	64 ff 32             	push   %fs:(%edx)
428e6e:	64 89 22             	mov    %esp,%fs:(%edx)
428e71:	8b 45 0c             	mov    0xc(%ebp),%eax
428e74:	83 78 18 28          	cmpl   $0x28,0x18(%eax)
428e78:	73 5e                	jae    0x428ed8
428e7a:	8b 45 0c             	mov    0xc(%ebp),%eax
428e7d:	0f b7 40 10          	movzwl 0x10(%eax),%eax
428e81:	8b 55 0c             	mov    0xc(%ebp),%edx
428e84:	66 0b 42 12          	or     0x12(%edx),%ax
428e88:	66 83 f8 01          	cmp    $0x1,%ax
428e8c:	75 26                	jne    0x428eb4
428e8e:	6a 00                	push   $0x0
428e90:	6a 01                	push   $0x1
428e92:	6a 01                	push   $0x1
428e94:	8b 45 0c             	mov    0xc(%ebp),%eax
428e97:	8b 40 08             	mov    0x8(%eax),%eax
428e9a:	50                   	push   %eax
428e9b:	8b 45 0c             	mov    0xc(%ebp),%eax
428e9e:	8b 40 04             	mov    0x4(%eax),%eax
428ea1:	50                   	push   %eax
428ea2:	e8 f9 dc fd ff       	call   0x406ba0
428ea7:	e8 64 c6 ff ff       	call   0x425510
428eac:	89 45 f0             	mov    %eax,-0x10(%ebp)
428eaf:	e9 5f 02 00 00       	jmp    0x429113
428eb4:	8b 45 0c             	mov    0xc(%ebp),%eax
428eb7:	8b 40 08             	mov    0x8(%eax),%eax
428eba:	50                   	push   %eax
428ebb:	8b 45 0c             	mov    0xc(%ebp),%eax
428ebe:	8b 40 04             	mov    0x4(%eax),%eax
428ec1:	50                   	push   %eax
428ec2:	8b 45 e8             	mov    -0x18(%ebp),%eax
428ec5:	50                   	push   %eax
428ec6:	e8 e5 dc fd ff       	call   0x406bb0
428ecb:	e8 40 c6 ff ff       	call   0x425510
428ed0:	89 45 f0             	mov    %eax,-0x10(%ebp)
428ed3:	e9 3b 02 00 00       	jmp    0x429113
428ed8:	b8 2c 04 00 00       	mov    $0x42c,%eax
428edd:	e8 1a 9e fd ff       	call   0x402cfc
428ee2:	89 45 dc             	mov    %eax,-0x24(%ebp)
428ee5:	33 d2                	xor    %edx,%edx
428ee7:	55                   	push   %ebp
428ee8:	68 0c 91 42 00       	push   $0x42910c
428eed:	64 ff 32             	push   %fs:(%edx)
428ef0:	64 89 22             	mov    %esp,%fs:(%edx)
428ef3:	8b 45 0c             	mov    0xc(%ebp),%eax
428ef6:	c7 40 18 28 00 00 00 	movl   $0x28,0x18(%eax)
428efd:	8b 45 0c             	mov    0xc(%ebp),%eax
428f00:	66 c7 40 24 01 00    	movw   $0x1,0x24(%eax)