4755e5:	8b 48 04             	mov    0x4(%eax),%ecx
4755e8:	e8 af 46 f9 ff       	call   0x409c9c
4755ed:	8b f8                	mov    %eax,%edi
4755ef:	85 ff                	test   %edi,%edi
4755f1:	7e 53                	jle    0x475646
4755f3:	8b 45 08             	mov    0x8(%ebp),%eax
4755f6:	53                   	push   %ebx
4755f7:	33 db                	xor    %ebx,%ebx
4755f9:	56                   	push   %esi
4755fa:	85 ff                	test   %edi,%edi
4755fc:	7e 46                	jle    0x475644
4755fe:	8b 40 04             	mov    0x4(%eax),%eax
475601:	8b 30                	mov    (%eax),%esi
475603:	8b ce                	mov    %esi,%ecx
475605:	e8 8d 43 f9 ff       	call   0x409997
47560a:	8b 46 08             	mov    0x8(%esi),%eax
47560d:	8b 08                	mov    (%eax),%ecx
47560f:	e8 0d f9 fe ff       	call   0x464f21
475614:	84 c0                	test   %al,%al
475616:	74 18                	je     0x475630
475618:	8b 45 fc             	mov    -0x4(%ebp),%eax
47561b:	8b 88 0c 01 00 00    	mov    0x10c(%eax),%ecx
475621:	e8 c0 fe fe ff       	call   0x4654e6
475626:	8b 45 08             	mov    0x8(%ebp),%eax
475629:	43                   	inc    %ebx
47562a:	3b df                	cmp    %edi,%ebx
47562c:	7c d0                	jl     0x4755fe
47562e:	eb 14                	jmp    0x475644
475630:	8b 75 0c             	mov    0xc(%ebp),%esi
475633:	8b ce                	mov    %esi,%ecx
475635:	e8 e6 43 f9 ff       	call   0x409a20
47563a:	83 26 00             	andl   $0x0,(%esi)
47563d:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
475644:	5e                   	pop    %esi
475645:	5b                   	pop    %ebx
475646:	33 c0                	xor    %eax,%eax
475648:	5f                   	pop    %edi
475649:	8b e5                	mov    %ebp,%esp
47564b:	5d                   	pop    %ebp
47564c:	c2 08 00             	ret    $0x8
47564f:	55                   	push   %ebp
475650:	8b ec                	mov    %esp,%ebp
475652:	83 ec 30             	sub    $0x30,%esp
475655:	53                   	push   %ebx
475656:	56                   	push   %esi
475657:	57                   	push   %edi
475658:	8b 7d 08             	mov    0x8(%ebp),%edi
47565b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
47565e:	8b 47 08             	mov    0x8(%edi),%eax
475661:	89 45 f0             	mov    %eax,-0x10(%ebp)
475664:	8b 47 04             	mov    0x4(%edi),%eax
475667:	8b 70 04             	mov    0x4(%eax),%esi
47566a:	8b ce                	mov    %esi,%ecx
47566c:	e8 26 43 f9 ff       	call   0x409997
475671:	8b 4e 08             	mov    0x8(%esi),%ecx
475674:	8b 01                	mov    (%ecx),%eax
475676:	89 45 08             	mov    %eax,0x8(%ebp)
475679:	89 45 d0             	mov    %eax,-0x30(%ebp)
47567c:	8b 41 04             	mov    0x4(%ecx),%eax
47567f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
475682:	8b 41 08             	mov    0x8(%ecx),%eax
475685:	89 45 d8             	mov    %eax,-0x28(%ebp)
475688:	8b 41 0c             	mov    0xc(%ecx),%eax
47568b:	89 45 dc             	mov    %eax,-0x24(%ebp)
47568e:	ff 00                	incl   (%eax)
475690:	8b 47 04             	mov    0x4(%edi),%eax
475693:	8b 70 08             	mov    0x8(%eax),%esi
475696:	8b ce                	mov    %esi,%ecx
475698:	e8 fa 42 f9 ff       	call   0x409997
47569d:	8b 4e 08             	mov    0x8(%esi),%ecx
4756a0:	33 db                	xor    %ebx,%ebx
4756a2:	8b 01                	mov    (%ecx),%eax
4756a4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4756a7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4756aa:	8b 41 04             	mov    0x4(%ecx),%eax
4756ad:	89 45 f4             	mov    %eax,-0xc(%ebp)
4756b0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4756b3:	8b 41 08             	mov    0x8(%ecx),%eax
4756b6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4756b9:	8b 41 0c             	mov    0xc(%ecx),%eax
4756bc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4756bf:	ff 00                	incl   (%eax)
4756c1:	8b 47 04             	mov    0x4(%edi),%eax
4756c4:	8b 08                	mov    (%eax),%ecx
4756c6:	e8 d1 45 f9 ff       	call   0x409c9c
4756cb:	83 f8 ff             	cmp    $0xffffffff,%eax
4756ce:	74 23                	je     0x4756f3
4756d0:	8b 47 04             	mov    0x4(%edi),%eax
4756d3:	6a 29                	push   $0x29
4756d5:	8b 30                	mov    (%eax),%esi
4756d7:	8b ce                	mov    %esi,%ecx
4756d9:	e8 d0 46 f9 ff       	call   0x409dae
4756de:	84 c0                	test   %al,%al
4756e0:	75 11                	jne    0x4756f3
4756e2:	8b ce                	mov    %esi,%ecx
4756e4:	e8 b3 45 f9 ff       	call   0x409c9c
4756e9:	8b f0                	mov    %eax,%esi
4756eb:	81 ce 00 00 01 00    	or     $0x10000,%esi
4756f1:	eb 02                	jmp    0x4756f5
4756f3:	8b f3                	mov    %ebx,%esi
4756f5:	8b 4f 04             	mov    0x4(%edi),%ecx
4756f8:	6a 29                	push   $0x29
4756fa:	8b 49 04             	mov    0x4(%ecx),%ecx
4756fd:	e8 ac 46 f9 ff       	call   0x409dae
475702:	84 c0                	test   %al,%al
475704:	74 17                	je     0x47571d
475706:	8b 45 f8             	mov    -0x8(%ebp),%eax
475709:	8d 4d d0             	lea    -0x30(%ebp),%ecx
47570c:	05 b8 00 00 00       	add    $0xb8,%eax
475711:	50                   	push   %eax
475712:	e8 90 2a f9 ff       	call   0x4081a7
475717:	8b 45 d0             	mov    -0x30(%ebp),%eax
47571a:	89 45 08             	mov    %eax,0x8(%ebp)
47571d:	b8 00 40 00 00       	mov    $0x4000,%eax
475722:	39 45 f4             	cmp    %eax,-0xc(%ebp)
475725:	76 11                	jbe    0x475738
475727:	6a ff                	push   $0xffffffff
475729:	50                   	push   %eax
47572a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
47572d:	e8 5a 27 f9 ff       	call   0x407e8c
475732:	8b 45 e0             	mov    -0x20(%ebp),%eax
475735:	89 45 fc             	mov    %eax,-0x4(%ebp)
475738:	83 7d f0 05          	cmpl   $0x5,-0x10(%ebp)
47573c:	72 0d                	jb     0x47574b
47573e:	8b 47 04             	mov    0x4(%edi),%eax
475741:	8b 48 10             	mov    0x10(%eax),%ecx
475744:	e8 72 32 ff ff       	call   0x4689bb
475749:	8b d8                	mov    %eax,%ebx
47574b:	83 7f 08 04          	cmpl   $0x4,0x8(%edi)
47574f:	72 4c                	jb     0x47579d
475751:	8b 4f 04             	mov    0x4(%edi),%ecx
475754:	6a 29                	push   $0x29
475756:	8b 79 0c             	mov    0xc(%ecx),%edi
475759:	8b cf                	mov    %edi,%ecx
47575b:	e8 4e 46 f9 ff       	call   0x409dae
475760:	84 c0                	test   %al,%al
475762:	75 39                	jne    0x47579d
475764:	8b cf                	mov    %edi,%ecx
475766:	e8 8d 45 f9 ff       	call   0x409cf8
47576b:	dd 05 b0 ba 4b 00    	fldl   0x4bbab0
475771:	d8 d9                	fcomp  %st(1)
475773:	df e0                	fnstsw %ax
475775:	f6 c4 41             	test   $0x41,%ah
475778:	75 04                	jne    0x47577e
47577a:	dd d8                	fstp   %st(0)
47577c:	d9 ee                	fldz
47577e:	dc 0d e0 4b 4a 00    	fmull  0x4a4be0
475784:	e8 47 5e fc ff       	call   0x43b5d0
475789:	8b 55 fc             	mov    -0x4(%ebp),%edx
47578c:	8b cb                	mov    %ebx,%ecx
47578e:	50                   	push   %eax
47578f:	56                   	push   %esi
475790:	ff 75 08             	push   0x8(%ebp)
475793:	e8 9d f5 fe ff       	call   0x464d35
475798:	83 c4 0c             	add    $0xc,%esp
47579b:	eb 0e                	jmp    0x4757ab
47579d:	56                   	push   %esi
47579e:	ff 75 08             	push   0x8(%ebp)
4757a1:	ff 75 fc             	push   -0x4(%ebp)
4757a4:	53                   	push   %ebx
4757a5:	ff 15 b8 f6 48 00    	call   *0x48f6b8
4757ab:	8b 75 0c             	mov    0xc(%ebp),%esi
4757ae:	8b f8                	mov    %eax,%edi
4757b0:	8b ce                	mov    %esi,%ecx
4757b2:	e8 69 42 f9 ff       	call   0x409a20
4757b7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4757ba:	89 3e                	mov    %edi,(%esi)
4757bc:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4757c3:	e8 9c 02 f9 ff       	call   0x405a64
4757c8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4757cb:	e8 94 02 f9 ff       	call   0x405a64
4757d0:	5f                   	pop    %edi
4757d1:	5e                   	pop    %esi
4757d2:	33 c0                	xor    %eax,%eax
4757d4:	5b                   	pop    %ebx
4757d5:	8b e5                	mov    %ebp,%esp
4757d7:	5d                   	pop    %ebp
4757d8:	c2 08 00             	ret    $0x8
4757db:	55                   	push   %ebp
4757dc:	8b ec                	mov    %esp,%ebp
4757de:	83 e4 f8             	and    $0xfffffff8,%esp
4757e1:	83 ec 3c             	sub    $0x3c,%esp
4757e4:	8b 45 08             	mov    0x8(%ebp),%eax
4757e7:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
4757ec:	53                   	push   %ebx
4757ed:	56                   	push   %esi
4757ee:	8b 40 04             	mov    0x4(%eax),%eax
4757f1:	8b f1                	mov    %ecx,%esi
4757f3:	57                   	push   %edi
4757f4:	8b 38                	mov    (%eax),%edi
4757f6:	8b cf                	mov    %edi,%ecx
4757f8:	83 7f 0c 0e          	cmpl   $0xe,0xc(%edi)
4757fc:	75 11                	jne    0x47580f
4757fe:	8d 44 24 38          	lea    0x38(%esp),%eax
475802:	33 db                	xor    %ebx,%ebx
475804:	50                   	push   %eax
475805:	43                   	inc    %ebx
475806:	e8 99 23 ff ff       	call   0x467ba4
47580b:	8b c8                	mov    %eax,%ecx
47580d:	eb 2c                	jmp    0x47583b
47580f:	6a 02                	push   $0x2
475811:	5b                   	pop    %ebx
475812:	e8 80 41 f9 ff       	call   0x409997
475817:	8b 4f 08             	mov    0x8(%edi),%ecx
47581a:	8b 01                	mov    (%ecx),%eax
47581c:	89 44 24 28          	mov    %eax,0x28(%esp)
475820:	8b 41 04             	mov    0x4(%ecx),%eax
475823:	89 44 24 2c          	mov    %eax,0x2c(%esp)
475827:	8b 41 08             	mov    0x8(%ecx),%eax
47582a:	89 44 24 30          	mov    %eax,0x30(%esp)
47582e:	8b 41 0c             	mov    0xc(%ecx),%eax
475831:	8d 4c 24 28          	lea    0x28(%esp),%ecx
475835:	89 44 24 34          	mov    %eax,0x34(%esp)
475839:	ff 00                	incl   (%eax)
47583b:	8b 01                	mov    (%ecx),%eax
47583d:	89 44 24 18          	mov    %eax,0x18(%esp)
475841:	8b 41 04             	mov    0x4(%ecx),%eax
475844:	89 44 24 1c          	mov    %eax,0x1c(%esp)
475848:	8b 41 08             	mov    0x8(%ecx),%eax
47584b:	89 44 24 20          	mov    %eax,0x20(%esp)
47584f:	8b 41 0c             	mov    0xc(%ecx),%eax
475852:	89 44 24 24          	mov    %eax,0x24(%esp)
475856:	ff 00                	incl   (%eax)
475858:	f6 c3 02             	test   $0x2,%bl
47585b:	74 0c                	je     0x475869
47585d:	8d 4c 24 28          	lea    0x28(%esp),%ecx
475861:	83 e3 fd             	and    $0xfffffffd,%ebx
475864:	e8 fb 01 f9 ff       	call   0x405a64
475869:	f6 c3 01             	test   $0x1,%bl
47586c:	74 09                	je     0x475877
47586e:	8d 4c 24 38          	lea    0x38(%esp),%ecx
475872:	e8 ed 01 f9 ff       	call   0x405a64
475877:	8d 4c 24 18          	lea    0x18(%esp),%ecx
47587b:	e8 2f 27 f9 ff       	call   0x407faf
475880:	ff 74 24 1c          	push   0x1c(%esp)
475884:	ff 74 24 1c          	push   0x1c(%esp)
475888:	ff 15 7c f6 48 00    	call   *0x48f67c
47588e:	8d 44 24 18          	lea    0x18(%esp),%eax
475892:	8b ce                	mov    %esi,%ecx
475894:	50                   	push   %eax
475895:	e8 23 47 f9 ff       	call   0x409fbd
47589a:	85 c0                	test   %eax,%eax
47589c:	75 16                	jne    0x4758b4
47589e:	8b 75 0c             	mov    0xc(%ebp),%esi
4758a1:	8b ce                	mov    %esi,%ecx
4758a3:	e8 78 41 f9 ff       	call   0x409a20
4758a8:	83 26 00             	andl   $0x0,(%esi)
4758ab:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4758b2:	eb 51                	jmp    0x475905
4758b4:	8d be 28 01 00 00    	lea    0x128(%esi),%edi
4758ba:	8b 0f                	mov    (%edi),%ecx
4758bc:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4758c0:	85 c9                	test   %ecx,%ecx
4758c2:	74 35                	je     0x4758f9
4758c4:	8b 09                	mov    (%ecx),%ecx
4758c6:	8d 54 24 18          	lea    0x18(%esp),%edx
4758ca:	e8 1a 06 fa ff       	call   0x415ee9
4758cf:	84 c0                	test   %al,%al
4758d1:	75 14                	jne    0x4758e7
4758d3:	8d 44 24 14          	lea    0x14(%esp),%eax
4758d7:	50                   	push   %eax
4758d8:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4758dc:	e8 09 14 fe ff       	call   0x456cea
4758e1:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4758e5:	eb d9                	jmp    0x4758c0
4758e7:	8b 06                	mov    (%esi),%eax
4758e9:	6a 00                	push   $0x0
4758eb:	6a 01                	push   $0x1
4758ed:	8b 48 04             	mov    0x4(%eax),%ecx
4758f0:	03 ce                	add    %esi,%ecx
4758f2:	e8 6a a6 fa ff       	call   0x41ff61
4758f7:	eb 0c                	jmp    0x475905
4758f9:	8d 44 24 18          	lea    0x18(%esp),%eax
4758fd:	8b cf                	mov    %edi,%ecx
4758ff:	50                   	push   %eax
475900:	e8 96 4a ff ff       	call   0x46a39b
475905:	8d 4c 24 18          	lea    0x18(%esp),%ecx
475909:	e8 56 01 f9 ff       	call   0x405a64
47590e:	5f                   	pop    %edi
47590f:	5e                   	pop    %esi
475910:	33 c0                	xor    %eax,%eax
475912:	5b                   	pop    %ebx
475913:	8b e5                	mov    %ebp,%esp
475915:	5d                   	pop    %ebp
475916:	c2 08 00             	ret    $0x8
475919:	55                   	push   %ebp
47591a:	8b ec                	mov    %esp,%ebp
47591c:	83 e4 f8             	and    $0xfffffff8,%esp
47591f:	83 ec 3c             	sub    $0x3c,%esp
475922:	8b 45 08             	mov    0x8(%ebp),%eax
475925:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
47592a:	53                   	push   %ebx
47592b:	56                   	push   %esi
47592c:	8b 40 04             	mov    0x4(%eax),%eax
47592f:	57                   	push   %edi
475930:	8b f9                	mov    %ecx,%edi
475932:	8b 30                	mov    (%eax),%esi
475934:	8b ce                	mov    %esi,%ecx
475936:	83 7e 0c 0e          	cmpl   $0xe,0xc(%esi)
47593a:	75 11                	jne    0x47594d
47593c:	8d 44 24 38          	lea    0x38(%esp),%eax
475940:	33 db                	xor    %ebx,%ebx
475942:	50                   	push   %eax
475943:	43                   	inc    %ebx
475944:	e8 5b 22 ff ff       	call   0x467ba4
475949:	8b c8                	mov    %eax,%ecx
47594b:	eb 2c                	jmp    0x475979
47594d:	6a 02                	push   $0x2
47594f:	5b                   	pop    %ebx
475950:	e8 42 40 f9 ff       	call   0x409997
475955:	8b 4e 08             	mov    0x8(%esi),%ecx
475958:	8b 01                	mov    (%ecx),%eax
47595a:	89 44 24 28          	mov    %eax,0x28(%esp)
47595e:	8b 41 04             	mov    0x4(%ecx),%eax
475961:	89 44 24 2c          	mov    %eax,0x2c(%esp)
475965:	8b 41 08             	mov    0x8(%ecx),%eax
475968:	89 44 24 30          	mov    %eax,0x30(%esp)
47596c:	8b 41 0c             	mov    0xc(%ecx),%eax
47596f:	8d 4c 24 28          	lea    0x28(%esp),%ecx
475973:	89 44 24 34          	mov    %eax,0x34(%esp)
475977:	ff 00                	incl   (%eax)
475979:	8b 01                	mov    (%ecx),%eax
47597b:	89 44 24 18          	mov    %eax,0x18(%esp)
47597f:	8b 41 04             	mov    0x4(%ecx),%eax
475982:	89 44 24 1c          	mov    %eax,0x1c(%esp)
475986:	8b 41 08             	mov    0x8(%ecx),%eax
475989:	89 44 24 20          	mov    %eax,0x20(%esp)
47598d:	8b 41 0c             	mov    0xc(%ecx),%eax
475990:	89 44 24 24          	mov    %eax,0x24(%esp)
475994:	ff 00                	incl   (%eax)
475996:	f6 c3 02             	test   $0x2,%bl
475999:	74 0c                	je     0x4759a7
47599b:	8d 4c 24 28          	lea    0x28(%esp),%ecx
47599f:	83 e3 fd             	and    $0xfffffffd,%ebx
4759a2:	e8 bd 00 f9 ff       	call   0x405a64
4759a7:	f6 c3 01             	test   $0x1,%bl
4759aa:	74 09                	je     0x4759b5
4759ac:	8d 4c 24 38          	lea    0x38(%esp),%ecx
4759b0:	e8 af 00 f9 ff       	call   0x405a64
4759b5:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4759b9:	e8 f1 25 f9 ff       	call   0x407faf
4759be:	ff 74 24 1c          	push   0x1c(%esp)
4759c2:	ff 74 24 1c          	push   0x1c(%esp)
4759c6:	ff 15 7c f6 48 00    	call   *0x48f67c
4759cc:	8d 44 24 18          	lea    0x18(%esp),%eax
4759d0:	8b cf                	mov    %edi,%ecx
4759d2:	50                   	push   %eax
4759d3:	e8 e5 45 f9 ff       	call   0x409fbd
4759d8:	85 c0                	test   %eax,%eax
4759da:	74 41                	je     0x475a1d