445b50:	8b 17                	mov    (%edi),%edx
445b52:	85 d2                	test   %edx,%edx
445b54:	74 61                	je     0x445bb7
445b56:	ff 77 08             	push   0x8(%edi)
445b59:	8b 0d f4 b6 46 00    	mov    0x46b6f4,%ecx
445b5f:	ff 75 1c             	push   0x1c(%ebp)
445b62:	a1 f0 b6 46 00       	mov    0x46b6f0,%eax
445b67:	6a ff                	push   $0xffffffff
445b69:	56                   	push   %esi
445b6a:	6a 01                	push   $0x1
445b6c:	51                   	push   %ecx
445b6d:	50                   	push   %eax
445b6e:	51                   	push   %ecx
445b6f:	50                   	push   %eax
445b70:	ff 75 10             	push   0x10(%ebp)
445b73:	ff 75 0c             	push   0xc(%ebp)
445b76:	ff 75 18             	push   0x18(%ebp)
445b79:	ff 75 14             	push   0x14(%ebp)
445b7c:	ff d2                	call   *%edx
445b7e:	2b c6                	sub    %esi,%eax
445b80:	74 35                	je     0x445bb7
445b82:	83 e8 01             	sub    $0x1,%eax
445b85:	74 1b                	je     0x445ba2
445b87:	83 e8 01             	sub    $0x1,%eax
445b8a:	74 16                	je     0x445ba2
445b8c:	83 e8 01             	sub    $0x1,%eax
445b8f:	74 0d                	je     0x445b9e
445b91:	be ff ff 00 80       	mov    $0x8000ffff,%esi
445b96:	56                   	push   %esi
445b97:	68 09 03 00 00       	push   $0x309
445b9c:	eb 0f                	jmp    0x445bad
445b9e:	89 37                	mov    %esi,(%edi)
445ba0:	eb 15                	jmp    0x445bb7
445ba2:	be 42 06 07 80       	mov    $0x80070642,%esi
445ba7:	56                   	push   %esi
445ba8:	68 00 03 00 00       	push   $0x300
445bad:	68 5c 68 46 00       	push   $0x46685c
445bb2:	e8 1c dc fb ff       	call   0x4037d3
445bb7:	5f                   	pop    %edi
445bb8:	8b c6                	mov    %esi,%eax
445bba:	5e                   	pop    %esi
445bbb:	5d                   	pop    %ebp
445bbc:	c2 18 00             	ret    $0x18
445bbf:	55                   	push   %ebp
445bc0:	8b ec                	mov    %esp,%ebp
445bc2:	83 ec 14             	sub    $0x14,%esp
445bc5:	53                   	push   %ebx
445bc6:	56                   	push   %esi
445bc7:	57                   	push   %edi
445bc8:	8d 45 f4             	lea    -0xc(%ebp),%eax
445bcb:	33 db                	xor    %ebx,%ebx
445bcd:	50                   	push   %eax
445bce:	8d 45 f8             	lea    -0x8(%ebp),%eax
445bd1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
445bd4:	50                   	push   %eax
445bd5:	8d 45 fc             	lea    -0x4(%ebp),%eax
445bd8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
445bdb:	50                   	push   %eax
445bdc:	ff 75 18             	push   0x18(%ebp)
445bdf:	0f 57 c0             	xorps  %xmm0,%xmm0
445be2:	ff 75 14             	push   0x14(%ebp)
445be5:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
445bea:	ff 75 10             	push   0x10(%ebp)
445bed:	53                   	push   %ebx
445bee:	68 88 68 46 00       	push   $0x466888
445bf3:	ff 75 0c             	push   0xc(%ebp)
445bf6:	ff 75 08             	push   0x8(%ebp)
445bf9:	e8 81 01 00 00       	call   0x445d7f
445bfe:	8b 75 f8             	mov    -0x8(%ebp),%esi
445c01:	8b f8                	mov    %eax,%edi
445c03:	85 ff                	test   %edi,%edi
445c05:	78 3e                	js     0x445c45
445c07:	8d 45 ec             	lea    -0x14(%ebp),%eax
445c0a:	50                   	push   %eax
445c0b:	56                   	push   %esi
445c0c:	e8 ad 2c 00 00       	call   0x4488be
445c11:	85 c0                	test   %eax,%eax
445c13:	79 08                	jns    0x445c1d
445c15:	0f 57 c0             	xorps  %xmm0,%xmm0
445c18:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
445c1d:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
445c20:	8b 45 ec             	mov    -0x14(%ebp),%eax
445c23:	ff 75 20             	push   0x20(%ebp)
445c26:	89 01                	mov    %eax,(%ecx)
445c28:	8b 45 f0             	mov    -0x10(%ebp),%eax
445c2b:	56                   	push   %esi
445c2c:	89 41 04             	mov    %eax,0x4(%ecx)
445c2f:	e8 cf 2b 00 00       	call   0x448803
445c34:	8b f8                	mov    %eax,%edi
445c36:	85 ff                	test   %edi,%edi
445c38:	79 0b                	jns    0x445c45
445c3a:	ff 75 20             	push   0x20(%ebp)
445c3d:	ff 15 fc b2 44 00    	call   *0x44b2fc
445c43:	8b fb                	mov    %ebx,%edi
445c45:	8b 1d 6c a9 46 00    	mov    0x46a96c,%ebx
445c4b:	85 f6                	test   %esi,%esi
445c4d:	74 03                	je     0x445c52
445c4f:	56                   	push   %esi
445c50:	ff d3                	call   *%ebx
445c52:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
445c56:	74 05                	je     0x445c5d
445c58:	ff 75 fc             	push   -0x4(%ebp)
445c5b:	ff d3                	call   *%ebx
445c5d:	8b c7                	mov    %edi,%eax
445c5f:	5f                   	pop    %edi
445c60:	5e                   	pop    %esi
445c61:	5b                   	pop    %ebx
445c62:	8b e5                	mov    %ebp,%esp
445c64:	5d                   	pop    %ebp
445c65:	c2 1c 00             	ret    $0x1c
445c68:	55                   	push   %ebp
445c69:	8b ec                	mov    %esp,%ebp
445c6b:	51                   	push   %ecx
445c6c:	51                   	push   %ecx
445c6d:	53                   	push   %ebx
445c6e:	8b 5d 14             	mov    0x14(%ebp),%ebx
445c71:	33 c0                	xor    %eax,%eax
445c73:	56                   	push   %esi
445c74:	57                   	push   %edi
445c75:	89 45 fc             	mov    %eax,-0x4(%ebp)
445c78:	89 45 f8             	mov    %eax,-0x8(%ebp)
445c7b:	89 03                	mov    %eax,(%ebx)
445c7d:	89 43 04             	mov    %eax,0x4(%ebx)
445c80:	ff 75 08             	push   0x8(%ebp)
445c83:	8b 7d 0c             	mov    0xc(%ebp),%edi
445c86:	68 08 64 45 00       	push   $0x456408
445c8b:	57                   	push   %edi
445c8c:	e8 8f c2 fb ff       	call   0x401f20
445c91:	8b f0                	mov    %eax,%esi
445c93:	83 c4 0c             	add    $0xc,%esp
445c96:	85 f6                	test   %esi,%esi
445c98:	0f 88 d6 00 00 00    	js     0x445d74
445c9e:	6a 00                	push   $0x0
445ca0:	68 80 00 00 00       	push   $0x80
445ca5:	6a 04                	push   $0x4
445ca7:	6a 00                	push   $0x0
445ca9:	6a 04                	push   $0x4
445cab:	68 00 00 00 c0       	push   $0xc0000000
445cb0:	ff 37                	push   (%edi)
445cb2:	ff 15 d8 b0 44 00    	call   *0x44b0d8
445cb8:	8b f8                	mov    %eax,%edi
445cba:	83 ff ff             	cmp    $0xffffffff,%edi
445cbd:	75 33                	jne    0x445cf2
445cbf:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445cc5:	0f b7 f0             	movzwl %ax,%esi
445cc8:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445cce:	85 c0                	test   %eax,%eax
445cd0:	0f 4e f0             	cmovle %eax,%esi
445cd3:	b8 05 40 00 80       	mov    $0x80004005,%eax
445cd8:	85 f6                	test   %esi,%esi
445cda:	0f 49 f0             	cmovns %eax,%esi
445cdd:	56                   	push   %esi
445cde:	68 c1 00 00 00       	push   $0xc1
445ce3:	68 5c 68 46 00       	push   $0x46685c
445ce8:	e8 e6 da fb ff       	call   0x4037d3
445ced:	e9 82 00 00 00       	jmp    0x445d74
445cf2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
445cf5:	6a 00                	push   $0x0
445cf7:	8d 45 f8             	lea    -0x8(%ebp),%eax
445cfa:	50                   	push   %eax
445cfb:	6a 08                	push   $0x8
445cfd:	58                   	pop    %eax
445cfe:	2b c1                	sub    %ecx,%eax
445d00:	50                   	push   %eax
445d01:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
445d04:	50                   	push   %eax
445d05:	57                   	push   %edi
445d06:	ff 15 ec b1 44 00    	call   *0x44b1ec
445d0c:	85 c0                	test   %eax,%eax
445d0e:	74 2a                	je     0x445d3a
445d10:	8b 4d fc             	mov    -0x4(%ebp),%ecx
445d13:	03 4d f8             	add    -0x8(%ebp),%ecx
445d16:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
445d1a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
445d1d:	74 05                	je     0x445d24
445d1f:	83 f9 08             	cmp    $0x8,%ecx
445d22:	72 d1                	jb     0x445cf5
445d24:	83 f9 08             	cmp    $0x8,%ecx
445d27:	74 07                	je     0x445d30
445d29:	83 23 00             	andl   $0x0,(%ebx)
445d2c:	83 63 04 00          	andl   $0x0,0x4(%ebx)
445d30:	8b 45 10             	mov    0x10(%ebp),%eax
445d33:	89 38                	mov    %edi,(%eax)
445d35:	83 cf ff             	or     $0xffffffff,%edi
445d38:	eb 2e                	jmp    0x445d68
445d3a:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445d40:	0f b7 f0             	movzwl %ax,%esi
445d43:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445d49:	85 c0                	test   %eax,%eax
445d4b:	0f 4e f0             	cmovle %eax,%esi
445d4e:	b8 05 40 00 80       	mov    $0x80004005,%eax
445d53:	85 f6                	test   %esi,%esi
445d55:	0f 49 f0             	cmovns %eax,%esi
445d58:	56                   	push   %esi
445d59:	68 c8 00 00 00       	push   $0xc8
445d5e:	68 5c 68 46 00       	push   $0x46685c
445d63:	e8 6b da fb ff       	call   0x4037d3
445d68:	83 ff ff             	cmp    $0xffffffff,%edi
445d6b:	74 07                	je     0x445d74
445d6d:	57                   	push   %edi
445d6e:	ff 15 d4 b0 44 00    	call   *0x44b0d4
445d74:	5f                   	pop    %edi
445d75:	8b c6                	mov    %esi,%eax
445d77:	5e                   	pop    %esi
445d78:	5b                   	pop    %ebx
445d79:	8b e5                	mov    %ebp,%esp
445d7b:	5d                   	pop    %ebp
445d7c:	c2 10 00             	ret    $0x10
445d7f:	55                   	push   %ebp
445d80:	8b ec                	mov    %esp,%ebp
445d82:	83 ec 24             	sub    $0x24,%esp
445d85:	53                   	push   %ebx
445d86:	56                   	push   %esi
445d87:	57                   	push   %edi
445d88:	33 f6                	xor    %esi,%esi
445d8a:	8d 7d dc             	lea    -0x24(%ebp),%edi
445d8d:	6a 07                	push   $0x7
445d8f:	33 c0                	xor    %eax,%eax
445d91:	8b de                	mov    %esi,%ebx
445d93:	59                   	pop    %ecx
445d94:	f3 ab                	rep stos %eax,%es:(%edi)
445d96:	89 5d fc             	mov    %ebx,-0x4(%ebp)
445d99:	8b f8                	mov    %eax,%edi
445d9b:	eb 02                	jmp    0x445d9f
445d9d:	33 f6                	xor    %esi,%esi
445d9f:	89 75 f8             	mov    %esi,-0x8(%ebp)
445da2:	85 db                	test   %ebx,%ebx
445da4:	74 0c                	je     0x445db2
445da6:	53                   	push   %ebx
445da7:	ff 15 6c a9 46 00    	call   *0x46a96c
445dad:	8b de                	mov    %esi,%ebx
445daf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
445db2:	85 ff                	test   %edi,%edi
445db4:	74 09                	je     0x445dbf
445db6:	57                   	push   %edi
445db7:	ff 15 6c a9 46 00    	call   *0x46a96c
445dbd:	8b fe                	mov    %esi,%edi
445dbf:	8d 45 dc             	lea    -0x24(%ebp),%eax
445dc2:	50                   	push   %eax
445dc3:	8b 45 0c             	mov    0xc(%ebp),%eax
445dc6:	ff 30                	push   (%eax)
445dc8:	e8 aa 2e 00 00       	call   0x448c77
445dcd:	8b f0                	mov    %eax,%esi
445dcf:	85 f6                	test   %esi,%esi
445dd1:	0f 88 0e 01 00 00    	js     0x445ee5
445dd7:	8b 75 1c             	mov    0x1c(%ebp),%esi
445dda:	33 ff                	xor    %edi,%edi
445ddc:	85 f6                	test   %esi,%esi
445dde:	74 07                	je     0x445de7
445de0:	8b d6                	mov    %esi,%edx
445de2:	66 39 3e             	cmp    %di,(%esi)
445de5:	75 03                	jne    0x445dea
445de7:	8b 55 ec             	mov    -0x14(%ebp),%edx
445dea:	8b 45 18             	mov    0x18(%ebp),%eax
445ded:	85 c0                	test   %eax,%eax
445def:	74 07                	je     0x445df8
445df1:	8b c8                	mov    %eax,%ecx
445df3:	66 39 38             	cmp    %di,(%eax)
445df6:	75 03                	jne    0x445dfb
445df8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
445dfb:	57                   	push   %edi
445dfc:	57                   	push   %edi
445dfd:	6a 03                	push   $0x3
445dff:	58                   	pop    %eax
445e00:	33 ff                	xor    %edi,%edi
445e02:	47                   	inc    %edi
445e03:	39 7d dc             	cmp    %edi,-0x24(%ebp)
445e06:	0f 44 c7             	cmove  %edi,%eax
445e09:	50                   	push   %eax
445e0a:	52                   	push   %edx
445e0b:	51                   	push   %ecx
445e0c:	ff 75 e4             	push   -0x1c(%ebp)
445e0f:	ff 75 e0             	push   -0x20(%ebp)
445e12:	ff 75 08             	push   0x8(%ebp)
445e15:	ff 15 94 a9 46 00    	call   *0x46a994
445e1b:	8b f8                	mov    %eax,%edi
445e1d:	85 ff                	test   %edi,%edi
445e1f:	0f 84 92 00 00 00    	je     0x445eb7
445e25:	8b 5d 18             	mov    0x18(%ebp),%ebx
445e28:	85 db                	test   %ebx,%ebx
445e2a:	74 36                	je     0x445e62
445e2c:	33 c0                	xor    %eax,%eax
445e2e:	66 39 03             	cmp    %ax,(%ebx)
445e31:	74 2f                	je     0x445e62
445e33:	85 f6                	test   %esi,%esi
445e35:	74 2b                	je     0x445e62
445e37:	66 39 06             	cmp    %ax,(%esi)
445e3a:	74 26                	je     0x445e62
445e3c:	53                   	push   %ebx
445e3d:	ff 15 f8 b0 44 00    	call   *0x44b0f8
445e43:	50                   	push   %eax
445e44:	53                   	push   %ebx
445e45:	8b 1d 70 a9 46 00    	mov    0x46a970,%ebx
445e4b:	6a 2b                	push   $0x2b
445e4d:	57                   	push   %edi
445e4e:	ff d3                	call   *%ebx
445e50:	85 c0                	test   %eax,%eax
445e52:	74 0e                	je     0x445e62
445e54:	56                   	push   %esi
445e55:	ff 15 f8 b0 44 00    	call   *0x44b0f8
445e5b:	50                   	push   %eax
445e5c:	56                   	push   %esi
445e5d:	6a 2c                	push   $0x2c
445e5f:	57                   	push   %edi
445e60:	ff d3                	call   *%ebx
445e62:	8d 45 fc             	lea    -0x4(%ebp),%eax
445e65:	50                   	push   %eax
445e66:	ff 75 14             	push   0x14(%ebp)
445e69:	ff 75 f4             	push   -0xc(%ebp)
445e6c:	ff 75 f0             	push   -0x10(%ebp)
445e6f:	ff 75 dc             	push   -0x24(%ebp)
445e72:	ff 75 10             	push   0x10(%ebp)
445e75:	57                   	push   %edi
445e76:	e8 94 00 00 00       	call   0x445f0f
445e7b:	8b 5d fc             	mov    -0x4(%ebp),%ebx
445e7e:	8b f0                	mov    %eax,%esi
445e80:	85 f6                	test   %esi,%esi
445e82:	78 61                	js     0x445ee5
445e84:	ff 75 2c             	push   0x2c(%ebp)
445e87:	8d 45 f8             	lea    -0x8(%ebp),%eax
445e8a:	50                   	push   %eax
445e8b:	ff 75 20             	push   0x20(%ebp)
445e8e:	ff 75 0c             	push   0xc(%ebp)
445e91:	53                   	push   %ebx
445e92:	e8 94 01 00 00       	call   0x44602b
445e97:	8b f0                	mov    %eax,%esi
445e99:	85 f6                	test   %esi,%esi
445e9b:	78 48                	js     0x445ee5
445e9d:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
445ea1:	0f 85 f6 fe ff ff    	jne    0x445d9d
445ea7:	8b 45 24             	mov    0x24(%ebp),%eax
445eaa:	89 38                	mov    %edi,(%eax)
445eac:	33 ff                	xor    %edi,%edi
445eae:	8b 45 28             	mov    0x28(%ebp),%eax
445eb1:	89 18                	mov    %ebx,(%eax)
445eb3:	33 db                	xor    %ebx,%ebx
445eb5:	eb 2e                	jmp    0x445ee5
445eb7:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445ebd:	0f b7 f0             	movzwl %ax,%esi
445ec0:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445ec6:	85 c0                	test   %eax,%eax
445ec8:	0f 4e f0             	cmovle %eax,%esi
445ecb:	b8 05 40 00 80       	mov    $0x80004005,%eax
445ed0:	85 f6                	test   %esi,%esi
445ed2:	0f 49 f0             	cmovns %eax,%esi
445ed5:	56                   	push   %esi
445ed6:	68 fe 01 00 00       	push   $0x1fe
445edb:	68 5c 68 46 00       	push   $0x46685c
445ee0:	e8 ee d8 fb ff       	call   0x4037d3
445ee5:	8d 45 dc             	lea    -0x24(%ebp),%eax