47954f:	56                   	push   %esi
479550:	57                   	push   %edi
479551:	8b f9                	mov    %ecx,%edi
479553:	8b 1f                	mov    (%edi),%ebx
479555:	2b d3                	sub    %ebx,%edx
479557:	8b 4f 04             	mov    0x4(%edi),%ecx
47955a:	f7 ea                	imul   %edx
47955c:	2b cb                	sub    %ebx,%ecx
47955e:	b8 79 78 78 78       	mov    $0x78787879,%eax
479563:	c1 fa 05             	sar    $0x5,%edx
479566:	8b f2                	mov    %edx,%esi
479568:	c1 ee 1f             	shr    $0x1f,%esi
47956b:	03 f2                	add    %edx,%esi
47956d:	f7 e9                	imul   %ecx
47956f:	c1 fa 05             	sar    $0x5,%edx
479572:	8b c2                	mov    %edx,%eax
479574:	c1 e8 1f             	shr    $0x1f,%eax
479577:	03 c2                	add    %edx,%eax
479579:	3d c3 c3 c3 03       	cmp    $0x3c3c3c3,%eax
47957e:	0f 84 a0 01 00 00    	je     0x479724
479584:	8b 4f 08             	mov    0x8(%edi),%ecx
479587:	40                   	inc    %eax
479588:	89 45 f8             	mov    %eax,-0x8(%ebp)
47958b:	2b cb                	sub    %ebx,%ecx
47958d:	b8 79 78 78 78       	mov    $0x78787879,%eax
479592:	f7 e9                	imul   %ecx
479594:	b8 c3 c3 c3 03       	mov    $0x3c3c3c3,%eax
479599:	c1 fa 05             	sar    $0x5,%edx
47959c:	8b ca                	mov    %edx,%ecx
47959e:	c1 e9 1f             	shr    $0x1f,%ecx
4795a1:	03 ca                	add    %edx,%ecx
4795a3:	8b d1                	mov    %ecx,%edx
4795a5:	d1 ea                	shr    $1,%edx
4795a7:	2b c2                	sub    %edx,%eax
4795a9:	3b c8                	cmp    %eax,%ecx
4795ab:	76 0d                	jbe    0x4795ba
4795ad:	b8 cc ff ff ff       	mov    $0xffffffcc,%eax
4795b2:	89 45 f4             	mov    %eax,-0xc(%ebp)
4795b5:	83 c0 23             	add    $0x23,%eax
4795b8:	eb 37                	jmp    0x4795f1
4795ba:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4795bd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4795c0:	3b c1                	cmp    %ecx,%eax
4795c2:	0f 43 c8             	cmovae %eax,%ecx
4795c5:	81 f9 c3 c3 c3 03    	cmp    $0x3c3c3c3,%ecx
4795cb:	0f 87 4e 01 00 00    	ja     0x47971f
4795d1:	8b d9                	mov    %ecx,%ebx
4795d3:	c1 e3 04             	shl    $0x4,%ebx
4795d6:	03 d9                	add    %ecx,%ebx
4795d8:	c1 e3 02             	shl    $0x2,%ebx
4795db:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4795de:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
4795e4:	72 27                	jb     0x47960d
4795e6:	8d 43 23             	lea    0x23(%ebx),%eax
4795e9:	3b c3                	cmp    %ebx,%eax
4795eb:	0f 86 2e 01 00 00    	jbe    0x47971f
4795f1:	50                   	push   %eax
4795f2:	e8 2e 7c 15 00       	call   0x5d1225
4795f7:	83 c4 04             	add    $0x4,%esp
4795fa:	85 c0                	test   %eax,%eax
4795fc:	0f 84 27 01 00 00    	je     0x479729
479602:	8d 58 23             	lea    0x23(%eax),%ebx
479605:	83 e3 e0             	and    $0xffffffe0,%ebx
479608:	89 43 fc             	mov    %eax,-0x4(%ebx)
47960b:	eb 13                	jmp    0x479620
47960d:	85 db                	test   %ebx,%ebx
47960f:	74 0d                	je     0x47961e
479611:	53                   	push   %ebx
479612:	e8 0e 7c 15 00       	call   0x5d1225
479617:	83 c4 04             	add    $0x4,%esp
47961a:	8b d8                	mov    %eax,%ebx
47961c:	eb 02                	jmp    0x479620
47961e:	33 db                	xor    %ebx,%ebx
479620:	ff 75 0c             	push   0xc(%ebp)
479623:	8b c6                	mov    %esi,%eax
479625:	89 5d fc             	mov    %ebx,-0x4(%ebp)
479628:	c1 e0 04             	shl    $0x4,%eax
47962b:	03 c6                	add    %esi,%eax
47962d:	8d 04 83             	lea    (%ebx,%eax,4),%eax
479630:	50                   	push   %eax
479631:	57                   	push   %edi
479632:	89 45 f0             	mov    %eax,-0x10(%ebp)
479635:	e8 a6 12 00 00       	call   0x47a8e0
47963a:	8b 47 04             	mov    0x4(%edi),%eax
47963d:	83 c4 0c             	add    $0xc,%esp
479640:	8b 4d 08             	mov    0x8(%ebp),%ecx
479643:	8b 37                	mov    (%edi),%esi
479645:	89 45 0c             	mov    %eax,0xc(%ebp)
479648:	3b c8                	cmp    %eax,%ecx
47964a:	0f 85 ac 00 00 00    	jne    0x4796fc
479650:	3b f0                	cmp    %eax,%esi
479652:	74 16                	je     0x47966a
479654:	56                   	push   %esi
479655:	53                   	push   %ebx
479656:	57                   	push   %edi
479657:	e8 84 12 00 00       	call   0x47a8e0
47965c:	83 c6 44             	add    $0x44,%esi
47965f:	83 c4 0c             	add    $0xc,%esp
479662:	83 c3 44             	add    $0x44,%ebx
479665:	3b 75 0c             	cmp    0xc(%ebp),%esi
479668:	75 ea                	jne    0x479654
47966a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
47966d:	8b 37                	mov    (%edi),%esi
47966f:	85 f6                	test   %esi,%esi
479671:	74 64                	je     0x4796d7
479673:	8b 47 04             	mov    0x4(%edi),%eax
479676:	3b f0                	cmp    %eax,%esi
479678:	74 19                	je     0x479693
47967a:	8b d8                	mov    %eax,%ebx
47967c:	0f 1f 40 00          	nopl   0x0(%eax)
479680:	8b ce                	mov    %esi,%ecx
479682:	e8 99 47 00 00       	call   0x47de20
479687:	83 c6 44             	add    $0x44,%esi
47968a:	3b f3                	cmp    %ebx,%esi
47968c:	75 f2                	jne    0x479680
47968e:	8b 37                	mov    (%edi),%esi
479690:	8b 5d fc             	mov    -0x4(%ebp),%ebx
479693:	8b 4f 08             	mov    0x8(%edi),%ecx
479696:	b8 79 78 78 78       	mov    $0x78787879,%eax
47969b:	2b ce                	sub    %esi,%ecx
47969d:	f7 e9                	imul   %ecx
47969f:	c1 fa 05             	sar    $0x5,%edx
4796a2:	8b c2                	mov    %edx,%eax
4796a4:	c1 e8 1f             	shr    $0x1f,%eax
4796a7:	03 c2                	add    %edx,%eax
4796a9:	8b c8                	mov    %eax,%ecx
4796ab:	c1 e1 04             	shl    $0x4,%ecx
4796ae:	03 c8                	add    %eax,%ecx
4796b0:	c1 e1 02             	shl    $0x2,%ecx
4796b3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4796b9:	72 12                	jb     0x4796cd
4796bb:	8b 56 fc             	mov    -0x4(%esi),%edx
4796be:	83 c1 23             	add    $0x23,%ecx
4796c1:	2b f2                	sub    %edx,%esi
4796c3:	8d 46 fc             	lea    -0x4(%esi),%eax
4796c6:	83 f8 1f             	cmp    $0x1f,%eax
4796c9:	77 5e                	ja     0x479729
4796cb:	8b f2                	mov    %edx,%esi
4796cd:	51                   	push   %ecx
4796ce:	56                   	push   %esi
4796cf:	e8 81 7b 15 00       	call   0x5d1255
4796d4:	83 c4 08             	add    $0x8,%esp
4796d7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4796da:	8b 45 f0             	mov    -0x10(%ebp),%eax
4796dd:	c1 e1 04             	shl    $0x4,%ecx
4796e0:	03 4d f8             	add    -0x8(%ebp),%ecx
4796e3:	89 1f                	mov    %ebx,(%edi)
4796e5:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
4796e8:	89 4f 04             	mov    %ecx,0x4(%edi)
4796eb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4796ee:	03 cb                	add    %ebx,%ecx
4796f0:	89 4f 08             	mov    %ecx,0x8(%edi)
4796f3:	5f                   	pop    %edi
4796f4:	5e                   	pop    %esi
4796f5:	5b                   	pop    %ebx
4796f6:	8b e5                	mov    %ebp,%esp
4796f8:	5d                   	pop    %ebp
4796f9:	c2 08 00             	ret    $0x8
4796fc:	53                   	push   %ebx
4796fd:	51                   	push   %ecx
4796fe:	56                   	push   %esi
4796ff:	8b cf                	mov    %edi,%ecx
479701:	e8 ba 3b 02 00       	call   0x49d2c0
479706:	8b 45 f0             	mov    -0x10(%ebp),%eax
479709:	8b cf                	mov    %edi,%ecx
47970b:	83 c0 44             	add    $0x44,%eax
47970e:	50                   	push   %eax
47970f:	ff 77 04             	push   0x4(%edi)
479712:	ff 75 08             	push   0x8(%ebp)
479715:	e8 a6 3b 02 00       	call   0x49d2c0
47971a:	e9 4e ff ff ff       	jmp    0x47966d
47971f:	e8 cc de fc ff       	call   0x4475f0
479724:	e8 77 30 fe ff       	call   0x45c7a0
479729:	e8 c2 ca 15 00       	call   0x5d61f0
47972e:	cc                   	int3
47972f:	cc                   	int3
479730:	55                   	push   %ebp
479731:	8b ec                	mov    %esp,%ebp
479733:	51                   	push   %ecx
479734:	57                   	push   %edi
479735:	8b 7d 0c             	mov    0xc(%ebp),%edi
479738:	8b c1                	mov    %ecx,%eax
47973a:	89 45 fc             	mov    %eax,-0x4(%ebp)
47973d:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
479741:	75 6e                	jne    0x4797b1
479743:	53                   	push   %ebx
479744:	8b 5d 08             	mov    0x8(%ebp),%ebx
479747:	56                   	push   %esi
479748:	ff 77 08             	push   0x8(%edi)
47974b:	8b c8                	mov    %eax,%ecx
47974d:	53                   	push   %ebx
47974e:	e8 dd ff ff ff       	call   0x479730
479753:	8b f7                	mov    %edi,%esi
479755:	8b 3f                	mov    (%edi),%edi
479757:	8b 4e 28             	mov    0x28(%esi),%ecx
47975a:	83 f9 10             	cmp    $0x10,%ecx
47975d:	72 28                	jb     0x479787
47975f:	8b 46 14             	mov    0x14(%esi),%eax
479762:	41                   	inc    %ecx
479763:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
479769:	72 12                	jb     0x47977d
47976b:	8b 50 fc             	mov    -0x4(%eax),%edx
47976e:	83 c1 23             	add    $0x23,%ecx
479771:	2b c2                	sub    %edx,%eax
479773:	83 c0 fc             	add    $0xfffffffc,%eax
479776:	83 f8 1f             	cmp    $0x1f,%eax
479779:	77 3d                	ja     0x4797b8
47977b:	8b c2                	mov    %edx,%eax
47977d:	51                   	push   %ecx
47977e:	50                   	push   %eax
47977f:	e8 d1 7a 15 00       	call   0x5d1255
479784:	83 c4 08             	add    $0x8,%esp
479787:	6a 2c                	push   $0x2c
479789:	56                   	push   %esi
47978a:	c7 46 24 00 00 00 00 	movl   $0x0,0x24(%esi)
479791:	c7 46 28 0f 00 00 00 	movl   $0xf,0x28(%esi)
479798:	c6 46 14 00          	movb   $0x0,0x14(%esi)
47979c:	e8 b4 7a 15 00       	call   0x5d1255
4797a1:	83 c4 08             	add    $0x8,%esp
4797a4:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
4797a8:	75 05                	jne    0x4797af
4797aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4797ad:	eb 99                	jmp    0x479748
4797af:	5e                   	pop    %esi
4797b0:	5b                   	pop    %ebx
4797b1:	5f                   	pop    %edi
4797b2:	8b e5                	mov    %ebp,%esp
4797b4:	5d                   	pop    %ebp
4797b5:	c2 08 00             	ret    $0x8
4797b8:	e8 33 ca 15 00       	call   0x5d61f0
4797bd:	cc                   	int3
4797be:	cc                   	int3
4797bf:	cc                   	int3
4797c0:	55                   	push   %ebp
4797c1:	8b ec                	mov    %esp,%ebp
4797c3:	53                   	push   %ebx
4797c4:	56                   	push   %esi
4797c5:	8b 75 0c             	mov    0xc(%ebp),%esi
4797c8:	8b d9                	mov    %ecx,%ebx
4797ca:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4797ce:	75 25                	jne    0x4797f5
4797d0:	57                   	push   %edi
4797d1:	8b 7d 08             	mov    0x8(%ebp),%edi
4797d4:	ff 76 08             	push   0x8(%esi)
4797d7:	8b cb                	mov    %ebx,%ecx
4797d9:	57                   	push   %edi
4797da:	e8 e1 ff ff ff       	call   0x4797c0
4797df:	8b c6                	mov    %esi,%eax
4797e1:	8b 36                	mov    (%esi),%esi
4797e3:	6a 1c                	push   $0x1c
4797e5:	50                   	push   %eax
4797e6:	e8 6a 7a 15 00       	call   0x5d1255
4797eb:	83 c4 08             	add    $0x8,%esp
4797ee:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4797f2:	74 e0                	je     0x4797d4
4797f4:	5f                   	pop    %edi
4797f5:	5e                   	pop    %esi
4797f6:	5b                   	pop    %ebx
4797f7:	5d                   	pop    %ebp
4797f8:	c2 08 00             	ret    $0x8
4797fb:	cc                   	int3
4797fc:	cc                   	int3
4797fd:	cc                   	int3
4797fe:	cc                   	int3
4797ff:	cc                   	int3
479800:	55                   	push   %ebp
479801:	8b ec                	mov    %esp,%ebp
479803:	51                   	push   %ecx
479804:	57                   	push   %edi
479805:	8b 7d 0c             	mov    0xc(%ebp),%edi
479808:	8b c1                	mov    %ecx,%eax
47980a:	89 45 fc             	mov    %eax,-0x4(%ebp)
47980d:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
479811:	75 6e                	jne    0x479881
479813:	53                   	push   %ebx
479814:	8b 5d 08             	mov    0x8(%ebp),%ebx
479817:	56                   	push   %esi
479818:	ff 77 08             	push   0x8(%edi)
47981b:	8b c8                	mov    %eax,%ecx
47981d:	53                   	push   %ebx
47981e:	e8 dd ff ff ff       	call   0x479800
479823:	8b f7                	mov    %edi,%esi
479825:	8b 3f                	mov    (%edi),%edi
479827:	8b 4e 24             	mov    0x24(%esi),%ecx
47982a:	83 f9 10             	cmp    $0x10,%ecx
47982d:	72 28                	jb     0x479857
47982f:	8b 46 10             	mov    0x10(%esi),%eax
479832:	41                   	inc    %ecx
479833:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
479839:	72 12                	jb     0x47984d
47983b:	8b 50 fc             	mov    -0x4(%eax),%edx
47983e:	83 c1 23             	add    $0x23,%ecx
479841:	2b c2                	sub    %edx,%eax
479843:	83 c0 fc             	add    $0xfffffffc,%eax
479846:	83 f8 1f             	cmp    $0x1f,%eax
479849:	77 3d                	ja     0x479888
47984b:	8b c2                	mov    %edx,%eax
47984d:	51                   	push   %ecx
47984e:	50                   	push   %eax
47984f:	e8 01 7a 15 00       	call   0x5d1255
479854:	83 c4 08             	add    $0x8,%esp
479857:	6a 2c                	push   $0x2c
479859:	56                   	push   %esi
47985a:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
479861:	c7 46 24 0f 00 00 00 	movl   $0xf,0x24(%esi)
479868:	c6 46 10 00          	movb   $0x0,0x10(%esi)
47986c:	e8 e4 79 15 00       	call   0x5d1255
479871:	83 c4 08             	add    $0x8,%esp
479874:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
479878:	75 05                	jne    0x47987f
47987a:	8b 45 fc             	mov    -0x4(%ebp),%eax
47987d:	eb 99                	jmp    0x479818
47987f:	5e                   	pop    %esi
479880:	5b                   	pop    %ebx
479881:	5f                   	pop    %edi
479882:	8b e5                	mov    %ebp,%esp
479884:	5d                   	pop    %ebp
479885:	c2 08 00             	ret    $0x8
479888:	e8 63 c9 15 00       	call   0x5d61f0
47988d:	cc                   	int3
47988e:	cc                   	int3
47988f:	cc                   	int3
479890:	55                   	push   %ebp
479891:	8b ec                	mov    %esp,%ebp
479893:	51                   	push   %ecx
479894:	57                   	push   %edi
479895:	8b 7d 0c             	mov    0xc(%ebp),%edi
479898:	8b c1                	mov    %ecx,%eax
47989a:	89 45 fc             	mov    %eax,-0x4(%ebp)
47989d:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
4798a1:	75 73                	jne    0x479916
4798a3:	53                   	push   %ebx
4798a4:	8b 5d 08             	mov    0x8(%ebp),%ebx
4798a7:	56                   	push   %esi
4798a8:	ff 77 08             	push   0x8(%edi)
4798ab:	8b c8                	mov    %eax,%ecx
4798ad:	53                   	push   %ebx
4798ae:	e8 dd ff ff ff       	call   0x479890
4798b3:	8b f7                	mov    %edi,%esi
4798b5:	8b 3f                	mov    (%edi),%edi
4798b7:	8b 4e 10             	mov    0x10(%esi),%ecx
4798ba:	85 c9                	test   %ecx,%ecx
4798bc:	74 40                	je     0x4798fe
4798be:	8b 46 18             	mov    0x18(%esi),%eax
4798c1:	2b c1                	sub    %ecx,%eax
4798c3:	83 e0 fc             	and    $0xfffffffc,%eax
4798c6:	3d 00 10 00 00       	cmp    $0x1000,%eax
4798cb:	72 12                	jb     0x4798df
4798cd:	8b 51 fc             	mov    -0x4(%ecx),%edx
4798d0:	83 c0 23             	add    $0x23,%eax