40d4ad:	50                   	push   %eax
40d4ae:	56                   	push   %esi
40d4af:	7d 15                	jge    0x40d4c6
40d4b1:	8b 54 24 20          	mov    0x20(%esp),%edx
40d4b5:	8b cf                	mov    %edi,%ecx
40d4b7:	e8 64 ff ff ff       	call   0x40d420
40d4bc:	8b 7c 24 24          	mov    0x24(%esp),%edi
40d4c0:	8b 54 24 18          	mov    0x18(%esp),%edx
40d4c4:	eb 15                	jmp    0x40d4db
40d4c6:	8b 54 24 18          	mov    0x18(%esp),%edx
40d4ca:	8b 4c 24 24          	mov    0x24(%esp),%ecx
40d4ce:	e8 4d ff ff ff       	call   0x40d420
40d4d3:	8b 54 24 20          	mov    0x20(%esp),%edx
40d4d7:	89 54 24 18          	mov    %edx,0x18(%esp)
40d4db:	8b c2                	mov    %edx,%eax
40d4dd:	83 c4 08             	add    $0x8,%esp
40d4e0:	2b c7                	sub    %edi,%eax
40d4e2:	3d 18 03 00 00       	cmp    $0x318,%eax
40d4e7:	8b 45 0c             	mov    0xc(%ebp),%eax
40d4ea:	0f 8d 61 ff ff ff    	jge    0x40d451
40d4f0:	50                   	push   %eax
40d4f1:	8b cf                	mov    %edi,%ecx
40d4f3:	e8 48 02 00 00       	call   0x40d740
40d4f8:	83 c4 04             	add    $0x4,%esp
40d4fb:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
40d4ff:	5f                   	pop    %edi
40d500:	5e                   	pop    %esi
40d501:	33 cc                	xor    %esp,%ecx
40d503:	e8 c8 e3 00 00       	call   0x41b8d0
40d508:	8b e5                	mov    %ebp,%esp
40d50a:	5d                   	pop    %ebp
40d50b:	c3                   	ret
40d50c:	8b ca                	mov    %edx,%ecx
40d50e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d513:	2b cf                	sub    %edi,%ecx
40d515:	f7 e9                	imul   %ecx
40d517:	c1 fa 02             	sar    $0x2,%edx
40d51a:	8b c2                	mov    %edx,%eax
40d51c:	c1 e8 1f             	shr    $0x1f,%eax
40d51f:	03 c2                	add    %edx,%eax
40d521:	8b c8                	mov    %eax,%ecx
40d523:	89 44 24 14          	mov    %eax,0x14(%esp)
40d527:	d1 f9                	sar    $1,%ecx
40d529:	85 c9                	test   %ecx,%ecx
40d52b:	0f 8e 99 00 00 00    	jle    0x40d5ca
40d531:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
40d534:	8d 34 c7             	lea    (%edi,%eax,8),%esi
40d537:	0f 10 46 e8          	movups -0x18(%esi),%xmm0
40d53b:	8d 76 e8             	lea    -0x18(%esi),%esi
40d53e:	33 c0                	xor    %eax,%eax
40d540:	ff 75 0c             	push   0xc(%ebp)
40d543:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
40d548:	49                   	dec    %ecx
40d549:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
40d54e:	8b d1                	mov    %ecx,%edx
40d550:	66 89 06             	mov    %ax,(%esi)
40d553:	8d 44 24 24          	lea    0x24(%esp),%eax
40d557:	50                   	push   %eax
40d558:	ff 74 24 1c          	push   0x1c(%esp)
40d55c:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40d560:	8b cf                	mov    %edi,%ecx
40d562:	66 0f d6 44 24 3c    	movq   %xmm0,0x3c(%esp)
40d568:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40d56f:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40d576:	e8 65 09 00 00       	call   0x40dee0
40d57b:	8b 4c 24 40          	mov    0x40(%esp),%ecx
40d57f:	83 c4 0c             	add    $0xc,%esp
40d582:	83 f9 08             	cmp    $0x8,%ecx
40d585:	72 33                	jb     0x40d5ba
40d587:	8b 54 24 20          	mov    0x20(%esp),%edx
40d58b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d592:	8b c2                	mov    %edx,%eax
40d594:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d59a:	72 14                	jb     0x40d5b0
40d59c:	8b 50 fc             	mov    -0x4(%eax),%edx
40d59f:	83 c1 23             	add    $0x23,%ecx
40d5a2:	2b c2                	sub    %edx,%eax
40d5a4:	83 c0 fc             	add    $0xfffffffc,%eax
40d5a7:	83 f8 1f             	cmp    $0x1f,%eax
40d5aa:	0f 87 0d 01 00 00    	ja     0x40d6bd
40d5b0:	51                   	push   %ecx
40d5b1:	52                   	push   %edx
40d5b2:	e8 57 e3 00 00       	call   0x41b90e
40d5b7:	83 c4 08             	add    $0x8,%esp
40d5ba:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40d5be:	85 c9                	test   %ecx,%ecx
40d5c0:	0f 8f 71 ff ff ff    	jg     0x40d537
40d5c6:	8b 44 24 14          	mov    0x14(%esp),%eax
40d5ca:	83 f8 02             	cmp    $0x2,%eax
40d5cd:	0f 8c 28 ff ff ff    	jl     0x40d4fb
40d5d3:	8b 74 24 10          	mov    0x10(%esp),%esi
40d5d7:	b8 ec ff ff ff       	mov    $0xffffffec,%eax
40d5dc:	2b c7                	sub    %edi,%eax
40d5de:	83 c6 e8             	add    $0xffffffe8,%esi
40d5e1:	89 44 24 18          	mov    %eax,0x18(%esp)
40d5e5:	b8 18 00 00 00       	mov    $0x18,%eax
40d5ea:	2b c7                	sub    %edi,%eax
40d5ec:	89 44 24 14          	mov    %eax,0x14(%esp)
40d5f0:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
40d5f3:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d5f8:	f7 e9                	imul   %ecx
40d5fa:	c1 fa 02             	sar    $0x2,%edx
40d5fd:	8b c2                	mov    %edx,%eax
40d5ff:	c1 e8 1f             	shr    $0x1f,%eax
40d602:	03 c2                	add    %edx,%eax
40d604:	83 f8 02             	cmp    $0x2,%eax
40d607:	0f 8c 95 00 00 00    	jl     0x40d6a2
40d60d:	0f 10 06             	movups (%esi),%xmm0
40d610:	33 c0                	xor    %eax,%eax
40d612:	8b ce                	mov    %esi,%ecx
40d614:	57                   	push   %edi
40d615:	0f 11 44 24 24       	movups %xmm0,0x24(%esp)
40d61a:	f3 0f 7e 46 10       	movq   0x10(%esi),%xmm0
40d61f:	66 0f d6 44 24 34    	movq   %xmm0,0x34(%esp)
40d625:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40d62c:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
40d633:	66 89 06             	mov    %ax,(%esi)
40d636:	e8 b5 be ff ff       	call   0x4094f0
40d63b:	ff 75 0c             	push   0xc(%ebp)
40d63e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40d642:	8d 44 24 24          	lea    0x24(%esp),%eax
40d646:	50                   	push   %eax
40d647:	83 c1 14             	add    $0x14,%ecx
40d64a:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d64f:	03 ce                	add    %esi,%ecx
40d651:	f7 e9                	imul   %ecx
40d653:	8b cf                	mov    %edi,%ecx
40d655:	c1 fa 02             	sar    $0x2,%edx
40d658:	8b c2                	mov    %edx,%eax
40d65a:	c1 e8 1f             	shr    $0x1f,%eax
40d65d:	03 c2                	add    %edx,%eax
40d65f:	33 d2                	xor    %edx,%edx
40d661:	50                   	push   %eax
40d662:	e8 79 08 00 00       	call   0x40dee0
40d667:	8b 4c 24 40          	mov    0x40(%esp),%ecx
40d66b:	83 c4 0c             	add    $0xc,%esp
40d66e:	83 f9 08             	cmp    $0x8,%ecx
40d671:	72 2f                	jb     0x40d6a2
40d673:	8b 54 24 20          	mov    0x20(%esp),%edx
40d677:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40d67e:	8b c2                	mov    %edx,%eax
40d680:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d686:	72 10                	jb     0x40d698
40d688:	8b 50 fc             	mov    -0x4(%eax),%edx
40d68b:	83 c1 23             	add    $0x23,%ecx
40d68e:	2b c2                	sub    %edx,%eax
40d690:	83 c0 fc             	add    $0xfffffffc,%eax
40d693:	83 f8 1f             	cmp    $0x1f,%eax
40d696:	77 25                	ja     0x40d6bd
40d698:	51                   	push   %ecx
40d699:	52                   	push   %edx
40d69a:	e8 6f e2 00 00       	call   0x41b90e
40d69f:	83 c4 08             	add    $0x8,%esp
40d6a2:	8b 44 24 14          	mov    0x14(%esp),%eax
40d6a6:	83 ee 18             	sub    $0x18,%esi
40d6a9:	03 c6                	add    %esi,%eax
40d6ab:	83 f8 30             	cmp    $0x30,%eax
40d6ae:	0f 8c 47 fe ff ff    	jl     0x40d4fb
40d6b4:	8b 44 24 14          	mov    0x14(%esp),%eax
40d6b8:	e9 33 ff ff ff       	jmp    0x40d5f0
40d6bd:	e8 bd 33 01 00       	call   0x420a7f
40d6c2:	cc                   	int3
40d6c3:	cc                   	int3
40d6c4:	cc                   	int3
40d6c5:	cc                   	int3
40d6c6:	cc                   	int3
40d6c7:	cc                   	int3
40d6c8:	cc                   	int3
40d6c9:	cc                   	int3
40d6ca:	cc                   	int3
40d6cb:	cc                   	int3
40d6cc:	cc                   	int3
40d6cd:	cc                   	int3
40d6ce:	cc                   	int3
40d6cf:	cc                   	int3
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