454b31:	8b ec                	mov    %esp,%ebp
454b33:	83 ec 0c             	sub    $0xc,%esp
454b36:	8b 45 08             	mov    0x8(%ebp),%eax
454b39:	53                   	push   %ebx
454b3a:	56                   	push   %esi
454b3b:	57                   	push   %edi
454b3c:	8b f9                	mov    %ecx,%edi
454b3e:	89 45 f8             	mov    %eax,-0x8(%ebp)
454b41:	8b 17                	mov    (%edi),%edx
454b43:	2b c2                	sub    %edx,%eax
454b45:	c1 f8 03             	sar    $0x3,%eax
454b48:	89 45 fc             	mov    %eax,-0x4(%ebp)
454b4b:	8b 47 04             	mov    0x4(%edi),%eax
454b4e:	2b c2                	sub    %edx,%eax
454b50:	c1 f8 03             	sar    $0x3,%eax
454b53:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
454b58:	0f 84 25 01 00 00    	je     0x454c83
454b5e:	8b 4f 08             	mov    0x8(%edi),%ecx
454b61:	8d 58 01             	lea    0x1(%eax),%ebx
454b64:	2b ca                	sub    %edx,%ecx
454b66:	89 5d f4             	mov    %ebx,-0xc(%ebp)
454b69:	c1 f9 03             	sar    $0x3,%ecx
454b6c:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
454b71:	8b d1                	mov    %ecx,%edx
454b73:	d1 ea                	shr    $1,%edx
454b75:	2b c2                	sub    %edx,%eax
454b77:	3b c8                	cmp    %eax,%ecx
454b79:	76 04                	jbe    0x454b7f
454b7b:	8b c3                	mov    %ebx,%eax
454b7d:	eb 08                	jmp    0x454b87
454b7f:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
454b82:	3b c3                	cmp    %ebx,%eax
454b84:	0f 42 c3             	cmovb  %ebx,%eax
454b87:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
454b8c:	0f 87 ec 00 00 00    	ja     0x454c7e
454b92:	8d 1c c5 00 00 00 00 	lea    0x0(,%eax,8),%ebx
454b99:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
454b9f:	72 27                	jb     0x454bc8
454ba1:	8d 43 23             	lea    0x23(%ebx),%eax
454ba4:	3b c3                	cmp    %ebx,%eax
454ba6:	0f 86 d2 00 00 00    	jbe    0x454c7e
454bac:	50                   	push   %eax
454bad:	e8 90 c4 18 00       	call   0x5e1042
454bb2:	83 c4 04             	add    $0x4,%esp
454bb5:	85 c0                	test   %eax,%eax
454bb7:	0f 84 cb 00 00 00    	je     0x454c88
454bbd:	8d 70 23             	lea    0x23(%eax),%esi
454bc0:	83 e6 e0             	and    $0xffffffe0,%esi
454bc3:	89 46 fc             	mov    %eax,-0x4(%esi)
454bc6:	eb 13                	jmp    0x454bdb
454bc8:	85 db                	test   %ebx,%ebx
454bca:	74 0d                	je     0x454bd9
454bcc:	53                   	push   %ebx
454bcd:	e8 70 c4 18 00       	call   0x5e1042
454bd2:	83 c4 04             	add    $0x4,%esp
454bd5:	8b f0                	mov    %eax,%esi
454bd7:	eb 02                	jmp    0x454bdb
454bd9:	33 f6                	xor    %esi,%esi
454bdb:	8b 45 fc             	mov    -0x4(%ebp),%eax
454bde:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454be1:	8d 14 c6             	lea    (%esi,%eax,8),%edx
454be4:	89 55 fc             	mov    %edx,-0x4(%ebp)
454be7:	8b 01                	mov    (%ecx),%eax
454be9:	89 02                	mov    %eax,(%edx)
454beb:	8b 41 04             	mov    0x4(%ecx),%eax
454bee:	89 42 04             	mov    %eax,0x4(%edx)
454bf1:	8b 47 04             	mov    0x4(%edi),%eax
454bf4:	8b 55 f8             	mov    -0x8(%ebp),%edx
454bf7:	8b 0f                	mov    (%edi),%ecx
454bf9:	3b d0                	cmp    %eax,%edx
454bfb:	75 0f                	jne    0x454c0c
454bfd:	2b c1                	sub    %ecx,%eax
454bff:	50                   	push   %eax
454c00:	51                   	push   %ecx
454c01:	56                   	push   %esi
454c02:	e8 79 e8 18 00       	call   0x5e3480
454c07:	83 c4 0c             	add    $0xc,%esp
454c0a:	eb 23                	jmp    0x454c2f
454c0c:	2b d1                	sub    %ecx,%edx
454c0e:	52                   	push   %edx
454c0f:	51                   	push   %ecx
454c10:	56                   	push   %esi
454c11:	e8 6a e8 18 00       	call   0x5e3480
454c16:	8b 47 04             	mov    0x4(%edi),%eax
454c19:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454c1c:	2b c1                	sub    %ecx,%eax
454c1e:	50                   	push   %eax
454c1f:	8b 45 fc             	mov    -0x4(%ebp),%eax
454c22:	51                   	push   %ecx
454c23:	83 c0 08             	add    $0x8,%eax
454c26:	50                   	push   %eax
454c27:	e8 54 e8 18 00       	call   0x5e3480
454c2c:	83 c4 18             	add    $0x18,%esp
454c2f:	8b 07                	mov    (%edi),%eax
454c31:	85 c0                	test   %eax,%eax
454c33:	74 2c                	je     0x454c61
454c35:	8b 4f 08             	mov    0x8(%edi),%ecx
454c38:	2b c8                	sub    %eax,%ecx
454c3a:	83 e1 f8             	and    $0xfffffff8,%ecx
454c3d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
454c43:	72 12                	jb     0x454c57
454c45:	8b 50 fc             	mov    -0x4(%eax),%edx
454c48:	83 c1 23             	add    $0x23,%ecx
454c4b:	2b c2                	sub    %edx,%eax
454c4d:	83 c0 fc             	add    $0xfffffffc,%eax
454c50:	83 f8 1f             	cmp    $0x1f,%eax
454c53:	77 33                	ja     0x454c88
454c55:	8b c2                	mov    %edx,%eax
454c57:	51                   	push   %ecx
454c58:	50                   	push   %eax
454c59:	e8 14 c4 18 00       	call   0x5e1072
454c5e:	83 c4 08             	add    $0x8,%esp
454c61:	8b 45 f4             	mov    -0xc(%ebp),%eax
454c64:	89 37                	mov    %esi,(%edi)
454c66:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
454c69:	8b 45 fc             	mov    -0x4(%ebp),%eax
454c6c:	89 4f 04             	mov    %ecx,0x4(%edi)
454c6f:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
454c72:	89 4f 08             	mov    %ecx,0x8(%edi)
454c75:	5f                   	pop    %edi
454c76:	5e                   	pop    %esi
454c77:	5b                   	pop    %ebx
454c78:	8b e5                	mov    %ebp,%esp
454c7a:	5d                   	pop    %ebp
454c7b:	c2 08 00             	ret    $0x8
454c7e:	e8 5d 02 ff ff       	call   0x444ee0
454c83:	e8 b8 03 ff ff       	call   0x445040
454c88:	e8 a2 82 19 00       	call   0x5ecf2f
454c8d:	cc                   	int3
454c8e:	cc                   	int3
454c8f:	cc                   	int3
454c90:	55                   	push   %ebp
454c91:	8b ec                	mov    %esp,%ebp
454c93:	83 ec 14             	sub    $0x14,%esp
454c96:	8b 45 08             	mov    0x8(%ebp),%eax
454c99:	53                   	push   %ebx
454c9a:	56                   	push   %esi
454c9b:	57                   	push   %edi
454c9c:	8b f9                	mov    %ecx,%edi
454c9e:	89 45 f8             	mov    %eax,-0x8(%ebp)
454ca1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454ca4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
454ca7:	8b c8                	mov    %eax,%ecx
454ca9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454cae:	8b 37                	mov    (%edi),%esi
454cb0:	2b ce                	sub    %esi,%ecx
454cb2:	f7 e9                	imul   %ecx
454cb4:	8b 4f 04             	mov    0x4(%edi),%ecx
454cb7:	c1 fa 02             	sar    $0x2,%edx
454cba:	2b ce                	sub    %esi,%ecx
454cbc:	8b c2                	mov    %edx,%eax
454cbe:	c1 e8 1f             	shr    $0x1f,%eax
454cc1:	03 c2                	add    %edx,%eax
454cc3:	89 45 fc             	mov    %eax,-0x4(%ebp)
454cc6:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454ccb:	f7 e9                	imul   %ecx
454ccd:	c1 fa 02             	sar    $0x2,%edx
454cd0:	8b da                	mov    %edx,%ebx
454cd2:	c1 eb 1f             	shr    $0x1f,%ebx
454cd5:	03 da                	add    %edx,%ebx
454cd7:	81 fb aa aa aa 0a    	cmp    $0xaaaaaaa,%ebx
454cdd:	0f 84 7b 01 00 00    	je     0x454e5e
454ce3:	8b 4f 08             	mov    0x8(%edi),%ecx
454ce6:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454ceb:	2b ce                	sub    %esi,%ecx
454ced:	43                   	inc    %ebx
454cee:	f7 e9                	imul   %ecx
454cf0:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
454cf5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
454cf8:	c1 fa 02             	sar    $0x2,%edx
454cfb:	8b ca                	mov    %edx,%ecx
454cfd:	c1 e9 1f             	shr    $0x1f,%ecx
454d00:	03 ca                	add    %edx,%ecx
454d02:	8b d1                	mov    %ecx,%edx
454d04:	d1 ea                	shr    $1,%edx
454d06:	2b c2                	sub    %edx,%eax
454d08:	3b c8                	cmp    %eax,%ecx
454d0a:	76 04                	jbe    0x454d10
454d0c:	8b c3                	mov    %ebx,%eax
454d0e:	eb 08                	jmp    0x454d18
454d10:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
454d13:	3b c3                	cmp    %ebx,%eax
454d15:	0f 42 c3             	cmovb  %ebx,%eax
454d18:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
454d1d:	0f 87 36 01 00 00    	ja     0x454e59
454d23:	8d 04 40             	lea    (%eax,%eax,2),%eax
454d26:	c1 e0 03             	shl    $0x3,%eax
454d29:	89 45 ec             	mov    %eax,-0x14(%ebp)
454d2c:	3d 00 10 00 00       	cmp    $0x1000,%eax
454d31:	72 27                	jb     0x454d5a
454d33:	8d 48 23             	lea    0x23(%eax),%ecx
454d36:	3b c8                	cmp    %eax,%ecx
454d38:	0f 86 1b 01 00 00    	jbe    0x454e59
454d3e:	51                   	push   %ecx
454d3f:	e8 fe c2 18 00       	call   0x5e1042
454d44:	83 c4 04             	add    $0x4,%esp
454d47:	85 c0                	test   %eax,%eax
454d49:	0f 84 14 01 00 00    	je     0x454e63
454d4f:	8d 70 23             	lea    0x23(%eax),%esi
454d52:	83 e6 e0             	and    $0xffffffe0,%esi
454d55:	89 46 fc             	mov    %eax,-0x4(%esi)
454d58:	eb 13                	jmp    0x454d6d
454d5a:	85 c0                	test   %eax,%eax
454d5c:	74 0d                	je     0x454d6b
454d5e:	50                   	push   %eax
454d5f:	e8 de c2 18 00       	call   0x5e1042
454d64:	83 c4 04             	add    $0x4,%esp
454d67:	8b f0                	mov    %eax,%esi
454d69:	eb 02                	jmp    0x454d6d
454d6b:	33 f6                	xor    %esi,%esi
454d6d:	8b 45 fc             	mov    -0x4(%ebp),%eax
454d70:	8b 4d f4             	mov    -0xc(%ebp),%ecx
454d73:	8d 04 40             	lea    (%eax,%eax,2),%eax
454d76:	c7 44 c6 10 00 00 00 	movl   $0x0,0x10(%esi,%eax,8)
454d7d:	00
454d7e:	8d 04 c6             	lea    (%esi,%eax,8),%eax
454d81:	c7 40 14 00 00 00 00 	movl   $0x0,0x14(%eax)
454d88:	0f 10 01             	movups (%ecx),%xmm0
454d8b:	89 45 fc             	mov    %eax,-0x4(%ebp)
454d8e:	0f 11 00             	movups %xmm0,(%eax)
454d91:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
454d96:	66 0f d6 40 10       	movq   %xmm0,0x10(%eax)
454d9b:	33 c0                	xor    %eax,%eax
454d9d:	66 89 01             	mov    %ax,(%ecx)
454da0:	8b 45 f8             	mov    -0x8(%ebp),%eax
454da3:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
454daa:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
454db1:	8b 57 04             	mov    0x4(%edi),%edx
454db4:	8b 0f                	mov    (%edi),%ecx
454db6:	3b c2                	cmp    %edx,%eax
454db8:	75 04                	jne    0x454dbe
454dba:	8b c6                	mov    %esi,%eax
454dbc:	eb 18                	jmp    0x454dd6
454dbe:	57                   	push   %edi
454dbf:	56                   	push   %esi
454dc0:	50                   	push   %eax
454dc1:	51                   	push   %ecx
454dc2:	e8 19 4e ff ff       	call   0x449be0
454dc7:	8b 45 fc             	mov    -0x4(%ebp),%eax
454dca:	83 c4 10             	add    $0x10,%esp
454dcd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454dd0:	83 c0 18             	add    $0x18,%eax
454dd3:	8b 57 04             	mov    0x4(%edi),%edx
454dd6:	57                   	push   %edi
454dd7:	50                   	push   %eax
454dd8:	52                   	push   %edx
454dd9:	51                   	push   %ecx
454dda:	e8 01 4e ff ff       	call   0x449be0
454ddf:	8b 0f                	mov    (%edi),%ecx
454de1:	83 c4 10             	add    $0x10,%esp
454de4:	85 c9                	test   %ecx,%ecx
454de6:	74 52                	je     0x454e3a
454de8:	57                   	push   %edi
454de9:	ff 77 04             	push   0x4(%edi)
454dec:	51                   	push   %ecx
454ded:	e8 1e 3d ff ff       	call   0x448b10
454df2:	8b 4f 08             	mov    0x8(%edi),%ecx
454df5:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454dfa:	8b 1f                	mov    (%edi),%ebx
454dfc:	83 c4 0c             	add    $0xc,%esp
454dff:	2b cb                	sub    %ebx,%ecx
454e01:	f7 e9                	imul   %ecx
454e03:	c1 fa 02             	sar    $0x2,%edx
454e06:	8b c2                	mov    %edx,%eax
454e08:	c1 e8 1f             	shr    $0x1f,%eax
454e0b:	03 c2                	add    %edx,%eax
454e0d:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
454e10:	c1 e1 03             	shl    $0x3,%ecx
454e13:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
454e19:	72 12                	jb     0x454e2d
454e1b:	8b 53 fc             	mov    -0x4(%ebx),%edx
454e1e:	83 c1 23             	add    $0x23,%ecx
454e21:	2b da                	sub    %edx,%ebx
454e23:	8d 43 fc             	lea    -0x4(%ebx),%eax
454e26:	83 f8 1f             	cmp    $0x1f,%eax
454e29:	77 38                	ja     0x454e63
454e2b:	8b da                	mov    %edx,%ebx
454e2d:	51                   	push   %ecx
454e2e:	53                   	push   %ebx
454e2f:	e8 3e c2 18 00       	call   0x5e1072
454e34:	8b 5d f0             	mov    -0x10(%ebp),%ebx
454e37:	83 c4 08             	add    $0x8,%esp
454e3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
454e3d:	8d 0c 5b             	lea    (%ebx,%ebx,2),%ecx
454e40:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
454e43:	89 37                	mov    %esi,(%edi)
454e45:	89 4f 04             	mov    %ecx,0x4(%edi)
454e48:	8b 4d ec             	mov    -0x14(%ebp),%ecx
454e4b:	03 ce                	add    %esi,%ecx
454e4d:	89 4f 08             	mov    %ecx,0x8(%edi)
454e50:	5f                   	pop    %edi
454e51:	5e                   	pop    %esi
454e52:	5b                   	pop    %ebx
454e53:	8b e5                	mov    %ebp,%esp
454e55:	5d                   	pop    %ebp
454e56:	c2 08 00             	ret    $0x8
454e59:	e8 82 00 ff ff       	call   0x444ee0
454e5e:	e8 dd 01 ff ff       	call   0x445040
454e63:	e8 c7 80 19 00       	call   0x5ecf2f
454e68:	cc                   	int3
454e69:	cc                   	int3
454e6a:	cc                   	int3
454e6b:	cc                   	int3
454e6c:	cc                   	int3
454e6d:	cc                   	int3
454e6e:	cc                   	int3
454e6f:	cc                   	int3
454e70:	55                   	push   %ebp
454e71:	8b ec                	mov    %esp,%ebp
454e73:	83 ec 14             	sub    $0x14,%esp
454e76:	8b 45 08             	mov    0x8(%ebp),%eax
454e79:	8b d0                	mov    %eax,%edx
454e7b:	89 45 f4             	mov    %eax,-0xc(%ebp)
454e7e:	b8 79 78 78 78       	mov    $0x78787879,%eax
454e83:	53                   	push   %ebx
454e84:	8b d9                	mov    %ecx,%ebx
454e86:	56                   	push   %esi
454e87:	57                   	push   %edi
454e88:	89 5d f8             	mov    %ebx,-0x8(%ebp)
454e8b:	8b 3b                	mov    (%ebx),%edi
454e8d:	2b d7                	sub    %edi,%edx
454e8f:	8b 4b 04             	mov    0x4(%ebx),%ecx
454e92:	f7 ea                	imul   %edx
454e94:	2b cf                	sub    %edi,%ecx
454e96:	c1 fa 05             	sar    $0x5,%edx
454e99:	8b c2                	mov    %edx,%eax
454e9b:	c1 e8 1f             	shr    $0x1f,%eax
454e9e:	03 c2                	add    %edx,%eax
454ea0:	89 45 fc             	mov    %eax,-0x4(%ebp)
454ea3:	b8 79 78 78 78       	mov    $0x78787879,%eax
454ea8:	f7 e9                	imul   %ecx
454eaa:	c1 fa 05             	sar    $0x5,%edx
454ead:	8b c2                	mov    %edx,%eax
454eaf:	c1 e8 1f             	shr    $0x1f,%eax
454eb2:	03 c2                	add    %edx,%eax
454eb4:	89 45 ec             	mov    %eax,-0x14(%ebp)
454eb7:	3d c3 c3 c3 03       	cmp    $0x3c3c3c3,%eax
454ebc:	0f 84 aa 01 00 00    	je     0x45506c
454ec2:	8b 4b 08             	mov    0x8(%ebx),%ecx
454ec5:	8d 70 01             	lea    0x1(%eax),%esi
454ec8:	2b cf                	sub    %edi,%ecx
454eca:	b8 79 78 78 78       	mov    $0x78787879,%eax
454ecf:	f7 e9                	imul   %ecx
454ed1:	b8 c3 c3 c3 03       	mov    $0x3c3c3c3,%eax
454ed6:	c1 fa 05             	sar    $0x5,%edx
454ed9:	8b ca                	mov    %edx,%ecx
454edb:	c1 e9 1f             	shr    $0x1f,%ecx
454ede:	03 ca                	add    %edx,%ecx
454ee0:	8b d1                	mov    %ecx,%edx
454ee2:	d1 ea                	shr    $1,%edx