405480:	8b f8                	mov    %eax,%edi
405482:	eb 02                	jmp    0x405486
405484:	33 ff                	xor    %edi,%edi
405486:	8b 45 f8             	mov    -0x8(%ebp),%eax
405489:	33 c9                	xor    %ecx,%ecx
40548b:	8d 04 40             	lea    (%eax,%eax,2),%eax
40548e:	8d 1c c7             	lea    (%edi,%eax,8),%ebx
405491:	8b 45 0c             	mov    0xc(%ebp),%eax
405494:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
40549a:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
4054a1:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)
4054a8:	0f 10 00             	movups (%eax),%xmm0
4054ab:	0f 11 03             	movups %xmm0,(%ebx)
4054ae:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
4054b3:	66 0f d6 43 10       	movq   %xmm0,0x10(%ebx)
4054b8:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
4054bf:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
4054c6:	66 89 08             	mov    %cx,(%eax)
4054c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4054cc:	8b 50 04             	mov    0x4(%eax),%edx
4054cf:	8b 08                	mov    (%eax),%ecx
4054d1:	8b 45 08             	mov    0x8(%ebp),%eax
4054d4:	51                   	push   %ecx
4054d5:	57                   	push   %edi
4054d6:	3b c2                	cmp    %edx,%eax
4054d8:	74 17                	je     0x4054f1
4054da:	8b d0                	mov    %eax,%edx
4054dc:	e8 9f 02 00 00       	call   0x405780
4054e1:	8b 55 fc             	mov    -0x4(%ebp),%edx
4054e4:	8d 43 18             	lea    0x18(%ebx),%eax
4054e7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4054ea:	83 c4 04             	add    $0x4,%esp
4054ed:	8b 52 04             	mov    0x4(%edx),%edx
4054f0:	50                   	push   %eax
4054f1:	e8 8a 02 00 00       	call   0x405780
4054f6:	8b 45 f4             	mov    -0xc(%ebp),%eax
4054f9:	83 c4 08             	add    $0x8,%esp
4054fc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4054ff:	40                   	inc    %eax
405500:	56                   	push   %esi
405501:	50                   	push   %eax
405502:	57                   	push   %edi
405503:	e8 e8 01 00 00       	call   0x4056f0
405508:	5f                   	pop    %edi
405509:	5e                   	pop    %esi
40550a:	8b c3                	mov    %ebx,%eax
40550c:	5b                   	pop    %ebx
40550d:	8b e5                	mov    %ebp,%esp
40550f:	5d                   	pop    %ebp
405510:	c2 08 00             	ret    $0x8
405513:	e8 a8 bd ff ff       	call   0x4012c0
405518:	e8 c3 01 00 00       	call   0x4056e0
40551d:	e8 71 a4 01 00       	call   0x41f993
405522:	cc                   	int3
405523:	cc                   	int3
405524:	cc                   	int3
405525:	cc                   	int3
405526:	cc                   	int3
405527:	cc                   	int3
405528:	cc                   	int3
405529:	cc                   	int3
40552a:	cc                   	int3
40552b:	cc                   	int3
40552c:	cc                   	int3
40552d:	cc                   	int3
40552e:	cc                   	int3
40552f:	cc                   	int3
405530:	55                   	push   %ebp
405531:	8b ec                	mov    %esp,%ebp
405533:	6a ff                	push   $0xffffffff
405535:	68 d0 bb 43 00       	push   $0x43bbd0
40553a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
405540:	50                   	push   %eax
405541:	83 ec 18             	sub    $0x18,%esp
405544:	53                   	push   %ebx
405545:	56                   	push   %esi
405546:	57                   	push   %edi
405547:	a1 14 50 45 00       	mov    0x455014,%eax
40554c:	33 c5                	xor    %ebp,%eax
40554e:	50                   	push   %eax
40554f:	8d 45 f4             	lea    -0xc(%ebp),%eax
405552:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405558:	89 65 f0             	mov    %esp,-0x10(%ebp)
40555b:	8b d9                	mov    %ecx,%ebx
40555d:	8b 3b                	mov    (%ebx),%edi
40555f:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
405564:	8b 55 08             	mov    0x8(%ebp),%edx
405567:	8b 4b 04             	mov    0x4(%ebx),%ecx
40556a:	2b d7                	sub    %edi,%edx
40556c:	f7 ea                	imul   %edx
40556e:	2b cf                	sub    %edi,%ecx
405570:	c1 fa 02             	sar    $0x2,%edx
405573:	8b c2                	mov    %edx,%eax
405575:	c1 e8 1f             	shr    $0x1f,%eax
405578:	03 c2                	add    %edx,%eax
40557a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40557d:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
405582:	f7 e9                	imul   %ecx
405584:	c1 fa 02             	sar    $0x2,%edx
405587:	8b c2                	mov    %edx,%eax
405589:	c1 e8 1f             	shr    $0x1f,%eax
40558c:	03 c2                	add    %edx,%eax
40558e:	89 45 e0             	mov    %eax,-0x20(%ebp)
405591:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
405596:	0f 84 08 01 00 00    	je     0x4056a4
40559c:	8b 4b 08             	mov    0x8(%ebx),%ecx
40559f:	8d 70 01             	lea    0x1(%eax),%esi
4055a2:	2b cf                	sub    %edi,%ecx
4055a4:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4055a9:	f7 e9                	imul   %ecx
4055ab:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
4055b0:	c1 fa 02             	sar    $0x2,%edx
4055b3:	8b ca                	mov    %edx,%ecx
4055b5:	c1 e9 1f             	shr    $0x1f,%ecx
4055b8:	03 ca                	add    %edx,%ecx
4055ba:	8b d1                	mov    %ecx,%edx
4055bc:	d1 ea                	shr    $1,%edx
4055be:	2b c2                	sub    %edx,%eax
4055c0:	3b c8                	cmp    %eax,%ecx
4055c2:	0f 87 d7 00 00 00    	ja     0x40569f
4055c8:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4055cb:	8b fe                	mov    %esi,%edi
4055cd:	3b c6                	cmp    %esi,%eax
4055cf:	0f 43 f8             	cmovae %eax,%edi
4055d2:	81 ff aa aa aa 0a    	cmp    $0xaaaaaaa,%edi
4055d8:	0f 87 c1 00 00 00    	ja     0x40569f
4055de:	8d 04 7f             	lea    (%edi,%edi,2),%eax
4055e1:	89 7d ec             	mov    %edi,-0x14(%ebp)
4055e4:	c1 e0 03             	shl    $0x3,%eax
4055e7:	3d 00 10 00 00       	cmp    $0x1000,%eax
4055ec:	72 27                	jb     0x405615
4055ee:	8d 48 23             	lea    0x23(%eax),%ecx
4055f1:	3b c8                	cmp    %eax,%ecx
4055f3:	0f 86 a6 00 00 00    	jbe    0x40569f
4055f9:	51                   	push   %ecx
4055fa:	e8 c7 45 01 00       	call   0x419bc6
4055ff:	83 c4 04             	add    $0x4,%esp
405602:	85 c0                	test   %eax,%eax
405604:	0f 84 9f 00 00 00    	je     0x4056a9
40560a:	8d 70 23             	lea    0x23(%eax),%esi
40560d:	83 e6 e0             	and    $0xffffffe0,%esi
405610:	89 46 fc             	mov    %eax,-0x4(%esi)
405613:	eb 16                	jmp    0x40562b
405615:	85 c0                	test   %eax,%eax
405617:	74 0d                	je     0x405626
405619:	50                   	push   %eax
40561a:	e8 a7 45 01 00       	call   0x419bc6
40561f:	83 c4 04             	add    $0x4,%esp
405622:	8b f0                	mov    %eax,%esi
405624:	eb 02                	jmp    0x405628
405626:	33 f6                	xor    %esi,%esi
405628:	89 7d ec             	mov    %edi,-0x14(%ebp)
40562b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40562e:	ff 75 0c             	push   0xc(%ebp)
405631:	89 75 e8             	mov    %esi,-0x18(%ebp)
405634:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40563b:	8d 04 40             	lea    (%eax,%eax,2),%eax
40563e:	8d 04 c6             	lea    (%esi,%eax,8),%eax
405641:	8d 48 18             	lea    0x18(%eax),%ecx
405644:	89 45 dc             	mov    %eax,-0x24(%ebp)
405647:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40564a:	8b c8                	mov    %eax,%ecx
40564c:	e8 6f dc ff ff       	call   0x4032c0
405651:	8b 0b                	mov    (%ebx),%ecx
405653:	8b 53 04             	mov    0x4(%ebx),%edx
405656:	8b 45 08             	mov    0x8(%ebp),%eax
405659:	51                   	push   %ecx
40565a:	56                   	push   %esi
40565b:	3b c2                	cmp    %edx,%eax
40565d:	74 13                	je     0x405672
40565f:	8b d0                	mov    %eax,%edx
405661:	e8 1a 01 00 00       	call   0x405780
405666:	8b 53 04             	mov    0x4(%ebx),%edx
405669:	83 c4 04             	add    $0x4,%esp
40566c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40566f:	ff 75 e4             	push   -0x1c(%ebp)
405672:	e8 09 01 00 00       	call   0x405780
405677:	8b 45 e0             	mov    -0x20(%ebp),%eax
40567a:	83 c4 08             	add    $0x8,%esp
40567d:	40                   	inc    %eax
40567e:	8b cb                	mov    %ebx,%ecx
405680:	57                   	push   %edi
405681:	50                   	push   %eax
405682:	56                   	push   %esi
405683:	e8 68 00 00 00       	call   0x4056f0
405688:	8b 45 dc             	mov    -0x24(%ebp),%eax
40568b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40568e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
405695:	59                   	pop    %ecx
405696:	5f                   	pop    %edi
405697:	5e                   	pop    %esi
405698:	5b                   	pop    %ebx
405699:	8b e5                	mov    %ebp,%esp
40569b:	5d                   	pop    %ebp
40569c:	c2 08 00             	ret    $0x8
40569f:	e8 1c bc ff ff       	call   0x4012c0
4056a4:	e8 37 00 00 00       	call   0x4056e0
4056a9:	e8 e5 a2 01 00       	call   0x41f993
4056ae:	51                   	push   %ecx
4056af:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4056b2:	8b d1                	mov    %ecx,%edx
4056b4:	e8 57 f9 ff ff       	call   0x405010
4056b9:	83 c4 04             	add    $0x4,%esp
4056bc:	ff 75 ec             	push   -0x14(%ebp)
4056bf:	ff 75 e8             	push   -0x18(%ebp)
4056c2:	e8 f9 f8 ff ff       	call   0x404fc0
4056c7:	6a 00                	push   $0x0
4056c9:	6a 00                	push   $0x0
4056cb:	e8 3e 5f 01 00       	call   0x41b60e
4056d0:	cc                   	int3
4056d1:	cc                   	int3
4056d2:	cc                   	int3
4056d3:	cc                   	int3
4056d4:	cc                   	int3
4056d5:	cc                   	int3
4056d6:	cc                   	int3
4056d7:	cc                   	int3
4056d8:	cc                   	int3
4056d9:	cc                   	int3
4056da:	cc                   	int3
4056db:	cc                   	int3
4056dc:	cc                   	int3
4056dd:	cc                   	int3
4056de:	cc                   	int3
4056df:	cc                   	int3
4056e0:	68 54 ed 44 00       	push   $0x44ed54
4056e5:	e8 b0 37 01 00       	call   0x418e9a
4056ea:	cc                   	int3
4056eb:	cc                   	int3
4056ec:	cc                   	int3
4056ed:	cc                   	int3
4056ee:	cc                   	int3
4056ef:	cc                   	int3
4056f0:	55                   	push   %ebp
4056f1:	8b ec                	mov    %esp,%ebp
4056f3:	57                   	push   %edi
4056f4:	8b f9                	mov    %ecx,%edi
4056f6:	8b 0f                	mov    (%edi),%ecx
4056f8:	85 c9                	test   %ecx,%ecx
4056fa:	74 50                	je     0x40574c
4056fc:	8b 57 04             	mov    0x4(%edi),%edx
4056ff:	56                   	push   %esi
405700:	51                   	push   %ecx
405701:	e8 0a f9 ff ff       	call   0x405010
405706:	8b 4f 08             	mov    0x8(%edi),%ecx
405709:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40570e:	8b 37                	mov    (%edi),%esi
405710:	83 c4 04             	add    $0x4,%esp
405713:	2b ce                	sub    %esi,%ecx
405715:	f7 e9                	imul   %ecx
405717:	c1 fa 02             	sar    $0x2,%edx
40571a:	8b c2                	mov    %edx,%eax
40571c:	c1 e8 1f             	shr    $0x1f,%eax
40571f:	03 c2                	add    %edx,%eax
405721:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
405724:	c1 e1 03             	shl    $0x3,%ecx
405727:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40572d:	72 12                	jb     0x405741
40572f:	8b 56 fc             	mov    -0x4(%esi),%edx
405732:	83 c1 23             	add    $0x23,%ecx
405735:	2b f2                	sub    %edx,%esi
405737:	8d 46 fc             	lea    -0x4(%esi),%eax
40573a:	83 f8 1f             	cmp    $0x1f,%eax
40573d:	77 2f                	ja     0x40576e
40573f:	8b f2                	mov    %edx,%esi
405741:	51                   	push   %ecx
405742:	56                   	push   %esi
405743:	e8 70 44 01 00       	call   0x419bb8
405748:	83 c4 08             	add    $0x8,%esp
40574b:	5e                   	pop    %esi
40574c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40574f:	8b 45 0c             	mov    0xc(%ebp),%eax
405752:	89 0f                	mov    %ecx,(%edi)
405754:	8d 04 40             	lea    (%eax,%eax,2),%eax
405757:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
40575a:	89 47 04             	mov    %eax,0x4(%edi)
40575d:	8b 45 10             	mov    0x10(%ebp),%eax
405760:	8d 04 40             	lea    (%eax,%eax,2),%eax
405763:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
405766:	89 47 08             	mov    %eax,0x8(%edi)
405769:	5f                   	pop    %edi
40576a:	5d                   	pop    %ebp
40576b:	c2 0c 00             	ret    $0xc
40576e:	e8 20 a2 01 00       	call   0x41f993
405773:	cc                   	int3
405774:	cc                   	int3
405775:	cc                   	int3
405776:	cc                   	int3
405777:	cc                   	int3
405778:	cc                   	int3
405779:	cc                   	int3
40577a:	cc                   	int3
40577b:	cc                   	int3
40577c:	cc                   	int3
40577d:	cc                   	int3
40577e:	cc                   	int3
40577f:	cc                   	int3
405780:	55                   	push   %ebp
405781:	8b ec                	mov    %esp,%ebp
405783:	56                   	push   %esi
405784:	8b 75 08             	mov    0x8(%ebp),%esi
405787:	3b ca                	cmp    %edx,%ecx
405789:	74 48                	je     0x4057d3
40578b:	8b c6                	mov    %esi,%eax
40578d:	2b c1                	sub    %ecx,%eax
40578f:	57                   	push   %edi
405790:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
405796:	33 ff                	xor    %edi,%edi
405798:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40579f:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
4057a6:	00
4057a7:	0f 10 01             	movups (%ecx),%xmm0
4057aa:	0f 11 06             	movups %xmm0,(%esi)
4057ad:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
4057b2:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
4057b7:	83 c6 18             	add    $0x18,%esi
4057ba:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
4057c1:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
4057c8:	66 89 39             	mov    %di,(%ecx)
4057cb:	83 c1 18             	add    $0x18,%ecx
4057ce:	3b ca                	cmp    %edx,%ecx
4057d0:	75 be                	jne    0x405790
4057d2:	5f                   	pop    %edi
4057d3:	51                   	push   %ecx
4057d4:	8b d6                	mov    %esi,%edx
4057d6:	8b ce                	mov    %esi,%ecx
4057d8:	e8 33 f8 ff ff       	call   0x405010
4057dd:	83 c4 04             	add    $0x4,%esp
4057e0:	8b c6                	mov    %esi,%eax
4057e2:	5e                   	pop    %esi
4057e3:	5d                   	pop    %ebp
4057e4:	c3                   	ret
4057e5:	cc                   	int3
4057e6:	cc                   	int3
4057e7:	cc                   	int3
4057e8:	cc                   	int3
4057e9:	cc                   	int3
4057ea:	cc                   	int3
4057eb:	cc                   	int3
4057ec:	cc                   	int3
4057ed:	cc                   	int3
4057ee:	cc                   	int3
4057ef:	cc                   	int3
4057f0:	55                   	push   %ebp
4057f1:	8b ec                	mov    %esp,%ebp
4057f3:	83 ec 0c             	sub    $0xc,%esp
4057f6:	a1 14 50 45 00       	mov    0x455014,%eax
4057fb:	33 c5                	xor    %ebp,%eax
4057fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
405800:	8b 55 08             	mov    0x8(%ebp),%edx