53946b:	3d c4 4e ec 04       	cmp    $0x4ec4ec4,%eax
539470:	77 3b                	ja     0x5394ad
539472:	6b c0 34             	imul   $0x34,%eax,%eax
539475:	3d 00 10 00 00       	cmp    $0x1000,%eax
53947a:	72 22                	jb     0x53949e
53947c:	8d 48 23             	lea    0x23(%eax),%ecx
53947f:	3b c8                	cmp    %eax,%ecx
539481:	76 2f                	jbe    0x5394b2
539483:	51                   	push   %ecx
539484:	e8 f4 14 ef ff       	call   0x42a97d
539489:	8b c8                	mov    %eax,%ecx
53948b:	83 c4 04             	add    $0x4,%esp
53948e:	85 c9                	test   %ecx,%ecx
539490:	74 25                	je     0x5394b7
539492:	8d 41 23             	lea    0x23(%ecx),%eax
539495:	83 e0 e0             	and    $0xffffffe0,%eax
539498:	89 48 fc             	mov    %ecx,-0x4(%eax)
53949b:	c2 04 00             	ret    $0x4
53949e:	50                   	push   %eax
53949f:	e8 d9 14 ef ff       	call   0x42a97d
5394a4:	83 c4 04             	add    $0x4,%esp
5394a7:	85 c0                	test   %eax,%eax
5394a9:	75 bd                	jne    0x539468
5394ab:	eb 0f                	jmp    0x5394bc
5394ad:	e8 6c 8a ec ff       	call   0x401f1e
5394b2:	e8 67 8a ec ff       	call   0x401f1e
5394b7:	e8 d1 44 f0 ff       	call   0x43d98d
5394bc:	e8 cc 44 f0 ff       	call   0x43d98d
5394c1:	cc                   	int3
5394c2:	cc                   	int3
5394c3:	cc                   	int3
5394c4:	cc                   	int3
5394c5:	cc                   	int3
5394c6:	cc                   	int3
5394c7:	cc                   	int3
5394c8:	cc                   	int3
5394c9:	cc                   	int3
5394ca:	cc                   	int3
5394cb:	cc                   	int3
5394cc:	cc                   	int3
5394cd:	cc                   	int3
5394ce:	cc                   	int3
5394cf:	cc                   	int3
5394d0:	cc                   	int3
5394d1:	cc                   	int3
5394d2:	cc                   	int3
5394d3:	cc                   	int3
5394d4:	cc                   	int3
5394d5:	cc                   	int3
5394d6:	cc                   	int3
5394d7:	cc                   	int3
5394d8:	cc                   	int3
5394d9:	cc                   	int3
5394da:	cc                   	int3
5394db:	cc                   	int3
5394dc:	cc                   	int3
5394dd:	cc                   	int3
5394de:	cc                   	int3
5394df:	cc                   	int3
5394e0:	8b 44 24 04          	mov    0x4(%esp),%eax
5394e4:	85 c0                	test   %eax,%eax
5394e6:	75 03                	jne    0x5394eb
5394e8:	c2 04 00             	ret    $0x4
5394eb:	3d 55 55 55 05       	cmp    $0x5555555,%eax
5394f0:	77 3e                	ja     0x539530
5394f2:	8d 04 40             	lea    (%eax,%eax,2),%eax
5394f5:	c1 e0 04             	shl    $0x4,%eax
5394f8:	3d 00 10 00 00       	cmp    $0x1000,%eax
5394fd:	72 22                	jb     0x539521
5394ff:	8d 48 23             	lea    0x23(%eax),%ecx
539502:	3b c8                	cmp    %eax,%ecx
539504:	76 2f                	jbe    0x539535
539506:	51                   	push   %ecx
539507:	e8 71 14 ef ff       	call   0x42a97d
53950c:	8b c8                	mov    %eax,%ecx
53950e:	83 c4 04             	add    $0x4,%esp
539511:	85 c9                	test   %ecx,%ecx
539513:	74 25                	je     0x53953a
539515:	8d 41 23             	lea    0x23(%ecx),%eax
539518:	83 e0 e0             	and    $0xffffffe0,%eax
53951b:	89 48 fc             	mov    %ecx,-0x4(%eax)
53951e:	c2 04 00             	ret    $0x4
539521:	50                   	push   %eax
539522:	e8 56 14 ef ff       	call   0x42a97d
539527:	83 c4 04             	add    $0x4,%esp
53952a:	85 c0                	test   %eax,%eax
53952c:	75 ba                	jne    0x5394e8
53952e:	eb 0f                	jmp    0x53953f
539530:	e8 e9 89 ec ff       	call   0x401f1e
539535:	e8 e4 89 ec ff       	call   0x401f1e
53953a:	e8 4e 44 f0 ff       	call   0x43d98d
53953f:	e8 49 44 f0 ff       	call   0x43d98d
539544:	cc                   	int3
539545:	cc                   	int3
539546:	cc                   	int3
539547:	cc                   	int3
539548:	cc                   	int3
539549:	cc                   	int3
53954a:	cc                   	int3
53954b:	cc                   	int3
53954c:	cc                   	int3
53954d:	cc                   	int3
53954e:	cc                   	int3
53954f:	cc                   	int3
539550:	cc                   	int3
539551:	cc                   	int3
539552:	cc                   	int3
539553:	cc                   	int3
539554:	cc                   	int3
539555:	cc                   	int3
539556:	cc                   	int3
539557:	cc                   	int3
539558:	cc                   	int3
539559:	cc                   	int3
53955a:	cc                   	int3
53955b:	cc                   	int3
53955c:	cc                   	int3
53955d:	cc                   	int3
53955e:	cc                   	int3
53955f:	cc                   	int3
539560:	8b 44 24 04          	mov    0x4(%esp),%eax
539564:	85 c0                	test   %eax,%eax
539566:	75 03                	jne    0x53956b
539568:	c2 04 00             	ret    $0x4
53956b:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
539570:	77 3b                	ja     0x5395ad
539572:	c1 e0 02             	shl    $0x2,%eax
539575:	3d 00 10 00 00       	cmp    $0x1000,%eax
53957a:	72 22                	jb     0x53959e
53957c:	8d 48 23             	lea    0x23(%eax),%ecx
53957f:	3b c8                	cmp    %eax,%ecx
539581:	76 2f                	jbe    0x5395b2
539583:	51                   	push   %ecx
539584:	e8 f4 13 ef ff       	call   0x42a97d
539589:	8b c8                	mov    %eax,%ecx
53958b:	83 c4 04             	add    $0x4,%esp
53958e:	85 c9                	test   %ecx,%ecx
539590:	74 25                	je     0x5395b7
539592:	8d 41 23             	lea    0x23(%ecx),%eax
539595:	83 e0 e0             	and    $0xffffffe0,%eax
539598:	89 48 fc             	mov    %ecx,-0x4(%eax)
53959b:	c2 04 00             	ret    $0x4
53959e:	50                   	push   %eax
53959f:	e8 d9 13 ef ff       	call   0x42a97d
5395a4:	83 c4 04             	add    $0x4,%esp
5395a7:	85 c0                	test   %eax,%eax
5395a9:	75 bd                	jne    0x539568
5395ab:	eb 0f                	jmp    0x5395bc
5395ad:	e8 6c 89 ec ff       	call   0x401f1e
5395b2:	e8 67 89 ec ff       	call   0x401f1e
5395b7:	e8 d1 43 f0 ff       	call   0x43d98d
5395bc:	e8 cc 43 f0 ff       	call   0x43d98d
5395c1:	cc                   	int3
5395c2:	cc                   	int3
5395c3:	cc                   	int3
5395c4:	cc                   	int3
5395c5:	cc                   	int3
5395c6:	cc                   	int3
5395c7:	cc                   	int3
5395c8:	cc                   	int3
5395c9:	cc                   	int3
5395ca:	cc                   	int3
5395cb:	cc                   	int3
5395cc:	cc                   	int3
5395cd:	cc                   	int3
5395ce:	cc                   	int3
5395cf:	cc                   	int3
5395d0:	cc                   	int3
5395d1:	cc                   	int3
5395d2:	cc                   	int3
5395d3:	cc                   	int3
5395d4:	cc                   	int3
5395d5:	cc                   	int3
5395d6:	cc                   	int3
5395d7:	cc                   	int3
5395d8:	cc                   	int3
5395d9:	cc                   	int3
5395da:	cc                   	int3
5395db:	cc                   	int3
5395dc:	cc                   	int3
5395dd:	cc                   	int3
5395de:	cc                   	int3
5395df:	cc                   	int3
5395e0:	ff 74 24 08          	push   0x8(%esp)
5395e4:	8b 01                	mov    (%ecx),%eax
5395e6:	ff 74 24 08          	push   0x8(%esp)
5395ea:	89 41 04             	mov    %eax,0x4(%ecx)
5395ed:	8d 44 24 10          	lea    0x10(%esp),%eax
5395f1:	ff 31                	push   (%ecx)
5395f3:	50                   	push   %eax
5395f4:	e8 99 c3 ed ff       	call   0x415992
5395f9:	c2 08 00             	ret    $0x8
5395fc:	cc                   	int3
5395fd:	cc                   	int3
5395fe:	cc                   	int3
5395ff:	cc                   	int3
539600:	cc                   	int3
539601:	cc                   	int3
539602:	cc                   	int3
539603:	cc                   	int3
539604:	cc                   	int3
539605:	cc                   	int3
539606:	cc                   	int3
539607:	cc                   	int3
539608:	cc                   	int3
539609:	cc                   	int3
53960a:	cc                   	int3
53960b:	cc                   	int3
53960c:	cc                   	int3
53960d:	cc                   	int3
53960e:	cc                   	int3
53960f:	cc                   	int3
539610:	8b 01                	mov    (%ecx),%eax
539612:	8b 08                	mov    (%eax),%ecx
539614:	8b 44 24 04          	mov    0x4(%esp),%eax
539618:	89 08                	mov    %ecx,(%eax)
53961a:	c2 04 00             	ret    $0x4
53961d:	cc                   	int3
53961e:	cc                   	int3
53961f:	cc                   	int3
539620:	8b 44 24 04          	mov    0x4(%esp),%eax
539624:	8b 09                	mov    (%ecx),%ecx
539626:	89 08                	mov    %ecx,(%eax)
539628:	c2 04 00             	ret    $0x4
53962b:	cc                   	int3
53962c:	cc                   	int3
53962d:	cc                   	int3
53962e:	cc                   	int3
53962f:	cc                   	int3
539630:	8b 44 24 04          	mov    0x4(%esp),%eax
539634:	8b 09                	mov    (%ecx),%ecx
539636:	89 08                	mov    %ecx,(%eax)
539638:	c2 04 00             	ret    $0x4
53963b:	cc                   	int3
53963c:	cc                   	int3
53963d:	cc                   	int3
53963e:	cc                   	int3
53963f:	cc                   	int3
539640:	8b 44 24 04          	mov    0x4(%esp),%eax
539644:	8b 09                	mov    (%ecx),%ecx
539646:	89 08                	mov    %ecx,(%eax)
539648:	c2 04 00             	ret    $0x4
53964b:	cc                   	int3
53964c:	cc                   	int3
53964d:	cc                   	int3
53964e:	cc                   	int3
53964f:	cc                   	int3
539650:	8b 44 24 04          	mov    0x4(%esp),%eax
539654:	8b 09                	mov    (%ecx),%ecx
539656:	89 08                	mov    %ecx,(%eax)
539658:	c2 04 00             	ret    $0x4
53965b:	cc                   	int3
53965c:	cc                   	int3
53965d:	cc                   	int3
53965e:	cc                   	int3
53965f:	cc                   	int3
539660:	8b 44 24 04          	mov    0x4(%esp),%eax
539664:	8b 09                	mov    (%ecx),%ecx
539666:	89 08                	mov    %ecx,(%eax)
539668:	c2 04 00             	ret    $0x4
53966b:	cc                   	int3
53966c:	cc                   	int3
53966d:	cc                   	int3
53966e:	cc                   	int3
53966f:	cc                   	int3
539670:	8b 41 1c             	mov    0x1c(%ecx),%eax
539673:	c3                   	ret
539674:	cc                   	int3
539675:	cc                   	int3
539676:	cc                   	int3
539677:	cc                   	int3
539678:	cc                   	int3
539679:	cc                   	int3
53967a:	cc                   	int3
53967b:	cc                   	int3
53967c:	cc                   	int3
53967d:	cc                   	int3
53967e:	cc                   	int3
53967f:	cc                   	int3
539680:	8b 41 08             	mov    0x8(%ecx),%eax
539683:	2b 01                	sub    (%ecx),%eax
539685:	c1 f8 02             	sar    $0x2,%eax
539688:	c3                   	ret
539689:	cc                   	int3
53968a:	cc                   	int3
53968b:	cc                   	int3
53968c:	cc                   	int3
53968d:	cc                   	int3
53968e:	cc                   	int3
53968f:	cc                   	int3
539690:	8b 51 08             	mov    0x8(%ecx),%edx
539693:	b8 4f ec c4 4e       	mov    $0x4ec4ec4f,%eax
539698:	2b 11                	sub    (%ecx),%edx
53969a:	f7 ea                	imul   %edx
53969c:	c1 fa 04             	sar    $0x4,%edx
53969f:	8b c2                	mov    %edx,%eax
5396a1:	c1 e8 1f             	shr    $0x1f,%eax
5396a4:	03 c2                	add    %edx,%eax
5396a6:	c3                   	ret
5396a7:	cc                   	int3
5396a8:	cc                   	int3
5396a9:	cc                   	int3
5396aa:	cc                   	int3
5396ab:	cc                   	int3
5396ac:	cc                   	int3
5396ad:	cc                   	int3
5396ae:	cc                   	int3
5396af:	cc                   	int3
5396b0:	8b 51 08             	mov    0x8(%ecx),%edx
5396b3:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
5396b8:	2b 11                	sub    (%ecx),%edx
5396ba:	f7 ea                	imul   %edx
5396bc:	c1 fa 03             	sar    $0x3,%edx
5396bf:	8b c2                	mov    %edx,%eax
5396c1:	c1 e8 1f             	shr    $0x1f,%eax
5396c4:	03 c2                	add    %edx,%eax
5396c6:	c3                   	ret
5396c7:	cc                   	int3
5396c8:	cc                   	int3
5396c9:	cc                   	int3
5396ca:	cc                   	int3
5396cb:	cc                   	int3
5396cc:	cc                   	int3
5396cd:	cc                   	int3
5396ce:	cc                   	int3
5396cf:	cc                   	int3
5396d0:	8b 41 08             	mov    0x8(%ecx),%eax
5396d3:	2b 01                	sub    (%ecx),%eax
5396d5:	c1 f8 02             	sar    $0x2,%eax
5396d8:	c3                   	ret
5396d9:	cc                   	int3
5396da:	cc                   	int3
5396db:	cc                   	int3
5396dc:	cc                   	int3
5396dd:	cc                   	int3
5396de:	cc                   	int3
5396df:	cc                   	int3
5396e0:	55                   	push   %ebp
5396e1:	8b e9                	mov    %ecx,%ebp
5396e3:	57                   	push   %edi
5396e4:	8b 45 00             	mov    0x0(%ebp),%eax
5396e7:	8b 38                	mov    (%eax),%edi
5396e9:	89 00                	mov    %eax,(%eax)
5396eb:	8b 45 00             	mov    0x0(%ebp),%eax
5396ee:	89 40 04             	mov    %eax,0x4(%eax)
5396f1:	c7 45 04 00 00 00 00 	movl   $0x0,0x4(%ebp)
5396f8:	3b 7d 00             	cmp    0x0(%ebp),%edi
5396fb:	74 68                	je     0x539765
5396fd:	53                   	push   %ebx
5396fe:	56                   	push   %esi