40d8e5:	83 ee 18             	sub    $0x18,%esi
40d8e8:	8b c6                	mov    %esi,%eax
40d8ea:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40d8ee:	72 02                	jb     0x40d8f2
40d8f0:	8b 06                	mov    (%esi),%eax
40d8f2:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
40d8f6:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d8f9:	ff 76 10             	push   0x10(%esi)
40d8fc:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
40d900:	8b 55 f0             	mov    -0x10(%ebp),%edx
40d903:	50                   	push   %eax
40d904:	e8 97 4b ff ff       	call   0x4024a0
40d909:	83 c4 08             	add    $0x8,%esp
40d90c:	85 c0                	test   %eax,%eax
40d90e:	79 74                	jns    0x40d984
40d910:	3b fe                	cmp    %esi,%edi
40d912:	74 69                	je     0x40d97d
40d914:	8b 4f 14             	mov    0x14(%edi),%ecx
40d917:	83 f9 08             	cmp    $0x8,%ecx
40d91a:	72 31                	jb     0x40d94d
40d91c:	8b 07                	mov    (%edi),%eax
40d91e:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d925:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d92b:	72 16                	jb     0x40d943
40d92d:	8b 50 fc             	mov    -0x4(%eax),%edx
40d930:	83 c1 23             	add    $0x23,%ecx
40d933:	2b c2                	sub    %edx,%eax
40d935:	83 c0 fc             	add    $0xfffffffc,%eax
40d938:	83 f8 1f             	cmp    $0x1f,%eax
40d93b:	0f 87 ee 00 00 00    	ja     0x40da2f
40d941:	8b c2                	mov    %edx,%eax
40d943:	51                   	push   %ecx
40d944:	50                   	push   %eax
40d945:	e8 c4 df 00 00       	call   0x41b90e
40d94a:	83 c4 08             	add    $0x8,%esp
40d94d:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40d954:	33 c0                	xor    %eax,%eax
40d956:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40d95d:	66 89 07             	mov    %ax,(%edi)
40d960:	0f 10 06             	movups (%esi),%xmm0
40d963:	0f 11 07             	movups %xmm0,(%edi)
40d966:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
40d96b:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40d970:	89 46 10             	mov    %eax,0x10(%esi)
40d973:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40d97a:	66 89 06             	mov    %ax,(%esi)
40d97d:	8b fe                	mov    %esi,%edi
40d97f:	e9 61 ff ff ff       	jmp    0x40d8e5
40d984:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d987:	3b f8                	cmp    %eax,%edi
40d989:	74 4b                	je     0x40d9d6
40d98b:	8b 4f 14             	mov    0x14(%edi),%ecx
40d98e:	83 f9 08             	cmp    $0x8,%ecx
40d991:	72 2d                	jb     0x40d9c0
40d993:	8b 07                	mov    (%edi),%eax
40d995:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d99c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d9a2:	72 12                	jb     0x40d9b6
40d9a4:	8b 50 fc             	mov    -0x4(%eax),%edx
40d9a7:	83 c1 23             	add    $0x23,%ecx
40d9aa:	2b c2                	sub    %edx,%eax
40d9ac:	83 c0 fc             	add    $0xfffffffc,%eax
40d9af:	83 f8 1f             	cmp    $0x1f,%eax
40d9b2:	77 7b                	ja     0x40da2f
40d9b4:	8b c2                	mov    %edx,%eax
40d9b6:	51                   	push   %ecx
40d9b7:	50                   	push   %eax
40d9b8:	e8 51 df 00 00       	call   0x41b90e
40d9bd:	83 c4 08             	add    $0x8,%esp
40d9c0:	0f 10 45 b4          	movups -0x4c(%ebp),%xmm0
40d9c4:	83 c3 18             	add    $0x18,%ebx
40d9c7:	0f 11 07             	movups %xmm0,(%edi)
40d9ca:	f3 0f 7e 45 c4       	movq   -0x3c(%ebp),%xmm0
40d9cf:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40d9d4:	eb 39                	jmp    0x40da0f
40d9d6:	83 c3 18             	add    $0x18,%ebx
40d9d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d9dc:	83 f8 08             	cmp    $0x8,%eax
40d9df:	72 2e                	jb     0x40da0f
40d9e1:	8b 55 d8             	mov    -0x28(%ebp),%edx
40d9e4:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
40d9eb:	8b c2                	mov    %edx,%eax
40d9ed:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d9f3:	72 10                	jb     0x40da05
40d9f5:	8b 50 fc             	mov    -0x4(%eax),%edx
40d9f8:	83 c1 23             	add    $0x23,%ecx
40d9fb:	2b c2                	sub    %edx,%eax
40d9fd:	83 c0 fc             	add    $0xfffffffc,%eax
40da00:	83 f8 1f             	cmp    $0x1f,%eax
40da03:	77 2a                	ja     0x40da2f
40da05:	51                   	push   %ecx
40da06:	52                   	push   %edx
40da07:	e8 02 df 00 00       	call   0x41b90e
40da0c:	83 c4 08             	add    $0x8,%esp
40da0f:	8b 45 cc             	mov    -0x34(%ebp),%eax
40da12:	3b d8                	cmp    %eax,%ebx
40da14:	74 08                	je     0x40da1e
40da16:	8b 55 dc             	mov    -0x24(%ebp),%edx
40da19:	e9 52 fd ff ff       	jmp    0x40d770
40da1e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40da21:	5f                   	pop    %edi
40da22:	5e                   	pop    %esi
40da23:	33 cd                	xor    %ebp,%ecx
40da25:	5b                   	pop    %ebx
40da26:	e8 a5 de 00 00       	call   0x41b8d0
40da2b:	8b e5                	mov    %ebp,%esp
40da2d:	5d                   	pop    %ebp
40da2e:	c3                   	ret
40da2f:	e8 4b 30 01 00       	call   0x420a7f
40da34:	cc                   	int3
40da35:	cc                   	int3
40da36:	cc                   	int3
40da37:	cc                   	int3
40da38:	cc                   	int3
40da39:	cc                   	int3
40da3a:	cc                   	int3
40da3b:	cc                   	int3
40da3c:	cc                   	int3
40da3d:	cc                   	int3
40da3e:	cc                   	int3
40da3f:	cc                   	int3
40da40:	55                   	push   %ebp
40da41:	8b ec                	mov    %esp,%ebp
40da43:	83 ec 18             	sub    $0x18,%esp
40da46:	8a 45 0c             	mov    0xc(%ebp),%al
40da49:	88 45 fc             	mov    %al,-0x4(%ebp)
40da4c:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40da51:	53                   	push   %ebx
40da52:	8b 5d 08             	mov    0x8(%ebp),%ebx
40da55:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40da58:	8b cb                	mov    %ebx,%ecx
40da5a:	56                   	push   %esi
40da5b:	8b f2                	mov    %edx,%esi
40da5d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40da60:	2b ce                	sub    %esi,%ecx
40da62:	89 75 f4             	mov    %esi,-0xc(%ebp)
40da65:	f7 e9                	imul   %ecx
40da67:	57                   	push   %edi
40da68:	c1 fa 02             	sar    $0x2,%edx
40da6b:	8d 7b e8             	lea    -0x18(%ebx),%edi
40da6e:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40da71:	8b c2                	mov    %edx,%eax
40da73:	c1 e8 1f             	shr    $0x1f,%eax
40da76:	8b cf                	mov    %edi,%ecx
40da78:	03 c2                	add    %edx,%eax
40da7a:	2b cb                	sub    %ebx,%ecx
40da7c:	d1 f8                	sar    $1,%eax
40da7e:	8d 04 40             	lea    (%eax,%eax,2),%eax
40da81:	8d 34 c6             	lea    (%esi,%eax,8),%esi
40da84:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40da89:	f7 e9                	imul   %ecx
40da8b:	c1 fa 02             	sar    $0x2,%edx
40da8e:	8b c2                	mov    %edx,%eax
40da90:	c1 e8 1f             	shr    $0x1f,%eax
40da93:	03 c2                	add    %edx,%eax
40da95:	83 f8 28             	cmp    $0x28,%eax
40da98:	7e 67                	jle    0x40db01
40da9a:	8b 7d fc             	mov    -0x4(%ebp),%edi
40da9d:	40                   	inc    %eax
40da9e:	c1 f8 03             	sar    $0x3,%eax
40daa1:	57                   	push   %edi
40daa2:	8d 1c 40             	lea    (%eax,%eax,2),%ebx
40daa5:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40daa8:	c1 e3 03             	shl    $0x3,%ebx
40daab:	8b 45 f4             	mov    -0xc(%ebp),%eax
40daae:	c1 e1 04             	shl    $0x4,%ecx
40dab1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40dab4:	8d 14 03             	lea    (%ebx,%eax,1),%edx
40dab7:	03 c1                	add    %ecx,%eax
40dab9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dabc:	50                   	push   %eax
40dabd:	89 55 ec             	mov    %edx,-0x14(%ebp)
40dac0:	e8 4b 07 00 00       	call   0x40e210
40dac5:	8d 04 33             	lea    (%ebx,%esi,1),%eax
40dac8:	8b ce                	mov    %esi,%ecx
40daca:	57                   	push   %edi
40dacb:	50                   	push   %eax
40dacc:	2b cb                	sub    %ebx,%ecx
40dace:	8b d6                	mov    %esi,%edx
40dad0:	e8 3b 07 00 00       	call   0x40e210
40dad5:	8b 45 f0             	mov    -0x10(%ebp),%eax
40dad8:	83 c0 e8             	add    $0xffffffe8,%eax
40dadb:	8b f8                	mov    %eax,%edi
40dadd:	2b fb                	sub    %ebx,%edi
40dadf:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40dae2:	53                   	push   %ebx
40dae3:	50                   	push   %eax
40dae4:	2b 45 f8             	sub    -0x8(%ebp),%eax
40dae7:	8b d7                	mov    %edi,%edx
40dae9:	8b c8                	mov    %eax,%ecx
40daeb:	e8 20 07 00 00       	call   0x40e210
40daf0:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40daf3:	8b d6                	mov    %esi,%edx
40daf5:	53                   	push   %ebx
40daf6:	57                   	push   %edi
40daf7:	e8 14 07 00 00       	call   0x40e210
40dafc:	83 c4 20             	add    $0x20,%esp
40daff:	eb 10                	jmp    0x40db11
40db01:	ff 75 fc             	push   -0x4(%ebp)
40db04:	8b d6                	mov    %esi,%edx
40db06:	8b cb                	mov    %ebx,%ecx
40db08:	57                   	push   %edi
40db09:	e8 02 07 00 00       	call   0x40e210
40db0e:	83 c4 08             	add    $0x8,%esp
40db11:	8d 5e 18             	lea    0x18(%esi),%ebx
40db14:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40db17:	39 75 f4             	cmp    %esi,-0xc(%ebp)
40db1a:	73 61                	jae    0x40db7d
40db1c:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40db1f:	8d 7e e8             	lea    -0x18(%esi),%edi
40db22:	83 7f 2c 08          	cmpl   $0x8,0x2c(%edi)
40db26:	8b c6                	mov    %esi,%eax
40db28:	72 02                	jb     0x40db2c
40db2a:	8b 06                	mov    (%esi),%eax
40db2c:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40db30:	8b cf                	mov    %edi,%ecx
40db32:	72 02                	jb     0x40db36
40db34:	8b 0f                	mov    (%edi),%ecx
40db36:	ff 77 28             	push   0x28(%edi)
40db39:	8b 57 10             	mov    0x10(%edi),%edx
40db3c:	50                   	push   %eax
40db3d:	e8 5e 49 ff ff       	call   0x4024a0
40db42:	83 c4 08             	add    $0x8,%esp
40db45:	85 c0                	test   %eax,%eax
40db47:	78 31                	js     0x40db7a
40db49:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40db4d:	8b c7                	mov    %edi,%eax
40db4f:	72 02                	jb     0x40db53
40db51:	8b 07                	mov    (%edi),%eax
40db53:	83 7f 2c 08          	cmpl   $0x8,0x2c(%edi)
40db57:	8b ce                	mov    %esi,%ecx
40db59:	72 02                	jb     0x40db5d
40db5b:	8b 0e                	mov    (%esi),%ecx
40db5d:	ff 77 10             	push   0x10(%edi)
40db60:	8b 57 28             	mov    0x28(%edi),%edx
40db63:	50                   	push   %eax
40db64:	e8 37 49 ff ff       	call   0x4024a0
40db69:	83 c4 08             	add    $0x8,%esp
40db6c:	85 c0                	test   %eax,%eax
40db6e:	78 0a                	js     0x40db7a
40db70:	83 ee 18             	sub    $0x18,%esi
40db73:	83 ef 18             	sub    $0x18,%edi
40db76:	3b de                	cmp    %esi,%ebx
40db78:	72 a8                	jb     0x40db22
40db7a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40db7d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40db80:	3b d9                	cmp    %ecx,%ebx
40db82:	73 61                	jae    0x40dbe5
40db84:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40db88:	8b c6                	mov    %esi,%eax
40db8a:	72 02                	jb     0x40db8e
40db8c:	8b 06                	mov    (%esi),%eax
40db8e:	8b 7b 14             	mov    0x14(%ebx),%edi
40db91:	8b cb                	mov    %ebx,%ecx
40db93:	83 ff 08             	cmp    $0x8,%edi
40db96:	72 02                	jb     0x40db9a
40db98:	8b 0b                	mov    (%ebx),%ecx
40db9a:	ff 76 10             	push   0x10(%esi)
40db9d:	8b 53 10             	mov    0x10(%ebx),%edx
40dba0:	50                   	push   %eax
40dba1:	e8 fa 48 ff ff       	call   0x4024a0
40dba6:	83 c4 08             	add    $0x8,%esp
40dba9:	85 c0                	test   %eax,%eax
40dbab:	78 32                	js     0x40dbdf
40dbad:	8b c3                	mov    %ebx,%eax
40dbaf:	83 ff 08             	cmp    $0x8,%edi
40dbb2:	72 02                	jb     0x40dbb6
40dbb4:	8b 03                	mov    (%ebx),%eax
40dbb6:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40dbba:	8b ce                	mov    %esi,%ecx
40dbbc:	72 02                	jb     0x40dbc0
40dbbe:	8b 0e                	mov    (%esi),%ecx
40dbc0:	ff 73 10             	push   0x10(%ebx)
40dbc3:	8b 56 10             	mov    0x10(%esi),%edx
40dbc6:	50                   	push   %eax
40dbc7:	e8 d4 48 ff ff       	call   0x4024a0
40dbcc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40dbcf:	83 c4 08             	add    $0x8,%esp
40dbd2:	85 c0                	test   %eax,%eax
40dbd4:	78 0c                	js     0x40dbe2
40dbd6:	83 c3 18             	add    $0x18,%ebx
40dbd9:	3b d9                	cmp    %ecx,%ebx
40dbdb:	72 a7                	jb     0x40db84
40dbdd:	eb 03                	jmp    0x40dbe2
40dbdf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40dbe2:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40dbe5:	8b c6                	mov    %esi,%eax
40dbe7:	8b fb                	mov    %ebx,%edi
40dbe9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dbec:	0f 1f 40 00          	nopl   0x0(%eax)
40dbf0:	3b f9                	cmp    %ecx,%edi
40dbf2:	0f 83 83 00 00 00    	jae    0x40dc7b
40dbf8:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40dbfc:	8b c7                	mov    %edi,%eax
40dbfe:	72 02                	jb     0x40dc02
40dc00:	8b 07                	mov    (%edi),%eax
40dc02:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40dc06:	8b ce                	mov    %esi,%ecx
40dc08:	72 02                	jb     0x40dc0c
40dc0a:	8b 0e                	mov    (%esi),%ecx
40dc0c:	ff 77 10             	push   0x10(%edi)
40dc0f:	8b 56 10             	mov    0x10(%esi),%edx
40dc12:	50                   	push   %eax
40dc13:	e8 88 48 ff ff       	call   0x4024a0
40dc18:	83 c4 08             	add    $0x8,%esp
40dc1b:	85 c0                	test   %eax,%eax
40dc1d:	78 4e                	js     0x40dc6d
40dc1f:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40dc23:	8b c6                	mov    %esi,%eax
40dc25:	72 02                	jb     0x40dc29
40dc27:	8b 06                	mov    (%esi),%eax
40dc29:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40dc2d:	8b cf                	mov    %edi,%ecx
40dc2f:	72 02                	jb     0x40dc33
40dc31:	8b 0f                	mov    (%edi),%ecx
40dc33:	ff 76 10             	push   0x10(%esi)
40dc36:	8b 57 10             	mov    0x10(%edi),%edx
40dc39:	50                   	push   %eax
40dc3a:	e8 61 48 ff ff       	call   0x4024a0
40dc3f:	83 c4 08             	add    $0x8,%esp
40dc42:	85 c0                	test   %eax,%eax
40dc44:	78 2f                	js     0x40dc75
40dc46:	3b df                	cmp    %edi,%ebx
40dc48:	74 20                	je     0x40dc6a
40dc4a:	0f 10 07             	movups (%edi),%xmm0
40dc4d:	0f 10 0b             	movups (%ebx),%xmm1
40dc50:	f3 0f 7e 53 10       	movq   0x10(%ebx),%xmm2
40dc55:	0f 11 03             	movups %xmm0,(%ebx)
40dc58:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
40dc5d:	66 0f d6 43 10       	movq   %xmm0,0x10(%ebx)
40dc62:	0f 11 0f             	movups %xmm1,(%edi)
40dc65:	66 0f d6 57 10       	movq   %xmm2,0x10(%edi)
40dc6a:	83 c3 18             	add    $0x18,%ebx
40dc6d:	83 c7 18             	add    $0x18,%edi
40dc70:	3b 7d f0             	cmp    -0x10(%ebp),%edi
40dc73:	72 83                	jb     0x40dbf8
40dc75:	8b 45 fc             	mov    -0x4(%ebp),%eax
40dc78:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40dc7b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dc7e:	3b c1                	cmp    %ecx,%eax
40dc80:	0f 86 a0 00 00 00    	jbe    0x40dd26
40dc86:	8d 58 e8             	lea    -0x18(%eax),%ebx
40dc89:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
40dc90:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40dc94:	8b c6                	mov    %esi,%eax
40dc96:	72 02                	jb     0x40dc9a
40dc98:	8b 06                	mov    (%esi),%eax
40dc9a:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
40dc9e:	8b cb                	mov    %ebx,%ecx
40dca0:	72 02                	jb     0x40dca4