469552:	57                   	push   %edi
469553:	ff 77 04             	push   0x4(%edi)
469556:	51                   	push   %ecx
469557:	e8 34 fe ff ff       	call   0x469390
46955c:	8b 4f 08             	mov    0x8(%edi),%ecx
46955f:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
469564:	2b 0f                	sub    (%edi),%ecx
469566:	83 c4 0c             	add    $0xc,%esp
469569:	f7 e9                	imul   %ecx
46956b:	c1 fa 02             	sar    $0x2,%edx
46956e:	8b c2                	mov    %edx,%eax
469570:	c1 e8 1f             	shr    $0x1f,%eax
469573:	03 c2                	add    %edx,%eax
469575:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
469578:	8b 07                	mov    (%edi),%eax
46957a:	c1 e1 03             	shl    $0x3,%ecx
46957d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
469583:	72 12                	jb     0x469597
469585:	8b 50 fc             	mov    -0x4(%eax),%edx
469588:	83 c1 23             	add    $0x23,%ecx
46958b:	2b c2                	sub    %edx,%eax
46958d:	83 c0 fc             	add    $0xfffffffc,%eax
469590:	83 f8 1f             	cmp    $0x1f,%eax
469593:	77 37                	ja     0x4695cc
469595:	8b c2                	mov    %edx,%eax
469597:	51                   	push   %ecx
469598:	50                   	push   %eax
469599:	e8 b7 7c 16 00       	call   0x5d1255
46959e:	83 c4 08             	add    $0x8,%esp
4695a1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4695a4:	40                   	inc    %eax
4695a5:	89 37                	mov    %esi,(%edi)
4695a7:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
4695aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4695ad:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
4695b0:	89 4f 04             	mov    %ecx,0x4(%edi)
4695b3:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
4695b6:	89 4f 08             	mov    %ecx,0x8(%edi)
4695b9:	5f                   	pop    %edi
4695ba:	5e                   	pop    %esi
4695bb:	5b                   	pop    %ebx
4695bc:	8b e5                	mov    %ebp,%esp
4695be:	5d                   	pop    %ebp
4695bf:	c2 08 00             	ret    $0x8
4695c2:	e8 29 e0 fd ff       	call   0x4475f0
4695c7:	e8 d4 31 ff ff       	call   0x45c7a0
4695cc:	e8 1f cc 16 00       	call   0x5d61f0
4695d1:	cc                   	int3
4695d2:	cc                   	int3
4695d3:	cc                   	int3
4695d4:	cc                   	int3
4695d5:	cc                   	int3
4695d6:	cc                   	int3
4695d7:	cc                   	int3
4695d8:	cc                   	int3
4695d9:	cc                   	int3
4695da:	cc                   	int3
4695db:	cc                   	int3
4695dc:	cc                   	int3
4695dd:	cc                   	int3
4695de:	cc                   	int3
4695df:	cc                   	int3
4695e0:	55                   	push   %ebp
4695e1:	8b ec                	mov    %esp,%ebp
4695e3:	8b 45 08             	mov    0x8(%ebp),%eax
4695e6:	8b 55 0c             	mov    0xc(%ebp),%edx
4695e9:	56                   	push   %esi
4695ea:	8b 75 10             	mov    0x10(%ebp),%esi
4695ed:	3b c2                	cmp    %edx,%eax
4695ef:	74 4f                	je     0x469640
4695f1:	8b ce                	mov    %esi,%ecx
4695f3:	2b c8                	sub    %eax,%ecx
4695f5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
4695fc:	00 00 00 00
469600:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
469606:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
46960d:	c7 44 01 14 00 00 00 	movl   $0x0,0x14(%ecx,%eax,1)
469614:	00
469615:	0f 10 00             	movups (%eax),%xmm0
469618:	0f 11 06             	movups %xmm0,(%esi)
46961b:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
469620:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
469625:	83 c6 18             	add    $0x18,%esi
469628:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
46962f:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
469636:	c6 00 00             	movb   $0x0,(%eax)
469639:	83 c0 18             	add    $0x18,%eax
46963c:	3b c2                	cmp    %edx,%eax
46963e:	75 c0                	jne    0x469600
469640:	ff 75 14             	push   0x14(%ebp)
469643:	56                   	push   %esi
469644:	56                   	push   %esi
469645:	e8 46 fd ff ff       	call   0x469390
46964a:	83 c4 0c             	add    $0xc,%esp
46964d:	8b c6                	mov    %esi,%eax
46964f:	5e                   	pop    %esi
469650:	5d                   	pop    %ebp
469651:	c3                   	ret
469652:	cc                   	int3
469653:	cc                   	int3
469654:	cc                   	int3
469655:	cc                   	int3
469656:	cc                   	int3
469657:	cc                   	int3
469658:	cc                   	int3
469659:	cc                   	int3
46965a:	cc                   	int3
46965b:	cc                   	int3
46965c:	cc                   	int3
46965d:	cc                   	int3
46965e:	cc                   	int3
46965f:	cc                   	int3
469660:	8b 09                	mov    (%ecx),%ecx
469662:	85 c9                	test   %ecx,%ecx
469664:	74 06                	je     0x46966c
469666:	8b 01                	mov    (%ecx),%eax
469668:	6a 01                	push   $0x1
46966a:	ff 10                	call   *(%eax)
46966c:	c3                   	ret
46966d:	cc                   	int3
46966e:	cc                   	int3
46966f:	cc                   	int3
469670:	56                   	push   %esi
469671:	8b f1                	mov    %ecx,%esi
469673:	8b 06                	mov    (%esi),%eax
469675:	85 c0                	test   %eax,%eax
469677:	74 40                	je     0x4696b9
469679:	8b 4e 08             	mov    0x8(%esi),%ecx
46967c:	2b c8                	sub    %eax,%ecx
46967e:	83 e1 fc             	and    $0xfffffffc,%ecx
469681:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
469687:	72 12                	jb     0x46969b
469689:	8b 50 fc             	mov    -0x4(%eax),%edx
46968c:	83 c1 23             	add    $0x23,%ecx
46968f:	2b c2                	sub    %edx,%eax
469691:	83 c0 fc             	add    $0xfffffffc,%eax
469694:	83 f8 1f             	cmp    $0x1f,%eax
469697:	77 22                	ja     0x4696bb
469699:	8b c2                	mov    %edx,%eax
46969b:	51                   	push   %ecx
46969c:	50                   	push   %eax
46969d:	e8 b3 7b 16 00       	call   0x5d1255
4696a2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4696a8:	83 c4 08             	add    $0x8,%esp
4696ab:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
4696b2:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4696b9:	5e                   	pop    %esi
4696ba:	c3                   	ret
4696bb:	e8 30 cb 16 00       	call   0x5d61f0
4696c0:	cc                   	int3
4696c1:	cc                   	int3
4696c2:	cc                   	int3
4696c3:	cc                   	int3
4696c4:	cc                   	int3
4696c5:	cc                   	int3
4696c6:	cc                   	int3
4696c7:	cc                   	int3
4696c8:	cc                   	int3
4696c9:	cc                   	int3
4696ca:	cc                   	int3
4696cb:	cc                   	int3
4696cc:	cc                   	int3
4696cd:	cc                   	int3
4696ce:	cc                   	int3
4696cf:	cc                   	int3
4696d0:	55                   	push   %ebp
4696d1:	8b ec                	mov    %esp,%ebp
4696d3:	6a ff                	push   $0xffffffff
4696d5:	68 cd 94 5f 00       	push   $0x5f94cd
4696da:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4696e0:	50                   	push   %eax
4696e1:	83 ec 10             	sub    $0x10,%esp
4696e4:	53                   	push   %ebx
4696e5:	56                   	push   %esi
4696e6:	57                   	push   %edi
4696e7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
4696ec:	33 c5                	xor    %ebp,%eax
4696ee:	50                   	push   %eax
4696ef:	8d 45 f4             	lea    -0xc(%ebp),%eax
4696f2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4696f8:	8b 7d 08             	mov    0x8(%ebp),%edi
4696fb:	57                   	push   %edi
4696fc:	e8 4f 09 00 00       	call   0x46a050
469701:	83 c4 04             	add    $0x4,%esp
469704:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
46970b:	8b d8                	mov    %eax,%ebx
46970d:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
469714:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
46971b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
46971e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
469725:	50                   	push   %eax
469726:	57                   	push   %edi
469727:	8b cb                	mov    %ebx,%ecx
469729:	e8 42 ca ff ff       	call   0x466170
46972e:	8b 45 e8             	mov    -0x18(%ebp),%eax
469731:	8b 75 e4             	mov    -0x1c(%ebp),%esi
469734:	89 45 f0             	mov    %eax,-0x10(%ebp)
469737:	3b f0                	cmp    %eax,%esi
469739:	74 17                	je     0x469752
46973b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
469740:	ff 36                	push   (%esi)
469742:	8b cb                	mov    %ebx,%ecx
469744:	57                   	push   %edi
469745:	e8 f6 a4 ff ff       	call   0x463c40
46974a:	83 c6 04             	add    $0x4,%esi
46974d:	3b 75 f0             	cmp    -0x10(%ebp),%esi
469750:	75 ee                	jne    0x469740
469752:	57                   	push   %edi
469753:	8b cb                	mov    %ebx,%ecx
469755:	e8 d6 d1 ff ff       	call   0x466930
46975a:	8b 08                	mov    (%eax),%ecx
46975c:	3b 48 04             	cmp    0x4(%eax),%ecx
46975f:	74 07                	je     0x469768
469761:	8b c8                	mov    %eax,%ecx
469763:	e8 18 71 ff ff       	call   0x460880
469768:	8b 55 e4             	mov    -0x1c(%ebp),%edx
46976b:	85 d2                	test   %edx,%edx
46976d:	74 2c                	je     0x46979b
46976f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
469772:	8b c2                	mov    %edx,%eax
469774:	2b ca                	sub    %edx,%ecx
469776:	83 e1 fc             	and    $0xfffffffc,%ecx
469779:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46977f:	72 10                	jb     0x469791
469781:	8b 52 fc             	mov    -0x4(%edx),%edx
469784:	83 c1 23             	add    $0x23,%ecx
469787:	2b c2                	sub    %edx,%eax
469789:	83 c0 fc             	add    $0xfffffffc,%eax
46978c:	83 f8 1f             	cmp    $0x1f,%eax
46978f:	77 1c                	ja     0x4697ad
469791:	51                   	push   %ecx
469792:	52                   	push   %edx
469793:	e8 bd 7a 16 00       	call   0x5d1255
469798:	83 c4 08             	add    $0x8,%esp
46979b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46979e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4697a5:	59                   	pop    %ecx
4697a6:	5f                   	pop    %edi
4697a7:	5e                   	pop    %esi
4697a8:	5b                   	pop    %ebx
4697a9:	8b e5                	mov    %ebp,%esp
4697ab:	5d                   	pop    %ebp
4697ac:	c3                   	ret
4697ad:	e8 3e ca 16 00       	call   0x5d61f0
4697b2:	cc                   	int3
4697b3:	cc                   	int3
4697b4:	cc                   	int3
4697b5:	cc                   	int3
4697b6:	cc                   	int3
4697b7:	cc                   	int3
4697b8:	cc                   	int3
4697b9:	cc                   	int3
4697ba:	cc                   	int3
4697bb:	cc                   	int3
4697bc:	cc                   	int3
4697bd:	cc                   	int3
4697be:	cc                   	int3
4697bf:	cc                   	int3
4697c0:	55                   	push   %ebp
4697c1:	8b ec                	mov    %esp,%ebp
4697c3:	6a ff                	push   $0xffffffff
4697c5:	68 fd 94 5f 00       	push   $0x5f94fd
4697ca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4697d0:	50                   	push   %eax
4697d1:	83 ec 0c             	sub    $0xc,%esp
4697d4:	53                   	push   %ebx
4697d5:	56                   	push   %esi
4697d6:	57                   	push   %edi
4697d7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
4697dc:	33 c5                	xor    %ebp,%eax
4697de:	50                   	push   %eax
4697df:	8d 45 f4             	lea    -0xc(%ebp),%eax
4697e2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4697e8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4697eb:	39 7d 08             	cmp    %edi,0x8(%ebp)
4697ee:	0f 84 c3 00 00 00    	je     0x4698b7
4697f4:	57                   	push   %edi
4697f5:	e8 56 08 00 00       	call   0x46a050
4697fa:	83 c4 04             	add    $0x4,%esp
4697fd:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
469804:	8b d8                	mov    %eax,%ebx
469806:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
46980d:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
469814:	8d 45 e8             	lea    -0x18(%ebp),%eax
469817:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46981e:	50                   	push   %eax
46981f:	57                   	push   %edi
469820:	8b cb                	mov    %ebx,%ecx
469822:	e8 49 c9 ff ff       	call   0x466170
469827:	8b 45 ec             	mov    -0x14(%ebp),%eax
46982a:	8b 75 e8             	mov    -0x18(%ebp),%esi
46982d:	89 45 0c             	mov    %eax,0xc(%ebp)
469830:	3b f0                	cmp    %eax,%esi
469832:	74 12                	je     0x469846
469834:	ff 36                	push   (%esi)
469836:	8b cb                	mov    %ebx,%ecx
469838:	57                   	push   %edi
469839:	e8 02 a4 ff ff       	call   0x463c40
46983e:	83 c6 04             	add    $0x4,%esi
469841:	3b 75 0c             	cmp    0xc(%ebp),%esi
469844:	75 ee                	jne    0x469834
469846:	57                   	push   %edi
469847:	8b cb                	mov    %ebx,%ecx
469849:	e8 e2 d0 ff ff       	call   0x466930
46984e:	8b 08                	mov    (%eax),%ecx
469850:	3b 48 04             	cmp    0x4(%eax),%ecx
469853:	74 07                	je     0x46985c
469855:	8b c8                	mov    %eax,%ecx
469857:	e8 24 70 ff ff       	call   0x460880
46985c:	8b 55 e8             	mov    -0x18(%ebp),%edx
46985f:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
469866:	85 d2                	test   %edx,%edx
469868:	74 41                	je     0x4698ab
46986a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46986d:	8b c2                	mov    %edx,%eax
46986f:	2b ca                	sub    %edx,%ecx
469871:	83 e1 fc             	and    $0xfffffffc,%ecx
469874:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46987a:	72 10                	jb     0x46988c
46987c:	8b 52 fc             	mov    -0x4(%edx),%edx
46987f:	83 c1 23             	add    $0x23,%ecx
469882:	2b c2                	sub    %edx,%eax
469884:	83 c0 fc             	add    $0xfffffffc,%eax
469887:	83 f8 1f             	cmp    $0x1f,%eax
46988a:	77 3d                	ja     0x4698c9
46988c:	51                   	push   %ecx
46988d:	52                   	push   %edx
46988e:	e8 c2 79 16 00       	call   0x5d1255
469893:	83 c4 08             	add    $0x8,%esp
469896:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
46989d:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
4698a4:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4698ab:	57                   	push   %edi
4698ac:	ff 75 08             	push   0x8(%ebp)
4698af:	e8 5c 0e 00 00       	call   0x46a710
4698b4:	83 c4 08             	add    $0x8,%esp
4698b7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4698ba:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4698c1:	59                   	pop    %ecx
4698c2:	5f                   	pop    %edi
4698c3:	5e                   	pop    %esi
4698c4:	5b                   	pop    %ebx
4698c5:	8b e5                	mov    %ebp,%esp
4698c7:	5d                   	pop    %ebp
4698c8:	c3                   	ret
4698c9:	e8 22 c9 16 00       	call   0x5d61f0
4698ce:	cc                   	int3
4698cf:	cc                   	int3
4698d0:	55                   	push   %ebp
4698d1:	8b ec                	mov    %esp,%ebp