404c2f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404c35:	72 12                	jb     0x404c49
404c37:	8b 50 fc             	mov    -0x4(%eax),%edx
404c3a:	83 c1 23             	add    $0x23,%ecx
404c3d:	2b c2                	sub    %edx,%eax
404c3f:	83 c0 fc             	add    $0xfffffffc,%eax
404c42:	83 f8 1f             	cmp    $0x1f,%eax
404c45:	77 44                	ja     0x404c8b
404c47:	8b c2                	mov    %edx,%eax
404c49:	51                   	push   %ecx
404c4a:	50                   	push   %eax
404c4b:	e8 68 4f 01 00       	call   0x419bb8
404c50:	83 c4 08             	add    $0x8,%esp
404c53:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
404c5a:	33 c0                	xor    %eax,%eax
404c5c:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
404c63:	66 89 06             	mov    %ax,(%esi)
404c66:	0f 10 07             	movups (%edi),%xmm0
404c69:	0f 11 06             	movups %xmm0,(%esi)
404c6c:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
404c71:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
404c76:	89 47 10             	mov    %eax,0x10(%edi)
404c79:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
404c80:	66 89 07             	mov    %ax,(%edi)
404c83:	5f                   	pop    %edi
404c84:	8b c6                	mov    %esi,%eax
404c86:	5e                   	pop    %esi
404c87:	5d                   	pop    %ebp
404c88:	c2 04 00             	ret    $0x4
404c8b:	e8 03 ad 01 00       	call   0x41f993
404c90:	cc                   	int3
404c91:	cc                   	int3
404c92:	cc                   	int3
404c93:	cc                   	int3
404c94:	cc                   	int3
404c95:	cc                   	int3
404c96:	cc                   	int3
404c97:	cc                   	int3
404c98:	cc                   	int3
404c99:	cc                   	int3
404c9a:	cc                   	int3
404c9b:	cc                   	int3
404c9c:	cc                   	int3
404c9d:	cc                   	int3
404c9e:	cc                   	int3
404c9f:	cc                   	int3
404ca0:	56                   	push   %esi
404ca1:	8b f1                	mov    %ecx,%esi
404ca3:	8b 4e 14             	mov    0x14(%esi),%ecx
404ca6:	83 f9 10             	cmp    $0x10,%ecx
404ca9:	72 27                	jb     0x404cd2
404cab:	8b 06                	mov    (%esi),%eax
404cad:	41                   	inc    %ecx
404cae:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404cb4:	72 12                	jb     0x404cc8
404cb6:	8b 50 fc             	mov    -0x4(%eax),%edx
404cb9:	83 c1 23             	add    $0x23,%ecx
404cbc:	2b c2                	sub    %edx,%eax
404cbe:	83 c0 fc             	add    $0xfffffffc,%eax
404cc1:	83 f8 1f             	cmp    $0x1f,%eax
404cc4:	77 1f                	ja     0x404ce5
404cc6:	8b c2                	mov    %edx,%eax
404cc8:	51                   	push   %ecx
404cc9:	50                   	push   %eax
404cca:	e8 e9 4e 01 00       	call   0x419bb8
404ccf:	83 c4 08             	add    $0x8,%esp
404cd2:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
404cd9:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404ce0:	c6 06 00             	movb   $0x0,(%esi)
404ce3:	5e                   	pop    %esi
404ce4:	c3                   	ret
404ce5:	e8 a9 ac 01 00       	call   0x41f993
404cea:	cc                   	int3
404ceb:	cc                   	int3
404cec:	cc                   	int3
404ced:	cc                   	int3
404cee:	cc                   	int3
404cef:	cc                   	int3
404cf0:	55                   	push   %ebp
404cf1:	8b ec                	mov    %esp,%ebp
404cf3:	83 ec 18             	sub    $0x18,%esp
404cf6:	8b 45 08             	mov    0x8(%ebp),%eax
404cf9:	8b 55 10             	mov    0x10(%ebp),%edx
404cfc:	53                   	push   %ebx
404cfd:	8b d9                	mov    %ecx,%ebx
404cff:	89 45 fc             	mov    %eax,-0x4(%ebp)
404d02:	8b 4d 14             	mov    0x14(%ebp),%ecx
404d05:	56                   	push   %esi
404d06:	8b 75 0c             	mov    0xc(%ebp),%esi
404d09:	57                   	push   %edi
404d0a:	8b 7b 10             	mov    0x10(%ebx),%edi
404d0d:	89 55 f0             	mov    %edx,-0x10(%ebp)
404d10:	89 4d ec             	mov    %ecx,-0x14(%ebp)
404d13:	3b f8                	cmp    %eax,%edi
404d15:	0f 82 65 01 00 00    	jb     0x404e80
404d1b:	8b c7                	mov    %edi,%eax
404d1d:	2b 45 fc             	sub    -0x4(%ebp),%eax
404d20:	3b c6                	cmp    %esi,%eax
404d22:	0f 42 f0             	cmovb  %eax,%esi
404d25:	89 75 f4             	mov    %esi,-0xc(%ebp)
404d28:	3b f1                	cmp    %ecx,%esi
404d2a:	75 28                	jne    0x404d54
404d2c:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
404d30:	8b f3                	mov    %ebx,%esi
404d32:	72 02                	jb     0x404d36
404d34:	8b 33                	mov    (%ebx),%esi
404d36:	8b 45 fc             	mov    -0x4(%ebp),%eax
404d39:	03 c9                	add    %ecx,%ecx
404d3b:	51                   	push   %ecx
404d3c:	52                   	push   %edx
404d3d:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
404d40:	51                   	push   %ecx
404d41:	e8 3a 69 01 00       	call   0x41b680
404d46:	83 c4 0c             	add    $0xc,%esp
404d49:	8b c3                	mov    %ebx,%eax
404d4b:	5f                   	pop    %edi
404d4c:	5e                   	pop    %esi
404d4d:	5b                   	pop    %ebx
404d4e:	8b e5                	mov    %ebp,%esp
404d50:	5d                   	pop    %ebp
404d51:	c2 10 00             	ret    $0x10
404d54:	8b c7                	mov    %edi,%eax
404d56:	2b c6                	sub    %esi,%eax
404d58:	2b 45 fc             	sub    -0x4(%ebp),%eax
404d5b:	89 45 e8             	mov    %eax,-0x18(%ebp)
404d5e:	8b c1                	mov    %ecx,%eax
404d60:	2b c6                	sub    %esi,%eax
404d62:	89 45 f8             	mov    %eax,-0x8(%ebp)
404d65:	3b ce                	cmp    %esi,%ecx
404d67:	73 49                	jae    0x404db2
404d69:	03 c7                	add    %edi,%eax
404d6b:	8b f3                	mov    %ebx,%esi
404d6d:	89 43 10             	mov    %eax,0x10(%ebx)
404d70:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
404d74:	72 02                	jb     0x404d78
404d76:	8b 33                	mov    (%ebx),%esi
404d78:	8b 45 fc             	mov    -0x4(%ebp),%eax
404d7b:	8d 3c 46             	lea    (%esi,%eax,2),%edi
404d7e:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
404d81:	56                   	push   %esi
404d82:	52                   	push   %edx
404d83:	57                   	push   %edi
404d84:	e8 f7 68 01 00       	call   0x41b680
404d89:	8b 45 e8             	mov    -0x18(%ebp),%eax
404d8c:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
404d93:	50                   	push   %eax
404d94:	8b 45 f4             	mov    -0xc(%ebp),%eax
404d97:	8d 04 47             	lea    (%edi,%eax,2),%eax
404d9a:	50                   	push   %eax
404d9b:	8d 04 3e             	lea    (%esi,%edi,1),%eax
404d9e:	50                   	push   %eax
404d9f:	e8 dc 68 01 00       	call   0x41b680
404da4:	83 c4 18             	add    $0x18,%esp
404da7:	8b c3                	mov    %ebx,%eax
404da9:	5f                   	pop    %edi
404daa:	5e                   	pop    %esi
404dab:	5b                   	pop    %ebx
404dac:	8b e5                	mov    %ebp,%esp
404dae:	5d                   	pop    %ebp
404daf:	c2 10 00             	ret    $0x10
404db2:	8b 43 14             	mov    0x14(%ebx),%eax
404db5:	2b c7                	sub    %edi,%eax
404db7:	39 45 f8             	cmp    %eax,-0x8(%ebp)
404dba:	0f 87 a0 00 00 00    	ja     0x404e60
404dc0:	8b 45 f8             	mov    -0x8(%ebp),%eax
404dc3:	03 c7                	add    %edi,%eax
404dc5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
404dc8:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
404dcc:	89 43 10             	mov    %eax,0x10(%ebx)
404dcf:	72 05                	jb     0x404dd6
404dd1:	8b 03                	mov    (%ebx),%eax
404dd3:	89 45 f4             	mov    %eax,-0xc(%ebp)
404dd6:	8b 45 fc             	mov    -0x4(%ebp),%eax
404dd9:	8b 55 f4             	mov    -0xc(%ebp),%edx
404ddc:	8d 04 42             	lea    (%edx,%eax,2),%eax
404ddf:	8b 55 f0             	mov    -0x10(%ebp),%edx
404de2:	89 45 fc             	mov    %eax,-0x4(%ebp)
404de5:	8d 34 70             	lea    (%eax,%esi,2),%esi
404de8:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
404deb:	3b 45 fc             	cmp    -0x4(%ebp),%eax
404dee:	76 1a                	jbe    0x404e0a
404df0:	8b 45 f4             	mov    -0xc(%ebp),%eax
404df3:	8d 04 78             	lea    (%eax,%edi,2),%eax
404df6:	3b d0                	cmp    %eax,%edx
404df8:	77 10                	ja     0x404e0a
404dfa:	3b f2                	cmp    %edx,%esi
404dfc:	77 04                	ja     0x404e02
404dfe:	33 ff                	xor    %edi,%edi
404e00:	eb 0a                	jmp    0x404e0c
404e02:	8b fe                	mov    %esi,%edi
404e04:	2b fa                	sub    %edx,%edi
404e06:	d1 ff                	sar    $1,%edi
404e08:	eb 02                	jmp    0x404e0c
404e0a:	8b f9                	mov    %ecx,%edi
404e0c:	8b 45 e8             	mov    -0x18(%ebp),%eax
404e0f:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
404e16:	50                   	push   %eax
404e17:	8b 45 f8             	mov    -0x8(%ebp),%eax
404e1a:	56                   	push   %esi
404e1b:	8d 04 46             	lea    (%esi,%eax,2),%eax
404e1e:	50                   	push   %eax
404e1f:	e8 5c 68 01 00       	call   0x41b680
404e24:	8d 34 3f             	lea    (%edi,%edi,1),%esi
404e27:	56                   	push   %esi
404e28:	ff 75 f0             	push   -0x10(%ebp)
404e2b:	ff 75 fc             	push   -0x4(%ebp)
404e2e:	e8 4d 68 01 00       	call   0x41b680
404e33:	8b 45 ec             	mov    -0x14(%ebp),%eax
404e36:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404e39:	2b c7                	sub    %edi,%eax
404e3b:	03 c0                	add    %eax,%eax
404e3d:	50                   	push   %eax
404e3e:	8b 45 f8             	mov    -0x8(%ebp),%eax
404e41:	03 c7                	add    %edi,%eax
404e43:	8d 04 41             	lea    (%ecx,%eax,2),%eax
404e46:	50                   	push   %eax
404e47:	8b 45 fc             	mov    -0x4(%ebp),%eax
404e4a:	03 c6                	add    %esi,%eax
404e4c:	50                   	push   %eax
404e4d:	e8 2e 68 01 00       	call   0x41b680
404e52:	83 c4 24             	add    $0x24,%esp
404e55:	8b c3                	mov    %ebx,%eax
404e57:	5f                   	pop    %edi
404e58:	5e                   	pop    %esi
404e59:	5b                   	pop    %ebx
404e5a:	8b e5                	mov    %ebp,%esp
404e5c:	5d                   	pop    %ebp
404e5d:	c2 10 00             	ret    $0x10
404e60:	51                   	push   %ecx
404e61:	52                   	push   %edx
404e62:	56                   	push   %esi
404e63:	ff 75 fc             	push   -0x4(%ebp)
404e66:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
404e6a:	8b cb                	mov    %ebx,%ecx
404e6c:	ff 75 ec             	push   -0x14(%ebp)
404e6f:	ff 75 f8             	push   -0x8(%ebp)
404e72:	e8 09 03 00 00       	call   0x405180
404e77:	5f                   	pop    %edi
404e78:	5e                   	pop    %esi
404e79:	5b                   	pop    %ebx
404e7a:	8b e5                	mov    %ebp,%esp
404e7c:	5d                   	pop    %ebp
404e7d:	c2 10 00             	ret    $0x10
404e80:	e8 7b 01 00 00       	call   0x405000
404e85:	cc                   	int3
404e86:	cc                   	int3
404e87:	cc                   	int3
404e88:	cc                   	int3
404e89:	cc                   	int3
404e8a:	cc                   	int3
404e8b:	cc                   	int3
404e8c:	cc                   	int3
404e8d:	cc                   	int3
404e8e:	cc                   	int3
404e8f:	cc                   	int3
404e90:	55                   	push   %ebp
404e91:	8b ec                	mov    %esp,%ebp
404e93:	83 ec 0c             	sub    $0xc,%esp
404e96:	8b 45 08             	mov    0x8(%ebp),%eax
404e99:	53                   	push   %ebx
404e9a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404e9d:	56                   	push   %esi
404e9e:	8b f1                	mov    %ecx,%esi
404ea0:	89 45 f8             	mov    %eax,-0x8(%ebp)
404ea3:	57                   	push   %edi
404ea4:	8b 4e 14             	mov    0x14(%esi),%ecx
404ea7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
404eaa:	3b d9                	cmp    %ecx,%ebx
404eac:	77 26                	ja     0x404ed4
404eae:	8b fe                	mov    %esi,%edi
404eb0:	83 f9 10             	cmp    $0x10,%ecx
404eb3:	72 02                	jb     0x404eb7
404eb5:	8b 3e                	mov    (%esi),%edi
404eb7:	53                   	push   %ebx
404eb8:	50                   	push   %eax
404eb9:	57                   	push   %edi
404eba:	89 5e 10             	mov    %ebx,0x10(%esi)
404ebd:	e8 be 67 01 00       	call   0x41b680
404ec2:	83 c4 0c             	add    $0xc,%esp
404ec5:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
404ec9:	8b c6                	mov    %esi,%eax
404ecb:	5f                   	pop    %edi
404ecc:	5e                   	pop    %esi
404ecd:	5b                   	pop    %ebx
404ece:	8b e5                	mov    %ebp,%esp
404ed0:	5d                   	pop    %ebp
404ed1:	c2 08 00             	ret    $0x8
404ed4:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
404eda:	0f 87 d4 00 00 00    	ja     0x404fb4
404ee0:	8b fb                	mov    %ebx,%edi
404ee2:	83 cf 0f             	or     $0xf,%edi
404ee5:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
404eeb:	77 2f                	ja     0x404f1c
404eed:	8b d1                	mov    %ecx,%edx
404eef:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
404ef4:	d1 ea                	shr    $1,%edx
404ef6:	2b c2                	sub    %edx,%eax
404ef8:	3b c8                	cmp    %eax,%ecx
404efa:	77 20                	ja     0x404f1c
404efc:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
404eff:	3b f8                	cmp    %eax,%edi
404f01:	0f 42 f8             	cmovb  %eax,%edi
404f04:	8d 4f 01             	lea    0x1(%edi),%ecx
404f07:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f0d:	72 34                	jb     0x404f43
404f0f:	8d 41 23             	lea    0x23(%ecx),%eax
404f12:	3b c1                	cmp    %ecx,%eax
404f14:	0f 86 9f 00 00 00    	jbe    0x404fb9
404f1a:	eb 0d                	jmp    0x404f29
404f1c:	b8 00 00 00 80       	mov    $0x80000000,%eax
404f21:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
404f26:	83 c0 23             	add    $0x23,%eax
404f29:	50                   	push   %eax
404f2a:	e8 97 4c 01 00       	call   0x419bc6
404f2f:	8b c8                	mov    %eax,%ecx
404f31:	83 c4 04             	add    $0x4,%esp
404f34:	85 c9                	test   %ecx,%ecx
404f36:	74 77                	je     0x404faf
404f38:	8d 41 23             	lea    0x23(%ecx),%eax
404f3b:	83 e0 e0             	and    $0xffffffe0,%eax
404f3e:	89 48 fc             	mov    %ecx,-0x4(%eax)
404f41:	eb 11                	jmp    0x404f54
404f43:	85 c9                	test   %ecx,%ecx
404f45:	74 0b                	je     0x404f52
404f47:	51                   	push   %ecx
404f48:	e8 79 4c 01 00       	call   0x419bc6
404f4d:	83 c4 04             	add    $0x4,%esp
404f50:	eb 02                	jmp    0x404f54
404f52:	33 c0                	xor    %eax,%eax
404f54:	53                   	push   %ebx
404f55:	ff 75 f8             	push   -0x8(%ebp)
404f58:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f5b:	50                   	push   %eax
404f5c:	89 5e 10             	mov    %ebx,0x10(%esi)
404f5f:	89 7e 14             	mov    %edi,0x14(%esi)
404f62:	e8 19 67 01 00       	call   0x41b680
404f67:	8b 7d fc             	mov    -0x4(%ebp),%edi
404f6a:	83 c4 0c             	add    $0xc,%esp
404f6d:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f70:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
404f74:	83 f8 10             	cmp    $0x10,%eax
404f77:	72 29                	jb     0x404fa2
404f79:	8d 48 01             	lea    0x1(%eax),%ecx
404f7c:	8b 06                	mov    (%esi),%eax
404f7e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f84:	72 12                	jb     0x404f98
404f86:	8b 50 fc             	mov    -0x4(%eax),%edx
404f89:	83 c1 23             	add    $0x23,%ecx
404f8c:	2b c2                	sub    %edx,%eax
404f8e:	83 c0 fc             	add    $0xfffffffc,%eax