47859e:	2b c1                	sub    %ecx,%eax
4785a0:	83 c0 fc             	add    $0xfffffffc,%eax
4785a3:	83 f8 1f             	cmp    $0x1f,%eax
4785a6:	0f 87 a2 01 00 00    	ja     0x47874e
4785ac:	52                   	push   %edx
4785ad:	51                   	push   %ecx
4785ae:	e8 a2 8c 15 00       	call   0x5d1255
4785b3:	83 c4 08             	add    $0x8,%esp
4785b6:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
4785bc:	89 70 0c             	mov    %esi,0xc(%eax)
4785bf:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
4785c3:	0f 8e 81 00 00 00    	jle    0x47864a
4785c9:	57                   	push   %edi
4785ca:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4785d0:	e8 4b e1 fd ff       	call   0x456720
4785d5:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
4785db:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
4785de:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
4785e5:	e8 36 e1 fd ff       	call   0x456720
4785ea:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
4785f0:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4785f3:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4785f7:	e8 b4 38 00 00       	call   0x47beb0
4785fc:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
478602:	89 45 b8             	mov    %eax,-0x48(%ebp)
478605:	89 75 bc             	mov    %esi,-0x44(%ebp)
478608:	8b 43 10             	mov    0x10(%ebx),%eax
47860b:	8d 73 0c             	lea    0xc(%ebx),%esi
47860e:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
478614:	c7 45 fc 06 00 00 00 	movl   $0x6,-0x4(%ebp)
47861b:	51                   	push   %ecx
47861c:	50                   	push   %eax
47861d:	3b 46 08             	cmp    0x8(%esi),%eax
478620:	74 0f                	je     0x478631
478622:	56                   	push   %esi
478623:	e8 b8 22 00 00       	call   0x47a8e0
478628:	83 c4 0c             	add    $0xc,%esp
47862b:	83 46 04 44          	addl   $0x44,0x4(%esi)
47862f:	eb 07                	jmp    0x478638
478631:	8b ce                	mov    %esi,%ecx
478633:	e8 08 0f 00 00       	call   0x479540
478638:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
47863e:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
478645:	e8 d6 57 00 00       	call   0x47de20
47864a:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
478650:	f6 40 04 01          	testb  $0x1,0x4(%eax)
478654:	74 0b                	je     0x478661
478656:	8b 70 04             	mov    0x4(%eax),%esi
478659:	83 e6 fc             	and    $0xfffffffc,%esi
47865c:	83 c6 04             	add    $0x4,%esi
47865f:	eb 07                	jmp    0x478668
478661:	e8 ea 8a fe ff       	call   0x461150
478666:	8b f0                	mov    %eax,%esi
478668:	8b 0e                	mov    (%esi),%ecx
47866a:	3b 4e 04             	cmp    0x4(%esi),%ecx
47866d:	0f 84 b3 00 00 00    	je     0x478726
478673:	8b 45 1c             	mov    0x1c(%ebp),%eax
478676:	83 ec 08             	sub    $0x8,%esp
478679:	8b cc                	mov    %esp,%ecx
47867b:	8b d0                	mov    %eax,%edx
47867d:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
478681:	72 02                	jb     0x478685
478683:	8b 10                	mov    (%eax),%edx
478685:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
47868c:	89 11                	mov    %edx,(%ecx)
47868e:	8b 40 10             	mov    0x10(%eax),%eax
478691:	89 41 04             	mov    %eax,0x4(%ecx)
478694:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
47869a:	8b 4b 04             	mov    0x4(%ebx),%ecx
47869d:	50                   	push   %eax
47869e:	e8 6d 8a 01 00       	call   0x491110
4786a3:	83 bd 60 ff ff ff 01 	cmpl   $0x1,-0xa0(%ebp)
4786aa:	75 7a                	jne    0x478726
4786ac:	8b 46 04             	mov    0x4(%esi),%eax
4786af:	33 db                	xor    %ebx,%ebx
4786b1:	8b 3e                	mov    (%esi),%edi
4786b3:	2b c7                	sub    %edi,%eax
4786b5:	a9 f0 ff ff ff       	test   $0xfffffff0,%eax
4786ba:	7e 6a                	jle    0x478726
4786bc:	33 c9                	xor    %ecx,%ecx
4786be:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
4786c4:	0f 1f 40 00          	nopl   0x0(%eax)
4786c8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
4786cf:	00
4786d0:	ff 34 0f             	push   (%edi,%ecx,1)
4786d3:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
4786d9:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
4786df:	8b 08                	mov    (%eax),%ecx
4786e1:	e8 1a a2 01 00       	call   0x492900
4786e6:	85 c0                	test   %eax,%eax
4786e8:	74 20                	je     0x47870a
4786ea:	8b 40 14             	mov    0x14(%eax),%eax
4786ed:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
4786f3:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
4786f9:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
4786ff:	50                   	push   %eax
478700:	8d 49 44             	lea    0x44(%ecx),%ecx
478703:	e8 e8 54 02 00       	call   0x49dbf0
478708:	8b 3e                	mov    (%esi),%edi
47870a:	8b 46 04             	mov    0x4(%esi),%eax
47870d:	43                   	inc    %ebx
47870e:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
478714:	2b c7                	sub    %edi,%eax
478716:	83 c1 10             	add    $0x10,%ecx
478719:	c1 f8 04             	sar    $0x4,%eax
47871c:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
478722:	3b d8                	cmp    %eax,%ebx
478724:	7c aa                	jl     0x4786d0
478726:	8b 4d f4             	mov    -0xc(%ebp),%ecx
478729:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
478730:	59                   	pop    %ecx
478731:	5f                   	pop    %edi
478732:	5e                   	pop    %esi
478733:	5b                   	pop    %ebx
478734:	8b 4d f0             	mov    -0x10(%ebp),%ecx
478737:	33 cd                	xor    %ebp,%ecx
478739:	e8 e8 92 15 00       	call   0x5d1a26
47873e:	8b e5                	mov    %ebp,%esp
478740:	5d                   	pop    %ebp
478741:	c2 18 00             	ret    $0x18
478744:	e8 c7 ee fc ff       	call   0x447610
478749:	e8 a2 da 15 00       	call   0x5d61f0
47874e:	e8 9d da 15 00       	call   0x5d61f0
478753:	cc                   	int3
478754:	cc                   	int3
478755:	cc                   	int3
478756:	cc                   	int3
478757:	cc                   	int3
478758:	cc                   	int3
478759:	cc                   	int3
47875a:	cc                   	int3
47875b:	cc                   	int3
47875c:	cc                   	int3
47875d:	cc                   	int3
47875e:	cc                   	int3
47875f:	cc                   	int3
478760:	55                   	push   %ebp
478761:	8b ec                	mov    %esp,%ebp
478763:	83 ec 08             	sub    $0x8,%esp
478766:	33 c9                	xor    %ecx,%ecx
478768:	53                   	push   %ebx
478769:	8b 5d 08             	mov    0x8(%ebp),%ebx
47876c:	56                   	push   %esi
47876d:	57                   	push   %edi
47876e:	8b 7d 0c             	mov    0xc(%ebp),%edi
478771:	8b 57 04             	mov    0x4(%edi),%edx
478774:	8b 77 08             	mov    0x8(%edi),%esi
478777:	03 f2                	add    %edx,%esi
478779:	3b d6                	cmp    %esi,%edx
47877b:	73 10                	jae    0x47878d
47877d:	0f 1f 00             	nopl   (%eax)
478780:	0f be 02             	movsbl (%edx),%eax
478783:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
478786:	42                   	inc    %edx
478787:	03 c8                	add    %eax,%ecx
478789:	3b d6                	cmp    %esi,%edx
47878b:	72 f3                	jb     0x478780
47878d:	69 07 93 01 00 01    	imul   $0x1000193,(%edi),%eax
478793:	33 c1                	xor    %ecx,%eax
478795:	8b cb                	mov    %ebx,%ecx
478797:	50                   	push   %eax
478798:	57                   	push   %edi
478799:	8d 45 f8             	lea    -0x8(%ebp),%eax
47879c:	50                   	push   %eax
47879d:	e8 3e 13 00 00       	call   0x479ae0
4787a2:	8b 40 04             	mov    0x4(%eax),%eax
4787a5:	85 c0                	test   %eax,%eax
4787a7:	74 0f                	je     0x4787b8
4787a9:	3b 43 04             	cmp    0x4(%ebx),%eax
4787ac:	74 0a                	je     0x4787b8
4787ae:	8b 40 14             	mov    0x14(%eax),%eax
4787b1:	5f                   	pop    %edi
4787b2:	5e                   	pop    %esi
4787b3:	5b                   	pop    %ebx
4787b4:	8b e5                	mov    %ebp,%esp
4787b6:	5d                   	pop    %ebp
4787b7:	c3                   	ret
4787b8:	5f                   	pop    %edi
4787b9:	5e                   	pop    %esi
4787ba:	33 c0                	xor    %eax,%eax
4787bc:	5b                   	pop    %ebx
4787bd:	8b e5                	mov    %ebp,%esp
4787bf:	5d                   	pop    %ebp
4787c0:	c3                   	ret
4787c1:	cc                   	int3
4787c2:	cc                   	int3
4787c3:	cc                   	int3
4787c4:	cc                   	int3
4787c5:	cc                   	int3
4787c6:	cc                   	int3
4787c7:	cc                   	int3
4787c8:	cc                   	int3
4787c9:	cc                   	int3
4787ca:	cc                   	int3
4787cb:	cc                   	int3
4787cc:	cc                   	int3
4787cd:	cc                   	int3
4787ce:	cc                   	int3
4787cf:	cc                   	int3
4787d0:	55                   	push   %ebp
4787d1:	8b ec                	mov    %esp,%ebp
4787d3:	83 ec 08             	sub    $0x8,%esp
4787d6:	53                   	push   %ebx
4787d7:	56                   	push   %esi
4787d8:	8b 75 10             	mov    0x10(%ebp),%esi
4787db:	8b c1                	mov    %ecx,%eax
4787dd:	8b 4d 14             	mov    0x14(%ebp),%ecx
4787e0:	57                   	push   %edi
4787e1:	33 ff                	xor    %edi,%edi
4787e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4787e6:	85 c9                	test   %ecx,%ecx
4787e8:	7e 2d                	jle    0x478817
4787ea:	8b 55 08             	mov    0x8(%ebp),%edx
4787ed:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4787f0:	2b d3                	sub    %ebx,%edx
4787f2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4787f5:	3b fe                	cmp    %esi,%edi
4787f7:	7d 1b                	jge    0x478814
4787f9:	ff 34 1a             	push   (%edx,%ebx,1)
4787fc:	ff 33                	push   (%ebx)
4787fe:	e8 bd cb 01 00       	call   0x4953c0
478803:	8b 4d 14             	mov    0x14(%ebp),%ecx
478806:	47                   	inc    %edi
478807:	8b 55 fc             	mov    -0x4(%ebp),%edx
47880a:	83 c4 08             	add    $0x8,%esp
47880d:	83 c3 04             	add    $0x4,%ebx
478810:	3b f9                	cmp    %ecx,%edi
478812:	7c e1                	jl     0x4787f5
478814:	8b 45 f8             	mov    -0x8(%ebp),%eax
478817:	8b 10                	mov    (%eax),%edx
478819:	89 55 14             	mov    %edx,0x14(%ebp)
47881c:	3b ce                	cmp    %esi,%ecx
47881e:	7d 3a                	jge    0x47885a
478820:	8b 7d 08             	mov    0x8(%ebp),%edi
478823:	8b 45 0c             	mov    0xc(%ebp),%eax
478826:	2b c7                	sub    %edi,%eax
478828:	2b f1                	sub    %ecx,%esi
47882a:	89 45 0c             	mov    %eax,0xc(%ebp)
47882d:	8d 1c 8f             	lea    (%edi,%ecx,4),%ebx
478830:	89 75 10             	mov    %esi,0x10(%ebp)
478833:	8b 3c 18             	mov    (%eax,%ebx,1),%edi
478836:	52                   	push   %edx
478837:	e8 04 f6 04 00       	call   0x4c7e40
47883c:	8b f0                	mov    %eax,%esi
47883e:	56                   	push   %esi
47883f:	57                   	push   %edi
478840:	e8 7b cb 01 00       	call   0x4953c0
478845:	8b 45 0c             	mov    0xc(%ebp),%eax
478848:	8d 5b 04             	lea    0x4(%ebx),%ebx
47884b:	8b 55 14             	mov    0x14(%ebp),%edx
47884e:	83 c4 0c             	add    $0xc,%esp
478851:	83 6d 10 01          	subl   $0x1,0x10(%ebp)
478855:	89 73 fc             	mov    %esi,-0x4(%ebx)
478858:	75 d9                	jne    0x478833
47885a:	5f                   	pop    %edi
47885b:	5e                   	pop    %esi
47885c:	5b                   	pop    %ebx
47885d:	8b e5                	mov    %ebp,%esp
47885f:	5d                   	pop    %ebp
478860:	c2 10 00             	ret    $0x10
478863:	cc                   	int3
478864:	cc                   	int3
478865:	cc                   	int3
478866:	cc                   	int3
478867:	cc                   	int3
478868:	cc                   	int3
478869:	cc                   	int3
47886a:	cc                   	int3
47886b:	cc                   	int3
47886c:	cc                   	int3
47886d:	cc                   	int3
47886e:	cc                   	int3
47886f:	cc                   	int3
478870:	55                   	push   %ebp
478871:	8b ec                	mov    %esp,%ebp
478873:	6a ff                	push   $0xffffffff
478875:	68 bd a3 5f 00       	push   $0x5fa3bd
47887a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
478880:	50                   	push   %eax
478881:	83 ec 20             	sub    $0x20,%esp
478884:	53                   	push   %ebx
478885:	56                   	push   %esi
478886:	57                   	push   %edi
478887:	a1 c0 14 69 00       	mov    0x6914c0,%eax
47888c:	33 c5                	xor    %ebp,%eax
47888e:	50                   	push   %eax
47888f:	8d 45 f4             	lea    -0xc(%ebp),%eax
478892:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
478898:	8b d9                	mov    %ecx,%ebx
47889a:	89 5d ec             	mov    %ebx,-0x14(%ebp)
47889d:	8b 75 0c             	mov    0xc(%ebp),%esi
4788a0:	8b c6                	mov    %esi,%eax
4788a2:	8b 7d 08             	mov    0x8(%ebp),%edi
4788a5:	2b c7                	sub    %edi,%eax
4788a7:	8b 4b 04             	mov    0x4(%ebx),%ecx
4788aa:	c1 f8 02             	sar    $0x2,%eax
4788ad:	89 45 e8             	mov    %eax,-0x18(%ebp)
4788b0:	8b 03                	mov    (%ebx),%eax
4788b2:	2b c8                	sub    %eax,%ecx
4788b4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4788b7:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4788bc:	f7 e9                	imul   %ecx
4788be:	8b 45 e8             	mov    -0x18(%ebp),%eax
4788c1:	c1 fa 02             	sar    $0x2,%edx
4788c4:	8b ca                	mov    %edx,%ecx
4788c6:	c1 e9 1f             	shr    $0x1f,%ecx
4788c9:	03 ca                	add    %edx,%ecx
4788cb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4788ce:	3b c1                	cmp    %ecx,%eax
4788d0:	0f 86 3b 01 00 00    	jbe    0x478a11
4788d6:	8b 4b 08             	mov    0x8(%ebx),%ecx
4788d9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4788de:	8b 75 f0             	mov    -0x10(%ebp),%esi
4788e1:	2b ce                	sub    %esi,%ecx
4788e3:	f7 e9                	imul   %ecx
4788e5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4788e8:	c1 fa 02             	sar    $0x2,%edx
4788eb:	8b c2                	mov    %edx,%eax
4788ed:	c1 e8 1f             	shr    $0x1f,%eax
4788f0:	03 c2                	add    %edx,%eax
4788f2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4788f5:	3b c8                	cmp    %eax,%ecx
4788f7:	0f 86 b4 00 00 00    	jbe    0x4789b1
4788fd:	81 f9 aa aa aa 0a    	cmp    $0xaaaaaaa,%ecx
478903:	0f 87 40 01 00 00    	ja     0x478a49
478909:	8b 55 e4             	mov    -0x1c(%ebp),%edx
47890c:	8b f8                	mov    %eax,%edi
47890e:	d1 ef                	shr    $1,%edi
478910:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
478915:	2b c7                	sub    %edi,%eax
478917:	3b d0                	cmp    %eax,%edx
478919:	76 07                	jbe    0x478922
47891b:	bf aa aa aa 0a       	mov    $0xaaaaaaa,%edi
478920:	eb 07                	jmp    0x478929
478922:	03 fa                	add    %edx,%edi
478924:	3b f9                	cmp    %ecx,%edi
478926:	0f 42 f9             	cmovb  %ecx,%edi
478929:	85 f6                	test   %esi,%esi
47892b:	74 67                	je     0x478994
47892d:	53                   	push   %ebx
47892e:	ff 73 04             	push   0x4(%ebx)
478931:	56                   	push   %esi
478932:	e8 59 0a ff ff       	call   0x469390
478937:	8b 4b 08             	mov    0x8(%ebx),%ecx
47893a:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
47893f:	8b 33                	mov    (%ebx),%esi
478941:	83 c4 0c             	add    $0xc,%esp
478944:	2b ce                	sub    %esi,%ecx
478946:	f7 e9                	imul   %ecx
478948:	c1 fa 02             	sar    $0x2,%edx