4052c0:	51                   	push   %ecx
4052c1:	ff 75 f8             	push   -0x8(%ebp)
4052c4:	e8 b7 63 01 00       	call   0x41b680
4052c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4052cc:	83 c4 24             	add    $0x24,%esp
4052cf:	89 07                	mov    %eax,(%edi)
4052d1:	8b c7                	mov    %edi,%eax
4052d3:	5f                   	pop    %edi
4052d4:	5e                   	pop    %esi
4052d5:	5b                   	pop    %ebx
4052d6:	8b e5                	mov    %ebp,%esp
4052d8:	5d                   	pop    %ebp
4052d9:	c2 18 00             	ret    $0x18
4052dc:	e8 7f c0 ff ff       	call   0x401360
4052e1:	e8 ad a6 01 00       	call   0x41f993
4052e6:	cc                   	int3
4052e7:	cc                   	int3
4052e8:	cc                   	int3
4052e9:	cc                   	int3
4052ea:	cc                   	int3
4052eb:	cc                   	int3
4052ec:	cc                   	int3
4052ed:	cc                   	int3
4052ee:	cc                   	int3
4052ef:	cc                   	int3
4052f0:	55                   	push   %ebp
4052f1:	8b ec                	mov    %esp,%ebp
4052f3:	83 ec 10             	sub    $0x10,%esp
4052f6:	8b 45 10             	mov    0x10(%ebp),%eax
4052f9:	53                   	push   %ebx
4052fa:	56                   	push   %esi
4052fb:	89 45 f4             	mov    %eax,-0xc(%ebp)
4052fe:	be 07 00 00 00       	mov    $0x7,%esi
405303:	8b 45 14             	mov    0x14(%ebp),%eax
405306:	57                   	push   %edi
405307:	8b f9                	mov    %ecx,%edi
405309:	89 45 f8             	mov    %eax,-0x8(%ebp)
40530c:	03 45 1c             	add    0x1c(%ebp),%eax
40530f:	8b df                	mov    %edi,%ebx
405311:	8b 4d 18             	mov    0x18(%ebp),%ecx
405314:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405317:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40531d:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
405324:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40532b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40532e:	3b c6                	cmp    %esi,%eax
405330:	76 30                	jbe    0x405362
405332:	8b f0                	mov    %eax,%esi
405334:	83 ce 07             	or     $0x7,%esi
405337:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40533d:	76 07                	jbe    0x405346
40533f:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
405344:	eb 0a                	jmp    0x405350
405346:	b8 0a 00 00 00       	mov    $0xa,%eax
40534b:	3b f0                	cmp    %eax,%esi
40534d:	0f 42 f0             	cmovb  %eax,%esi
405350:	8d 46 01             	lea    0x1(%esi),%eax
405353:	8b cf                	mov    %edi,%ecx
405355:	50                   	push   %eax
405356:	e8 55 dd ff ff       	call   0x4030b0
40535b:	8b d8                	mov    %eax,%ebx
40535d:	8b 45 fc             	mov    -0x4(%ebp),%eax
405360:	89 1f                	mov    %ebx,(%edi)
405362:	89 77 14             	mov    %esi,0x14(%edi)
405365:	8b 75 f8             	mov    -0x8(%ebp),%esi
405368:	03 f6                	add    %esi,%esi
40536a:	89 47 10             	mov    %eax,0x10(%edi)
40536d:	56                   	push   %esi
40536e:	ff 75 f4             	push   -0xc(%ebp)
405371:	53                   	push   %ebx
405372:	e8 09 63 01 00       	call   0x41b680
405377:	8b 45 1c             	mov    0x1c(%ebp),%eax
40537a:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40537d:	51                   	push   %ecx
40537e:	ff 75 f0             	push   -0x10(%ebp)
405381:	8d 0c 1e             	lea    (%esi,%ebx,1),%ecx
405384:	51                   	push   %ecx
405385:	e8 f6 62 01 00       	call   0x41b680
40538a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40538d:	83 c4 18             	add    $0x18,%esp
405390:	33 c9                	xor    %ecx,%ecx
405392:	66 89 0c 43          	mov    %cx,(%ebx,%eax,2)
405396:	8b c7                	mov    %edi,%eax
405398:	5f                   	pop    %edi
405399:	5e                   	pop    %esi
40539a:	5b                   	pop    %ebx
40539b:	8b e5                	mov    %ebp,%esp
40539d:	5d                   	pop    %ebp
40539e:	c2 18 00             	ret    $0x18
4053a1:	cc                   	int3
4053a2:	cc                   	int3
4053a3:	cc                   	int3
4053a4:	cc                   	int3
4053a5:	cc                   	int3
4053a6:	cc                   	int3
4053a7:	cc                   	int3
4053a8:	cc                   	int3
4053a9:	cc                   	int3
4053aa:	cc                   	int3
4053ab:	cc                   	int3
4053ac:	cc                   	int3
4053ad:	cc                   	int3
4053ae:	cc                   	int3
4053af:	cc                   	int3
4053b0:	55                   	push   %ebp
4053b1:	8b ec                	mov    %esp,%ebp
4053b3:	83 ec 0c             	sub    $0xc,%esp
4053b6:	8b 55 08             	mov    0x8(%ebp),%edx
4053b9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4053be:	53                   	push   %ebx
4053bf:	8b d9                	mov    %ecx,%ebx
4053c1:	56                   	push   %esi
4053c2:	57                   	push   %edi
4053c3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4053c6:	8b 33                	mov    (%ebx),%esi
4053c8:	2b d6                	sub    %esi,%edx
4053ca:	8b 4b 04             	mov    0x4(%ebx),%ecx
4053cd:	f7 ea                	imul   %edx
4053cf:	2b ce                	sub    %esi,%ecx
4053d1:	c1 fa 02             	sar    $0x2,%edx
4053d4:	8b c2                	mov    %edx,%eax
4053d6:	c1 e8 1f             	shr    $0x1f,%eax
4053d9:	03 c2                	add    %edx,%eax
4053db:	89 45 f8             	mov    %eax,-0x8(%ebp)
4053de:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4053e3:	f7 e9                	imul   %ecx
4053e5:	c1 fa 02             	sar    $0x2,%edx
4053e8:	8b c2                	mov    %edx,%eax
4053ea:	c1 e8 1f             	shr    $0x1f,%eax
4053ed:	03 c2                	add    %edx,%eax
4053ef:	89 45 f4             	mov    %eax,-0xc(%ebp)
4053f2:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
4053f7:	0f 84 1b 01 00 00    	je     0x405518
4053fd:	8b 4b 08             	mov    0x8(%ebx),%ecx
405400:	8d 78 01             	lea    0x1(%eax),%edi
405403:	2b ce                	sub    %esi,%ecx
405405:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40540a:	f7 e9                	imul   %ecx
40540c:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
405411:	c1 fa 02             	sar    $0x2,%edx
405414:	8b ca                	mov    %edx,%ecx
405416:	c1 e9 1f             	shr    $0x1f,%ecx
405419:	03 ca                	add    %edx,%ecx
40541b:	8b d1                	mov    %ecx,%edx
40541d:	d1 ea                	shr    $1,%edx
40541f:	2b c2                	sub    %edx,%eax
405421:	3b c8                	cmp    %eax,%ecx
405423:	0f 87 ea 00 00 00    	ja     0x405513
405429:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
40542c:	8b f7                	mov    %edi,%esi
40542e:	3b c7                	cmp    %edi,%eax
405430:	0f 43 f0             	cmovae %eax,%esi
405433:	81 fe aa aa aa 0a    	cmp    $0xaaaaaaa,%esi
405439:	0f 87 d4 00 00 00    	ja     0x405513
40543f:	8d 04 76             	lea    (%esi,%esi,2),%eax
405442:	c1 e0 03             	shl    $0x3,%eax
405445:	3d 00 10 00 00       	cmp    $0x1000,%eax
40544a:	72 27                	jb     0x405473
40544c:	8d 48 23             	lea    0x23(%eax),%ecx
40544f:	3b c8                	cmp    %eax,%ecx
405451:	0f 86 bc 00 00 00    	jbe    0x405513
405457:	51                   	push   %ecx
405458:	e8 69 47 01 00       	call   0x419bc6
40545d:	83 c4 04             	add    $0x4,%esp
405460:	85 c0                	test   %eax,%eax
405462:	0f 84 b5 00 00 00    	je     0x40551d
405468:	8d 78 23             	lea    0x23(%eax),%edi
40546b:	83 e7 e0             	and    $0xffffffe0,%edi
40546e:	89 47 fc             	mov    %eax,-0x4(%edi)
405471:	eb 13                	jmp    0x405486
405473:	85 c0                	test   %eax,%eax
405475:	74 0d                	je     0x405484
405477:	50                   	push   %eax
405478:	e8 49 47 01 00       	call   0x419bc6
40547d:	83 c4 04             	add    $0x4,%esp
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