40d6d0:	55                   	push   %ebp
40d6d1:	8b ec                	mov    %esp,%ebp
40d6d3:	56                   	push   %esi
40d6d4:	8b 75 08             	mov    0x8(%ebp),%esi
40d6d7:	3b ca                	cmp    %edx,%ecx
40d6d9:	74 48                	je     0x40d723
40d6db:	8b c6                	mov    %esi,%eax
40d6dd:	2b c1                	sub    %ecx,%eax
40d6df:	57                   	push   %edi
40d6e0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40d6e6:	33 ff                	xor    %edi,%edi
40d6e8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40d6ef:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
40d6f6:	00
40d6f7:	0f 10 01             	movups (%ecx),%xmm0
40d6fa:	0f 11 06             	movups %xmm0,(%esi)
40d6fd:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
40d702:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40d707:	83 c6 18             	add    $0x18,%esi
40d70a:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
40d711:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
40d718:	66 89 39             	mov    %di,(%ecx)
40d71b:	83 c1 18             	add    $0x18,%ecx
40d71e:	3b ca                	cmp    %edx,%ecx
40d720:	75 be                	jne    0x40d6e0
40d722:	5f                   	pop    %edi
40d723:	51                   	push   %ecx
40d724:	8b d6                	mov    %esi,%edx
40d726:	8b ce                	mov    %esi,%ecx
40d728:	e8 93 eb ff ff       	call   0x40c2c0
40d72d:	83 c4 04             	add    $0x4,%esp
40d730:	8b c6                	mov    %esi,%eax
40d732:	5e                   	pop    %esi
40d733:	5d                   	pop    %ebp
40d734:	c3                   	ret
40d735:	cc                   	int3
40d736:	cc                   	int3
40d737:	cc                   	int3
40d738:	cc                   	int3
40d739:	cc                   	int3
40d73a:	cc                   	int3
40d73b:	cc                   	int3
40d73c:	cc                   	int3
40d73d:	cc                   	int3
40d73e:	cc                   	int3
40d73f:	cc                   	int3
40d740:	55                   	push   %ebp
40d741:	8b ec                	mov    %esp,%ebp
40d743:	83 ec 50             	sub    $0x50,%esp
40d746:	a1 14 40 45 00       	mov    0x454014,%eax
40d74b:	33 c5                	xor    %ebp,%eax
40d74d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d750:	8b c2                	mov    %edx,%eax
40d752:	8b d1                	mov    %ecx,%edx
40d754:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d757:	89 55 dc             	mov    %edx,-0x24(%ebp)
40d75a:	53                   	push   %ebx
40d75b:	56                   	push   %esi
40d75c:	57                   	push   %edi
40d75d:	3b d0                	cmp    %eax,%edx
40d75f:	0f 84 b9 02 00 00    	je     0x40da1e
40d765:	8d 5a 18             	lea    0x18(%edx),%ebx
40d768:	3b d8                	cmp    %eax,%ebx
40d76a:	0f 84 ae 02 00 00    	je     0x40da1e
40d770:	0f 10 03             	movups (%ebx),%xmm0
40d773:	8d 73 14             	lea    0x14(%ebx),%esi
40d776:	33 c0                	xor    %eax,%eax
40d778:	f3 0f 7e 4b 10       	movq   0x10(%ebx),%xmm1
40d77d:	8b fb                	mov    %ebx,%edi
40d77f:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
40d786:	c7 06 07 00 00 00    	movl   $0x7,(%esi)
40d78c:	66 89 03             	mov    %ax,(%ebx)
40d78f:	8b 42 14             	mov    0x14(%edx),%eax
40d792:	66 0f d6 4d c4       	movq   %xmm1,-0x3c(%ebp)
40d797:	66 0f d6 4d f0       	movq   %xmm1,-0x10(%ebp)
40d79c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40d79f:	0f 11 45 b4          	movups %xmm0,-0x4c(%ebp)
40d7a3:	0f 11 45 e0          	movups %xmm0,-0x20(%ebp)
40d7a7:	83 f8 08             	cmp    $0x8,%eax
40d7aa:	72 04                	jb     0x40d7b0
40d7ac:	8b 02                	mov    (%edx),%eax
40d7ae:	eb 02                	jmp    0x40d7b2
40d7b0:	8b c2                	mov    %edx,%eax
40d7b2:	ff 72 10             	push   0x10(%edx)
40d7b5:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
40d7b9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d7bc:	8b 55 f0             	mov    -0x10(%ebp),%edx
40d7bf:	66 0f 7e 45 d8       	movd   %xmm0,-0x28(%ebp)
40d7c4:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
40d7c8:	50                   	push   %eax
40d7c9:	e8 d2 4c ff ff       	call   0x4024a0
40d7ce:	83 c4 08             	add    $0x8,%esp
40d7d1:	85 c0                	test   %eax,%eax
40d7d3:	0f 89 0a 01 00 00    	jns    0x40d8e3
40d7d9:	8b 55 dc             	mov    -0x24(%ebp),%edx
40d7dc:	8d 4b 18             	lea    0x18(%ebx),%ecx
40d7df:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40d7e2:	8b f9                	mov    %ecx,%edi
40d7e4:	3b d3                	cmp    %ebx,%edx
40d7e6:	0f 84 94 00 00 00    	je     0x40d880
40d7ec:	0f 1f 40 00          	nopl   0x0(%eax)
40d7f0:	8b c6                	mov    %esi,%eax
40d7f2:	83 ef 18             	sub    $0x18,%edi
40d7f5:	83 ee 18             	sub    $0x18,%esi
40d7f8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40d7fb:	8d 5e ec             	lea    -0x14(%esi),%ebx
40d7fe:	3b fb                	cmp    %ebx,%edi
40d800:	74 6e                	je     0x40d870
40d802:	8b 08                	mov    (%eax),%ecx
40d804:	83 f9 08             	cmp    $0x8,%ecx
40d807:	72 37                	jb     0x40d840
40d809:	8b 07                	mov    (%edi),%eax
40d80b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d812:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d818:	72 16                	jb     0x40d830
40d81a:	8b 50 fc             	mov    -0x4(%eax),%edx
40d81d:	83 c1 23             	add    $0x23,%ecx
40d820:	2b c2                	sub    %edx,%eax
40d822:	83 c0 fc             	add    $0xfffffffc,%eax
40d825:	83 f8 1f             	cmp    $0x1f,%eax
40d828:	0f 87 01 02 00 00    	ja     0x40da2f
40d82e:	8b c2                	mov    %edx,%eax
40d830:	51                   	push   %ecx
40d831:	50                   	push   %eax
40d832:	e8 d7 e0 00 00       	call   0x41b90e
40d837:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40d83a:	83 c4 08             	add    $0x8,%esp
40d83d:	8b 55 dc             	mov    -0x24(%ebp),%edx
40d840:	c7 00 07 00 00 00    	movl   $0x7,(%eax)
40d846:	33 c0                	xor    %eax,%eax
40d848:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40d84f:	66 89 07             	mov    %ax,(%edi)
40d852:	0f 10 46 ec          	movups -0x14(%esi),%xmm0
40d856:	0f 11 07             	movups %xmm0,(%edi)
40d859:	f3 0f 7e 46 fc       	movq   -0x4(%esi),%xmm0
40d85e:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40d863:	89 46 fc             	mov    %eax,-0x4(%esi)
40d866:	c7 06 07 00 00 00    	movl   $0x7,(%esi)
40d86c:	66 89 46 ec          	mov    %ax,-0x14(%esi)
40d870:	3b d3                	cmp    %ebx,%edx
40d872:	0f 85 78 ff ff ff    	jne    0x40d7f0
40d878:	8b 42 14             	mov    0x14(%edx),%eax
40d87b:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d87e:	eb 03                	jmp    0x40d883
40d880:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40d883:	8d 75 e0             	lea    -0x20(%ebp),%esi
40d886:	3b d6                	cmp    %esi,%edx
40d888:	74 52                	je     0x40d8dc
40d88a:	83 f8 08             	cmp    $0x8,%eax
40d88d:	72 34                	jb     0x40d8c3
40d88f:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
40d896:	8b 02                	mov    (%edx),%eax
40d898:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d89e:	72 16                	jb     0x40d8b6
40d8a0:	8b 50 fc             	mov    -0x4(%eax),%edx
40d8a3:	83 c1 23             	add    $0x23,%ecx
40d8a6:	2b c2                	sub    %edx,%eax
40d8a8:	83 c0 fc             	add    $0xfffffffc,%eax
40d8ab:	83 f8 1f             	cmp    $0x1f,%eax
40d8ae:	0f 87 7b 01 00 00    	ja     0x40da2f
40d8b4:	8b c2                	mov    %edx,%eax
40d8b6:	51                   	push   %ecx
40d8b7:	50                   	push   %eax
40d8b8:	e8 51 e0 00 00       	call   0x41b90e
40d8bd:	8b 55 dc             	mov    -0x24(%ebp),%edx
40d8c0:	83 c4 08             	add    $0x8,%esp
40d8c3:	0f 10 45 b4          	movups -0x4c(%ebp),%xmm0
40d8c7:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40d8ca:	0f 11 02             	movups %xmm0,(%edx)
40d8cd:	f3 0f 7e 45 c4       	movq   -0x3c(%ebp),%xmm0
40d8d2:	66 0f d6 42 10       	movq   %xmm0,0x10(%edx)
40d8d7:	e9 33 01 00 00       	jmp    0x40da0f
40d8dc:	8b d9                	mov    %ecx,%ebx
40d8de:	e9 f6 00 00 00       	jmp    0x40d9d9
40d8e3:	8b f3                	mov    %ebx,%esi
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