476579:	ff 75 f0             	push   -0x10(%ebp)
47657c:	6a 20                	push   $0x20
47657e:	ff 75 10             	push   0x10(%ebp)
476581:	ff 15 dc 80 4a 00    	call   *0x4a80dc
476587:	83 c4 0c             	add    $0xc,%esp
47658a:	8d 45 e8             	lea    -0x18(%ebp),%eax
47658d:	50                   	push   %eax
47658e:	ff 15 20 7c 4a 00    	call   *0x4a7c20
476594:	8b 4d fc             	mov    -0x4(%ebp),%ecx
476597:	85 c9                	test   %ecx,%ecx
476599:	74 10                	je     0x4765ab
47659b:	8b 01                	mov    (%ecx),%eax
47659d:	51                   	push   %ecx
47659e:	8b 70 08             	mov    0x8(%eax),%esi
4765a1:	8b ce                	mov    %esi,%ecx
4765a3:	ff 15 2c 81 4a 00    	call   *0x4a812c
4765a9:	ff d6                	call   *%esi
4765ab:	8b c7                	mov    %edi,%eax
4765ad:	5f                   	pop    %edi
4765ae:	5e                   	pop    %esi
4765af:	c9                   	leave
4765b0:	c2 10 00             	ret    $0x10
4765b3:	8b ff                	mov    %edi,%edi
4765b5:	55                   	push   %ebp
4765b6:	8b ec                	mov    %esp,%ebp
4765b8:	83 ec 58             	sub    $0x58,%esp
4765bb:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
4765c0:	33 c5                	xor    %ebp,%eax
4765c2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4765c5:	53                   	push   %ebx
4765c6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4765c9:	56                   	push   %esi
4765ca:	89 4d b0             	mov    %ecx,-0x50(%ebp)
4765cd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4765d0:	57                   	push   %edi
4765d1:	bf 05 40 00 80       	mov    $0x80004005,%edi
4765d6:	85 c9                	test   %ecx,%ecx
4765d8:	0f 84 5e 01 00 00    	je     0x47673c
4765de:	8b 01                	mov    (%ecx),%eax
4765e0:	8d 55 ac             	lea    -0x54(%ebp),%edx
4765e3:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
4765e7:	52                   	push   %edx
4765e8:	51                   	push   %ecx
4765e9:	8b 70 44             	mov    0x44(%eax),%esi
4765ec:	8b ce                	mov    %esi,%ecx
4765ee:	ff 15 2c 81 4a 00    	call   *0x4a812c
4765f4:	ff d6                	call   *%esi
4765f6:	8b f8                	mov    %eax,%edi
4765f8:	85 ff                	test   %edi,%edi
4765fa:	0f 85 34 01 00 00    	jne    0x476734
476600:	8b 4d 10             	mov    0x10(%ebp),%ecx
476603:	33 f6                	xor    %esi,%esi
476605:	2b ce                	sub    %esi,%ecx
476607:	0f 84 c8 00 00 00    	je     0x4766d5
47660d:	83 e9 01             	sub    $0x1,%ecx
476610:	0f 84 87 00 00 00    	je     0x47669d
476616:	83 e9 01             	sub    $0x1,%ecx
476619:	74 47                	je     0x476662
47661b:	83 e9 01             	sub    $0x1,%ecx
47661e:	0f 85 f7 00 00 00    	jne    0x47671b
476624:	68 64 37 41 00       	push   $0x413764
476629:	ff 15 30 7c 4a 00    	call   *0x4a7c30
47662f:	89 45 b0             	mov    %eax,-0x50(%ebp)
476632:	8d 45 b4             	lea    -0x4c(%ebp),%eax
476635:	51                   	push   %ecx
476636:	50                   	push   %eax
476637:	8d 45 b0             	lea    -0x50(%ebp),%eax
47663a:	50                   	push   %eax
47663b:	ff 75 ac             	push   -0x54(%ebp)
47663e:	e8 e0 fe ff ff       	call   0x476523
476643:	8b f8                	mov    %eax,%edi
476645:	85 ff                	test   %edi,%edi
476647:	0f 85 c0 00 00 00    	jne    0x47670d
47664d:	8d 45 b4             	lea    -0x4c(%ebp),%eax
476650:	50                   	push   %eax
476651:	8d 43 08             	lea    0x8(%ebx),%eax
476654:	6a 20                	push   $0x20
476656:	50                   	push   %eax
476657:	ff 15 dc 80 4a 00    	call   *0x4a80dc
47665d:	e9 a8 00 00 00       	jmp    0x47670a
476662:	68 58 37 41 00       	push   $0x413758
476667:	ff 15 30 7c 4a 00    	call   *0x4a7c30
47666d:	89 45 b0             	mov    %eax,-0x50(%ebp)
476670:	8d 45 b4             	lea    -0x4c(%ebp),%eax
476673:	51                   	push   %ecx
476674:	50                   	push   %eax
476675:	8d 45 b0             	lea    -0x50(%ebp),%eax
476678:	50                   	push   %eax
476679:	ff 75 ac             	push   -0x54(%ebp)
47667c:	e8 a2 fe ff ff       	call   0x476523
476681:	8b f8                	mov    %eax,%edi
476683:	85 ff                	test   %edi,%edi
476685:	0f 85 82 00 00 00    	jne    0x47670d
47668b:	6a 0a                	push   $0xa
47668d:	8d 45 b4             	lea    -0x4c(%ebp),%eax
476690:	56                   	push   %esi
476691:	50                   	push   %eax
476692:	ff 15 e0 80 4a 00    	call   *0x4a80e0
476698:	89 43 04             	mov    %eax,0x4(%ebx)
47669b:	eb 6d                	jmp    0x47670a
47669d:	68 44 37 41 00       	push   $0x413744
4766a2:	ff 15 30 7c 4a 00    	call   *0x4a7c30
4766a8:	89 45 b0             	mov    %eax,-0x50(%ebp)
4766ab:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4766ae:	51                   	push   %ecx
4766af:	50                   	push   %eax
4766b0:	8d 45 b0             	lea    -0x50(%ebp),%eax
4766b3:	50                   	push   %eax
4766b4:	ff 75 ac             	push   -0x54(%ebp)
4766b7:	e8 67 fe ff ff       	call   0x476523
4766bc:	8b f8                	mov    %eax,%edi
4766be:	85 ff                	test   %edi,%edi
4766c0:	75 4b                	jne    0x47670d
4766c2:	6a 10                	push   $0x10
4766c4:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4766c7:	56                   	push   %esi
4766c8:	50                   	push   %eax
4766c9:	ff 15 e0 80 4a 00    	call   *0x4a80e0
4766cf:	66 89 43 02          	mov    %ax,0x2(%ebx)
4766d3:	eb 35                	jmp    0x47670a
4766d5:	68 28 37 41 00       	push   $0x413728
4766da:	ff 15 30 7c 4a 00    	call   *0x4a7c30
4766e0:	89 45 b0             	mov    %eax,-0x50(%ebp)
4766e3:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4766e6:	51                   	push   %ecx
4766e7:	50                   	push   %eax
4766e8:	8d 45 b0             	lea    -0x50(%ebp),%eax
4766eb:	50                   	push   %eax
4766ec:	ff 75 ac             	push   -0x54(%ebp)
4766ef:	e8 2f fe ff ff       	call   0x476523
4766f4:	8b f8                	mov    %eax,%edi
4766f6:	85 ff                	test   %edi,%edi
4766f8:	75 13                	jne    0x47670d
4766fa:	6a 10                	push   $0x10
4766fc:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4766ff:	56                   	push   %esi
476700:	50                   	push   %eax
476701:	ff 15 e0 80 4a 00    	call   *0x4a80e0
476707:	66 89 03             	mov    %ax,(%ebx)
47670a:	83 c4 0c             	add    $0xc,%esp
47670d:	39 75 b0             	cmp    %esi,-0x50(%ebp)
476710:	74 09                	je     0x47671b
476712:	ff 75 b0             	push   -0x50(%ebp)
476715:	ff 15 3c 7c 4a 00    	call   *0x4a7c3c
47671b:	8b 4d ac             	mov    -0x54(%ebp),%ecx
47671e:	85 c9                	test   %ecx,%ecx
476720:	74 1a                	je     0x47673c
476722:	8b 01                	mov    (%ecx),%eax
476724:	51                   	push   %ecx
476725:	8b 70 08             	mov    0x8(%eax),%esi
476728:	8b ce                	mov    %esi,%ecx
47672a:	ff 15 2c 81 4a 00    	call   *0x4a812c
476730:	ff d6                	call   *%esi
476732:	eb 08                	jmp    0x47673c
476734:	8b 4d b0             	mov    -0x50(%ebp),%ecx
476737:	e8 dc fb ff ff       	call   0x476318
47673c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47673f:	8b c7                	mov    %edi,%eax
476741:	5f                   	pop    %edi
476742:	5e                   	pop    %esi
476743:	33 cd                	xor    %ebp,%ecx
476745:	5b                   	pop    %ebx
476746:	e8 b5 97 01 00       	call   0x48ff00
47674b:	c9                   	leave
47674c:	c2 0c 00             	ret    $0xc
47674f:	8b ff                	mov    %edi,%edi
476751:	55                   	push   %ebp
476752:	8b ec                	mov    %esp,%ebp
476754:	83 ec 10             	sub    $0x10,%esp
476757:	53                   	push   %ebx
476758:	56                   	push   %esi
476759:	57                   	push   %edi
47675a:	8b f9                	mov    %ecx,%edi
47675c:	33 db                	xor    %ebx,%ebx
47675e:	8b 4f 0c             	mov    0xc(%edi),%ecx
476761:	3b 4f 10             	cmp    0x10(%edi),%ecx
476764:	7c 08                	jl     0x47676e
476766:	89 5f 0c             	mov    %ebx,0xc(%edi)
476769:	e9 db 00 00 00       	jmp    0x476849
47676e:	8b 47 08             	mov    0x8(%edi),%eax
476771:	8d 55 f8             	lea    -0x8(%ebp),%edx
476774:	89 5d f8             	mov    %ebx,-0x8(%ebp)
476777:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47677a:	52                   	push   %edx
47677b:	8b 30                	mov    (%eax),%esi
47677d:	51                   	push   %ecx
47677e:	50                   	push   %eax
47677f:	8b 4e 1c             	mov    0x1c(%esi),%ecx
476782:	ff 15 2c 81 4a 00    	call   *0x4a812c
476788:	ff 56 1c             	call   *0x1c(%esi)
47678b:	8b f0                	mov    %eax,%esi
47678d:	85 f6                	test   %esi,%esi
47678f:	75 70                	jne    0x476801
476791:	53                   	push   %ebx
476792:	ff 75 08             	push   0x8(%ebp)
476795:	8b cf                	mov    %edi,%ecx
476797:	ff 75 f8             	push   -0x8(%ebp)
47679a:	e8 14 fe ff ff       	call   0x4765b3
47679f:	8b f0                	mov    %eax,%esi
4767a1:	85 f6                	test   %esi,%esi
4767a3:	75 5c                	jne    0x476801
4767a5:	6a 01                	push   $0x1
4767a7:	ff 75 08             	push   0x8(%ebp)
4767aa:	8b cf                	mov    %edi,%ecx
4767ac:	ff 75 f8             	push   -0x8(%ebp)
4767af:	e8 ff fd ff ff       	call   0x4765b3
4767b4:	8b f0                	mov    %eax,%esi
4767b6:	85 f6                	test   %esi,%esi
4767b8:	75 47                	jne    0x476801
4767ba:	8b 45 f8             	mov    -0x8(%ebp),%eax
4767bd:	8d 55 fc             	lea    -0x4(%ebp),%edx
4767c0:	52                   	push   %edx
4767c1:	50                   	push   %eax
4767c2:	8b 08                	mov    (%eax),%ecx
4767c4:	8b 71 34             	mov    0x34(%ecx),%esi
4767c7:	8b ce                	mov    %esi,%ecx
4767c9:	ff 15 2c 81 4a 00    	call   *0x4a812c
4767cf:	ff d6                	call   *%esi
4767d1:	8b f0                	mov    %eax,%esi
4767d3:	85 f6                	test   %esi,%esi
4767d5:	75 2a                	jne    0x476801
4767d7:	6a 02                	push   $0x2
4767d9:	ff 75 08             	push   0x8(%ebp)
4767dc:	8b cf                	mov    %edi,%ecx
4767de:	ff 75 fc             	push   -0x4(%ebp)
4767e1:	e8 cd fd ff ff       	call   0x4765b3
4767e6:	8b f0                	mov    %eax,%esi
4767e8:	85 f6                	test   %esi,%esi
4767ea:	75 15                	jne    0x476801
4767ec:	6a 03                	push   $0x3
4767ee:	ff 75 08             	push   0x8(%ebp)
4767f1:	8b cf                	mov    %edi,%ecx
4767f3:	ff 75 fc             	push   -0x4(%ebp)
4767f6:	e8 b8 fd ff ff       	call   0x4765b3
4767fb:	8b f0                	mov    %eax,%esi
4767fd:	85 f6                	test   %esi,%esi
4767ff:	74 07                	je     0x476808
476801:	8b cf                	mov    %edi,%ecx
476803:	e8 10 fb ff ff       	call   0x476318
476808:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47680b:	33 c0                	xor    %eax,%eax
47680d:	85 f6                	test   %esi,%esi
47680f:	0f 94 c0             	sete   %al
476812:	89 45 f4             	mov    %eax,-0xc(%ebp)
476815:	85 c9                	test   %ecx,%ecx
476817:	74 13                	je     0x47682c
476819:	8b 01                	mov    (%ecx),%eax
47681b:	51                   	push   %ecx
47681c:	8b 70 08             	mov    0x8(%eax),%esi
47681f:	8b ce                	mov    %esi,%ecx
476821:	ff 15 2c 81 4a 00    	call   *0x4a812c
476827:	ff d6                	call   *%esi
476829:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47682c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47682f:	85 c9                	test   %ecx,%ecx
476831:	74 10                	je     0x476843
476833:	8b 01                	mov    (%ecx),%eax
476835:	51                   	push   %ecx
476836:	8b 70 08             	mov    0x8(%eax),%esi
476839:	8b ce                	mov    %esi,%ecx
47683b:	ff 15 2c 81 4a 00    	call   *0x4a812c
476841:	ff d6                	call   *%esi
476843:	ff 47 0c             	incl   0xc(%edi)
476846:	8b 5d f4             	mov    -0xc(%ebp),%ebx
476849:	5f                   	pop    %edi
47684a:	5e                   	pop    %esi
47684b:	8b c3                	mov    %ebx,%eax
47684d:	5b                   	pop    %ebx
47684e:	c9                   	leave
47684f:	c2 04 00             	ret    $0x4
476852:	8b ff                	mov    %edi,%edi
476854:	55                   	push   %ebp
476855:	8b ec                	mov    %esp,%ebp
476857:	81 ec d8 00 00 00    	sub    $0xd8,%esp
47685d:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
476862:	33 c5                	xor    %ebp,%eax
476864:	89 45 f8             	mov    %eax,-0x8(%ebp)
476867:	53                   	push   %ebx
476868:	56                   	push   %esi
476869:	8b 75 0c             	mov    0xc(%ebp),%esi
47686c:	8b c1                	mov    %ecx,%eax
47686e:	57                   	push   %edi
47686f:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
476875:	33 db                	xor    %ebx,%ebx
476877:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
47687d:	51                   	push   %ecx
47687e:	8b c8                	mov    %eax,%ecx
476880:	e8 ca fe ff ff       	call   0x47674f
476885:	85 c0                	test   %eax,%eax
476887:	0f 84 eb 00 00 00    	je     0x476978
47688d:	6a 70                	push   $0x70
47688f:	8d 45 80             	lea    -0x80(%ebp),%eax
476892:	6a 00                	push   $0x0
476894:	50                   	push   %eax
476895:	e8 9f a7 01 00       	call   0x491039
47689a:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
4768a1:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4768a7:	83 c4 0c             	add    $0xc,%esp
4768aa:	c7 85 7c ff ff ff 74 	movl   $0x74,-0x84(%ebp)
4768b1:	00 00 00
4768b4:	50                   	push   %eax
4768b5:	6a 00                	push   $0x0
4768b7:	68 3a 04 00 00       	push   $0x43a
4768bc:	56                   	push   %esi
4768bd:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
4768c3:	8b 85 36 ff ff ff    	mov    -0xca(%ebp),%eax
4768c9:	8d 4d 96             	lea    -0x6a(%ebp),%ecx
4768cc:	81 4d 80 00 00 00 a2 	orl    $0xa2000000,-0x80(%ebp)
4768d3:	c1 e0 0a             	shl    $0xa,%eax
4768d6:	0b 85 34 ff ff ff    	or     -0xcc(%ebp),%eax
4768dc:	0f b7 f8             	movzwl %ax,%edi
4768df:	8b c7                	mov    %edi,%eax
4768e1:	89 45 e0             	mov    %eax,-0x20(%ebp)
4768e4:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
4768ea:	89 45 88             	mov    %eax,-0x78(%ebp)
4768ed:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
4768f3:	50                   	push   %eax
4768f4:	6a 20                	push   $0x20
4768f6:	5a                   	pop    %edx
4768f7:	e8 b0 0e fa ff       	call   0x4177ac
4768fc:	6a 00                	push   $0x0
4768fe:	ff 15 38 7d 4a 00    	call   *0x4a7d38
476904:	0f b7 c0             	movzwl %ax,%eax
476907:	85 db                	test   %ebx,%ebx
476909:	75 46                	jne    0x476951
47690b:	66 3b c7             	cmp    %di,%ax
47690e:	74 16                	je     0x476926
476910:	33 c9                	xor    %ecx,%ecx
476912:	66 3b 8d 36 ff ff ff 	cmp    -0xca(%ebp),%cx
476919:	75 36                	jne    0x476951
47691b:	33 c7                	xor    %edi,%eax
47691d:	a9 ff 03 00 00       	test   $0x3ff,%eax
476922:	75 2d                	jne    0x476951
476924:	eb 03                	jmp    0x476929
476926:	33 db                	xor    %ebx,%ebx
476928:	43                   	inc    %ebx
476929:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
47692f:	50                   	push   %eax
476930:	e8 54 00 00 00       	call   0x476989
476935:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
47693c:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
476942:	50                   	push   %eax
476943:	6a 00                	push   $0x0
476945:	68 44 04 00 00       	push   $0x444
47694a:	56                   	push   %esi
47694b:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
476951:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
476958:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
47695e:	50                   	push   %eax
47695f:	6a 10                	push   $0x10