444b41:	75 0b                	jne    0x444b4e
444b43:	3d 00 00 01 00       	cmp    $0x10000,%eax
444b48:	73 04                	jae    0x444b4e
444b4a:	09 07                	or     %eax,(%edi)
444b4c:	eb 03                	jmp    0x444b51
444b4e:	33 f6                	xor    %esi,%esi
444b50:	46                   	inc    %esi
444b51:	5f                   	pop    %edi
444b52:	8b c6                	mov    %esi,%eax
444b54:	5e                   	pop    %esi
444b55:	5b                   	pop    %ebx
444b56:	5d                   	pop    %ebp
444b57:	c2 0c 00             	ret    $0xc
444b5a:	55                   	push   %ebp
444b5b:	8b ec                	mov    %esp,%ebp
444b5d:	83 ec 14             	sub    $0x14,%esp
444b60:	33 c0                	xor    %eax,%eax
444b62:	0f 57 c0             	xorps  %xmm0,%xmm0
444b65:	53                   	push   %ebx
444b66:	8b 5d 08             	mov    0x8(%ebp),%ebx
444b69:	56                   	push   %esi
444b6a:	89 45 08             	mov    %eax,0x8(%ebp)
444b6d:	89 45 fc             	mov    %eax,-0x4(%ebp)
444b70:	8b 45 0c             	mov    0xc(%ebp),%eax
444b73:	66 0f 13 45 ec       	movlpd %xmm0,-0x14(%ebp)
444b78:	57                   	push   %edi
444b79:	8b fb                	mov    %ebx,%edi
444b7b:	85 c0                	test   %eax,%eax
444b7d:	75 0f                	jne    0x444b8e
444b7f:	53                   	push   %ebx
444b80:	ff 15 f8 b0 44 00    	call   *0x44b0f8
444b86:	85 c0                	test   %eax,%eax
444b88:	0f 84 89 00 00 00    	je     0x444c17
444b8e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
444b91:	8d 04 43             	lea    (%ebx,%eax,2),%eax
444b94:	89 4d f8             	mov    %ecx,-0x8(%ebp)
444b97:	8b 4d ec             	mov    -0x14(%ebp),%ecx
444b9a:	89 45 f4             	mov    %eax,-0xc(%ebp)
444b9d:	89 4d 0c             	mov    %ecx,0xc(%ebp)
444ba0:	eb 0b                	jmp    0x444bad
444ba2:	6a 2e                	push   $0x2e
444ba4:	59                   	pop    %ecx
444ba5:	66 3b 0f             	cmp    (%edi),%cx
444ba8:	74 07                	je     0x444bb1
444baa:	83 c7 02             	add    $0x2,%edi
444bad:	3b f8                	cmp    %eax,%edi
444baf:	72 f1                	jb     0x444ba2
444bb1:	3b df                	cmp    %edi,%ebx
444bb3:	74 62                	je     0x444c17
444bb5:	8b f7                	mov    %edi,%esi
444bb7:	83 c8 ff             	or     $0xffffffff,%eax
444bba:	2b f3                	sub    %ebx,%esi
444bbc:	d1 fe                	sar    $1,%esi
444bbe:	0f 49 c6             	cmovns %esi,%eax
444bc1:	c1 fe 1f             	sar    $0x1f,%esi
444bc4:	81 e6 16 02 07 80    	and    $0x80070216,%esi
444bca:	7c 50                	jl     0x444c1c
444bcc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
444bcf:	51                   	push   %ecx
444bd0:	50                   	push   %eax
444bd1:	53                   	push   %ebx
444bd2:	e8 bb dd fb ff       	call   0x402992
444bd7:	8b f0                	mov    %eax,%esi
444bd9:	85 f6                	test   %esi,%esi
444bdb:	78 3f                	js     0x444c1c
444bdd:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
444be1:	6a 30                	push   $0x30
444be3:	59                   	pop    %ecx
444be4:	2b 4d 08             	sub    0x8(%ebp),%ecx
444be7:	99                   	cltd
444be8:	e8 33 52 00 00       	call   0x449e20
444bed:	8b 5d 0c             	mov    0xc(%ebp),%ebx
444bf0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
444bf3:	0b d8                	or     %eax,%ebx
444bf5:	8b 45 f4             	mov    -0xc(%ebp),%eax
444bf8:	0b ca                	or     %edx,%ecx
444bfa:	89 5d 0c             	mov    %ebx,0xc(%ebp)
444bfd:	89 4d f8             	mov    %ecx,-0x8(%ebp)
444c00:	3b f8                	cmp    %eax,%edi
444c02:	73 23                	jae    0x444c27
444c04:	8b 4d 08             	mov    0x8(%ebp),%ecx
444c07:	83 c7 02             	add    $0x2,%edi
444c0a:	83 c1 10             	add    $0x10,%ecx
444c0d:	8b df                	mov    %edi,%ebx
444c0f:	89 4d 08             	mov    %ecx,0x8(%ebp)
444c12:	83 f9 40             	cmp    $0x40,%ecx
444c15:	72 96                	jb     0x444bad
444c17:	be 57 00 07 80       	mov    $0x80070057,%esi
444c1c:	5f                   	pop    %edi
444c1d:	8b c6                	mov    %esi,%eax
444c1f:	5e                   	pop    %esi
444c20:	5b                   	pop    %ebx
444c21:	8b e5                	mov    %ebp,%esp
444c23:	5d                   	pop    %ebp
444c24:	c2 0c 00             	ret    $0xc
444c27:	8b 45 10             	mov    0x10(%ebp),%eax
444c2a:	89 18                	mov    %ebx,(%eax)
444c2c:	89 48 04             	mov    %ecx,0x4(%eax)
444c2f:	eb eb                	jmp    0x444c1c
444c31:	55                   	push   %ebp
444c32:	8b ec                	mov    %esp,%ebp
444c34:	8b 4d 08             	mov    0x8(%ebp),%ecx
444c37:	8b 55 0c             	mov    0xc(%ebp),%edx
444c3a:	0f b7 c1             	movzwl %cx,%eax
444c3d:	50                   	push   %eax
444c3e:	8b c2                	mov    %edx,%eax
444c40:	0f ac c1 10          	shrd   $0x10,%eax,%ecx
444c44:	c1 e8 10             	shr    $0x10,%eax
444c47:	0f b7 c1             	movzwl %cx,%eax
444c4a:	50                   	push   %eax
444c4b:	0f b7 c2             	movzwl %dx,%eax
444c4e:	50                   	push   %eax
444c4f:	c1 ea 10             	shr    $0x10,%edx
444c52:	52                   	push   %edx
444c53:	68 9c 67 46 00       	push   $0x46679c
444c58:	ff 75 10             	push   0x10(%ebp)
444c5b:	e8 c0 d2 fb ff       	call   0x401f20
444c60:	83 c4 18             	add    $0x18,%esp
444c63:	5d                   	pop    %ebp
444c64:	c2 0c 00             	ret    $0xc
444c67:	55                   	push   %ebp
444c68:	8b ec                	mov    %esp,%ebp
444c6a:	56                   	push   %esi
444c6b:	57                   	push   %edi
444c6c:	6a 00                	push   $0x0
444c6e:	ff 75 0c             	push   0xc(%ebp)
444c71:	6a 02                	push   $0x2
444c73:	6a 00                	push   $0x0
444c75:	6a 01                	push   $0x1
444c77:	68 00 00 00 40       	push   $0x40000000
444c7c:	ff 75 08             	push   0x8(%ebp)
444c7f:	ff 15 d8 b0 44 00    	call   *0x44b0d8
444c85:	8b f8                	mov    %eax,%edi
444c87:	83 ff ff             	cmp    $0xffffffff,%edi
444c8a:	75 30                	jne    0x444cbc
444c8c:	ff 15 e8 b0 44 00    	call   *0x44b0e8
444c92:	0f b7 f0             	movzwl %ax,%esi
444c95:	81 ce 00 00 07 80    	or     $0x80070000,%esi
444c9b:	85 c0                	test   %eax,%eax
444c9d:	0f 4e f0             	cmovle %eax,%esi
444ca0:	b8 05 40 00 80       	mov    $0x80004005,%eax
444ca5:	85 f6                	test   %esi,%esi
444ca7:	0f 49 f0             	cmovns %eax,%esi
444caa:	56                   	push   %esi
444cab:	68 c2 03 00 00       	push   $0x3c2
444cb0:	68 8c 67 46 00       	push   $0x46678c
444cb5:	e8 19 eb fb ff       	call   0x4037d3
444cba:	eb 2a                	jmp    0x444ce6
444cbc:	ff 75 14             	push   0x14(%ebp)
444cbf:	ff 75 10             	push   0x10(%ebp)
444cc2:	57                   	push   %edi
444cc3:	e8 26 00 00 00       	call   0x444cee
444cc8:	8b f0                	mov    %eax,%esi
444cca:	85 f6                	test   %esi,%esi
444ccc:	78 0c                	js     0x444cda
444cce:	8b 45 18             	mov    0x18(%ebp),%eax
444cd1:	85 c0                	test   %eax,%eax
444cd3:	74 05                	je     0x444cda
444cd5:	89 38                	mov    %edi,(%eax)
444cd7:	83 cf ff             	or     $0xffffffff,%edi
444cda:	83 ff ff             	cmp    $0xffffffff,%edi
444cdd:	74 07                	je     0x444ce6
444cdf:	57                   	push   %edi
444ce0:	ff 15 d4 b0 44 00    	call   *0x44b0d4
444ce6:	5f                   	pop    %edi
444ce7:	8b c6                	mov    %esi,%eax
444ce9:	5e                   	pop    %esi
444cea:	5d                   	pop    %ebp
444ceb:	c2 14 00             	ret    $0x14
444cee:	55                   	push   %ebp
444cef:	8b ec                	mov    %esp,%ebp
444cf1:	51                   	push   %ecx
444cf2:	53                   	push   %ebx
444cf3:	8b 5d 0c             	mov    0xc(%ebp),%ebx
444cf6:	56                   	push   %esi
444cf7:	33 f6                	xor    %esi,%esi
444cf9:	21 75 fc             	and    %esi,-0x4(%ebp)
444cfc:	57                   	push   %edi
444cfd:	33 ff                	xor    %edi,%edi
444cff:	6a 00                	push   $0x0
444d01:	8d 45 fc             	lea    -0x4(%ebp),%eax
444d04:	50                   	push   %eax
444d05:	8b 45 10             	mov    0x10(%ebp),%eax
444d08:	2b c7                	sub    %edi,%eax
444d0a:	50                   	push   %eax
444d0b:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
444d0e:	50                   	push   %eax
444d0f:	ff 75 08             	push   0x8(%ebp)
444d12:	ff 15 30 b1 44 00    	call   *0x44b130
444d18:	85 c0                	test   %eax,%eax
444d1a:	75 18                	jne    0x444d34
444d1c:	ff 15 e8 b0 44 00    	call   *0x44b0e8
444d22:	0f b7 f0             	movzwl %ax,%esi
444d25:	81 ce 00 00 07 80    	or     $0x80070000,%esi
444d2b:	85 c0                	test   %eax,%eax
444d2d:	0f 4e f0             	cmovle %eax,%esi
444d30:	85 f6                	test   %esi,%esi
444d32:	78 0a                	js     0x444d3e
444d34:	03 7d fc             	add    -0x4(%ebp),%edi
444d37:	3b 7d 10             	cmp    0x10(%ebp),%edi
444d3a:	72 c3                	jb     0x444cff
444d3c:	eb 10                	jmp    0x444d4e
444d3e:	56                   	push   %esi
444d3f:	68 e7 03 00 00       	push   $0x3e7
444d44:	68 8c 67 46 00       	push   $0x46678c
444d49:	e8 85 ea fb ff       	call   0x4037d3
444d4e:	5f                   	pop    %edi
444d4f:	8b c6                	mov    %esi,%eax
444d51:	5e                   	pop    %esi
444d52:	5b                   	pop    %ebx
444d53:	8b e5                	mov    %ebp,%esp
444d55:	5d                   	pop    %ebp
444d56:	c2 0c 00             	ret    $0xc
444d59:	55                   	push   %ebp
444d5a:	8b ec                	mov    %esp,%ebp
444d5c:	56                   	push   %esi
444d5d:	8b 75 0c             	mov    0xc(%ebp),%esi
444d60:	68 05 01 00 00       	push   $0x105
444d65:	56                   	push   %esi
444d66:	e8 73 d1 fb ff       	call   0x401ede
444d6b:	8b c8                	mov    %eax,%ecx
444d6d:	85 c9                	test   %ecx,%ecx
444d6f:	78 27                	js     0x444d98
444d71:	ff 75 08             	push   0x8(%ebp)
444d74:	ff 36                	push   (%esi)
444d76:	ff 15 54 a9 46 00    	call   *0x46a954
444d7c:	85 c0                	test   %eax,%eax
444d7e:	74 04                	je     0x444d84
444d80:	33 c9                	xor    %ecx,%ecx
444d82:	eb 14                	jmp    0x444d98
444d84:	ff 15 e8 b0 44 00    	call   *0x44b0e8
444d8a:	0f b7 c8             	movzwl %ax,%ecx
444d8d:	81 c9 00 00 07 80    	or     $0x80070000,%ecx
444d93:	85 c0                	test   %eax,%eax
444d95:	0f 4e c8             	cmovle %eax,%ecx
444d98:	8b c1                	mov    %ecx,%eax
444d9a:	5e                   	pop    %esi
444d9b:	5d                   	pop    %ebp
444d9c:	c2 08 00             	ret    $0x8
444d9f:	55                   	push   %ebp
444da0:	8b ec                	mov    %esp,%ebp
444da2:	51                   	push   %ecx
444da3:	51                   	push   %ecx
444da4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
444da8:	8d 45 fc             	lea    -0x4(%ebp),%eax
444dab:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
444daf:	53                   	push   %ebx
444db0:	56                   	push   %esi
444db1:	57                   	push   %edi
444db2:	50                   	push   %eax
444db3:	ff 75 0c             	push   0xc(%ebp)
444db6:	e8 9e ff ff ff       	call   0x444d59
444dbb:	8b f0                	mov    %eax,%esi
444dbd:	85 f6                	test   %esi,%esi
444dbf:	78 6a                	js     0x444e2b
444dc1:	8d 45 f8             	lea    -0x8(%ebp),%eax
444dc4:	50                   	push   %eax
444dc5:	ff 75 08             	push   0x8(%ebp)
444dc8:	e8 8c ff ff ff       	call   0x444d59
444dcd:	8b f0                	mov    %eax,%esi
444dcf:	85 f6                	test   %esi,%esi
444dd1:	78 58                	js     0x444e2b
444dd3:	8b 7d fc             	mov    -0x4(%ebp),%edi
444dd6:	85 ff                	test   %edi,%edi
444dd8:	74 4e                	je     0x444e28
444dda:	33 c0                	xor    %eax,%eax
444ddc:	66 39 07             	cmp    %ax,(%edi)
444ddf:	74 47                	je     0x444e28
444de1:	8b 5d f8             	mov    -0x8(%ebp),%ebx
444de4:	85 db                	test   %ebx,%ebx
444de6:	74 40                	je     0x444e28
444de8:	66 39 03             	cmp    %ax,(%ebx)
444deb:	74 3b                	je     0x444e28
444ded:	33 f6                	xor    %esi,%esi
444def:	46                   	inc    %esi
444df0:	66 39 07             	cmp    %ax,(%edi)
444df3:	74 36                	je     0x444e2b
444df5:	56                   	push   %esi
444df6:	57                   	push   %edi
444df7:	56                   	push   %esi
444df8:	53                   	push   %ebx
444df9:	56                   	push   %esi
444dfa:	50                   	push   %eax
444dfb:	ff 15 28 b1 44 00    	call   *0x44b128
444e01:	83 f8 02             	cmp    $0x2,%eax
444e04:	75 25                	jne    0x444e2b
444e06:	03 d8                	add    %eax,%ebx
444e08:	03 f8                	add    %eax,%edi
444e0a:	33 c0                	xor    %eax,%eax
444e0c:	66 39 03             	cmp    %ax,(%ebx)
444e0f:	75 df                	jne    0x444df0
444e11:	6a 5c                	push   $0x5c
444e13:	59                   	pop    %ecx
444e14:	66 3b 4b fe          	cmp    -0x2(%ebx),%cx
444e18:	75 05                	jne    0x444e1f
444e1a:	66 39 07             	cmp    %ax,(%edi)
444e1d:	75 05                	jne    0x444e24
444e1f:	66 3b 0f             	cmp    (%edi),%cx
444e22:	75 07                	jne    0x444e2b
444e24:	8b f0                	mov    %eax,%esi
444e26:	eb 03                	jmp    0x444e2b
444e28:	33 f6                	xor    %esi,%esi
444e2a:	46                   	inc    %esi
444e2b:	8b 7d fc             	mov    -0x4(%ebp),%edi
444e2e:	85 ff                	test   %edi,%edi
444e30:	74 06                	je     0x444e38
444e32:	57                   	push   %edi
444e33:	e8 b7 06 00 00       	call   0x4454ef
444e38:	8b 5d f8             	mov    -0x8(%ebp),%ebx
444e3b:	85 db                	test   %ebx,%ebx
444e3d:	74 06                	je     0x444e45
444e3f:	53                   	push   %ebx
444e40:	e8 aa 06 00 00       	call   0x4454ef
444e45:	5f                   	pop    %edi
444e46:	8b c6                	mov    %esi,%eax
444e48:	5e                   	pop    %esi
444e49:	5b                   	pop    %ebx
444e4a:	8b e5                	mov    %ebp,%esp
444e4c:	5d                   	pop    %ebp
444e4d:	c2 08 00             	ret    $0x8
444e50:	55                   	push   %ebp
444e51:	8b ec                	mov    %esp,%ebp
444e53:	51                   	push   %ecx
444e54:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
444e58:	56                   	push   %esi
444e59:	57                   	push   %edi
444e5a:	8b 7d 08             	mov    0x8(%ebp),%edi
444e5d:	8b 47 08             	mov    0x8(%edi),%eax
444e60:	83 f8 0c             	cmp    $0xc,%eax
444e63:	72 07                	jb     0x444e6c
444e65:	be 57 00 07 80       	mov    $0x80070057,%esi
444e6a:	eb 7d                	jmp    0x444ee9
444e6c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
444e6f:	51                   	push   %ecx
444e70:	ff 75 0c             	push   0xc(%ebp)
444e73:	ff 34 85 b8 67 46 00 	push   0x4667b8(,%eax,4)
444e7a:	57                   	push   %edi
444e7b:	e8 c5 02 00 00       	call   0x445145
444e80:	8b f0                	mov    %eax,%esi
444e82:	85 f6                	test   %esi,%esi
444e84:	78 63                	js     0x444ee9
444e86:	53                   	push   %ebx
444e87:	8b 5d fc             	mov    -0x4(%ebp),%ebx
444e8a:	8b 47 14             	mov    0x14(%edi),%eax
444e8d:	ff 34 98             	push   (%eax,%ebx,4)
444e90:	57                   	push   %edi
444e91:	e8 26 03 00 00       	call   0x4451bc
444e96:	83 3f 01             	cmpl   $0x1,(%edi)
444e99:	75 06                	jne    0x444ea1
444e9b:	8b 4f 10             	mov    0x10(%edi),%ecx