475426:	7f 04                	jg     0x47542c
475428:	89 3e                	mov    %edi,(%esi)
47542a:	eb 03                	jmp    0x47542f
47542c:	83 0e ff             	orl    $0xffffffff,(%esi)
47542f:	5f                   	pop    %edi
475430:	5e                   	pop    %esi
475431:	33 c0                	xor    %eax,%eax
475433:	5b                   	pop    %ebx
475434:	8b e5                	mov    %ebp,%esp
475436:	5d                   	pop    %ebp
475437:	c2 08 00             	ret    $0x8
47543a:	55                   	push   %ebp
47543b:	8b ec                	mov    %esp,%ebp
47543d:	83 ec 20             	sub    $0x20,%esp
475440:	53                   	push   %ebx
475441:	56                   	push   %esi
475442:	57                   	push   %edi
475443:	8d 45 f8             	lea    -0x8(%ebp),%eax
475446:	8b f1                	mov    %ecx,%esi
475448:	50                   	push   %eax
475449:	ff 15 bc f5 48 00    	call   *0x48f5bc
47544f:	ff 15 34 f7 48 00    	call   *0x48f734
475455:	50                   	push   %eax
475456:	8d 45 f0             	lea    -0x10(%ebp),%eax
475459:	50                   	push   %eax
47545a:	ff b6 00 01 00 00    	push   0x100(%esi)
475460:	e8 2f e8 ff ff       	call   0x473c94
475465:	8b 45 f0             	mov    -0x10(%ebp),%eax
475468:	8b 7d 08             	mov    0x8(%ebp),%edi
47546b:	29 45 f8             	sub    %eax,-0x8(%ebp)
47546e:	8b 45 f4             	mov    -0xc(%ebp),%eax
475471:	29 45 fc             	sub    %eax,-0x4(%ebp)
475474:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
475478:	75 61                	jne    0x4754db
47547a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47547d:	e8 ac 3f f9 ff       	call   0x40942e
475482:	33 db                	xor    %ebx,%ebx
475484:	8b f0                	mov    %eax,%esi
475486:	6a 02                	push   $0x2
475488:	43                   	inc    %ebx
475489:	53                   	push   %ebx
47548a:	56                   	push   %esi
47548b:	e8 20 3d f9 ff       	call   0x4091b0
475490:	8b 4d f8             	mov    -0x8(%ebp),%ecx
475493:	8d 45 e0             	lea    -0x20(%ebp),%eax
475496:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
47549a:	6a 00                	push   $0x0
47549c:	53                   	push   %ebx
47549d:	50                   	push   %eax
47549e:	56                   	push   %esi
47549f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4754a2:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4754a5:	e8 96 3b f9 ff       	call   0x409040
4754aa:	83 c4 1c             	add    $0x1c,%esp
4754ad:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4754b0:	e8 6b 45 f9 ff       	call   0x409a20
4754b5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4754b8:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4754bc:	53                   	push   %ebx
4754bd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4754c0:	8d 45 e0             	lea    -0x20(%ebp),%eax
4754c3:	53                   	push   %ebx
4754c4:	50                   	push   %eax
4754c5:	56                   	push   %esi
4754c6:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4754c9:	e8 72 3b f9 ff       	call   0x409040
4754ce:	83 c4 10             	add    $0x10,%esp
4754d1:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4754d4:	e8 47 45 f9 ff       	call   0x409a20
4754d9:	eb 66                	jmp    0x475541
4754db:	8b 47 04             	mov    0x4(%edi),%eax
4754de:	8b 18                	mov    (%eax),%ebx
4754e0:	8b cb                	mov    %ebx,%ecx
4754e2:	e8 13 11 fe ff       	call   0x4565fa
4754e7:	84 c0                	test   %al,%al
4754e9:	75 12                	jne    0x4754fd
4754eb:	8b 06                	mov    (%esi),%eax
4754ed:	6a 00                	push   $0x0
4754ef:	6a 01                	push   $0x1
4754f1:	8b 48 04             	mov    0x4(%eax),%ecx
4754f4:	03 ce                	add    %esi,%ecx
4754f6:	e8 a8 15 fe ff       	call   0x456aa3
4754fb:	eb 44                	jmp    0x475541
4754fd:	8b cb                	mov    %ebx,%ecx
4754ff:	e8 98 47 f9 ff       	call   0x409c9c
475504:	85 c0                	test   %eax,%eax
475506:	75 16                	jne    0x47551e
475508:	8b 75 0c             	mov    0xc(%ebp),%esi
47550b:	8b ce                	mov    %esi,%ecx
47550d:	8b 7d f8             	mov    -0x8(%ebp),%edi
475510:	e8 0b 45 f9 ff       	call   0x409a20
475515:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
47551c:	eb 21                	jmp    0x47553f
47551e:	8b 47 04             	mov    0x4(%edi),%eax
475521:	8b 08                	mov    (%eax),%ecx
475523:	e8 74 47 f9 ff       	call   0x409c9c
475528:	33 db                	xor    %ebx,%ebx
47552a:	43                   	inc    %ebx
47552b:	3b c3                	cmp    %ebx,%eax
47552d:	75 12                	jne    0x475541
47552f:	8b 75 0c             	mov    0xc(%ebp),%esi
475532:	8b ce                	mov    %esi,%ecx
475534:	8b 7d fc             	mov    -0x4(%ebp),%edi
475537:	e8 e4 44 f9 ff       	call   0x409a20
47553c:	89 5e 0c             	mov    %ebx,0xc(%esi)
47553f:	89 3e                	mov    %edi,(%esi)
475541:	5f                   	pop    %edi
475542:	5e                   	pop    %esi
475543:	33 c0                	xor    %eax,%eax
475545:	5b                   	pop    %ebx
475546:	8b e5                	mov    %ebp,%esp
475548:	5d                   	pop    %ebp
475549:	c2 08 00             	ret    $0x8
47554c:	55                   	push   %ebp
47554d:	8b ec                	mov    %esp,%ebp
47554f:	56                   	push   %esi
475550:	8b 75 08             	mov    0x8(%ebp),%esi
475553:	83 c8 ff             	or     $0xffffffff,%eax
475556:	57                   	push   %edi
475557:	8b f9                	mov    %ecx,%edi
475559:	83 7e 08 03          	cmpl   $0x3,0x8(%esi)
47555d:	75 0b                	jne    0x47556a
47555f:	8b 46 04             	mov    0x4(%esi),%eax
475562:	8b 48 08             	mov    0x8(%eax),%ecx
475565:	e8 32 47 f9 ff       	call   0x409c9c
47556a:	8b 56 04             	mov    0x4(%esi),%edx
47556d:	6a 00                	push   $0x0
47556f:	50                   	push   %eax
475570:	8b 4a 04             	mov    0x4(%edx),%ecx
475573:	8b 32                	mov    (%edx),%esi
475575:	e8 22 47 f9 ff       	call   0x409c9c
47557a:	50                   	push   %eax
47557b:	8b ce                	mov    %esi,%ecx
47557d:	e8 1a 47 f9 ff       	call   0x409c9c
475582:	50                   	push   %eax
475583:	8b cf                	mov    %edi,%ecx
475585:	e8 27 1e 00 00       	call   0x4773b1
47558a:	5f                   	pop    %edi
47558b:	33 c0                	xor    %eax,%eax
47558d:	5e                   	pop    %esi
47558e:	5d                   	pop    %ebp
47558f:	c2 08 00             	ret    $0x8
475592:	55                   	push   %ebp
475593:	8b ec                	mov    %esp,%ebp
475595:	8b 45 08             	mov    0x8(%ebp),%eax
475598:	56                   	push   %esi
475599:	8b 40 04             	mov    0x4(%eax),%eax
47559c:	8b 30                	mov    (%eax),%esi
47559e:	8b ce                	mov    %esi,%ecx
4755a0:	e8 f2 43 f9 ff       	call   0x409997
4755a5:	8b 46 08             	mov    0x8(%esi),%eax
4755a8:	8b 08                	mov    (%eax),%ecx
4755aa:	e8 46 f9 fe ff       	call   0x464ef5
4755af:	84 c0                	test   %al,%al
4755b1:	75 14                	jne    0x4755c7
4755b3:	8b 75 0c             	mov    0xc(%ebp),%esi
4755b6:	8b ce                	mov    %esi,%ecx
4755b8:	e8 63 44 f9 ff       	call   0x409a20
4755bd:	83 26 00             	andl   $0x0,(%esi)
4755c0:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4755c7:	33 c0                	xor    %eax,%eax
4755c9:	5e                   	pop    %esi
4755ca:	5d                   	pop    %ebp
4755cb:	c2 08 00             	ret    $0x8
4755ce:	55                   	push   %ebp
4755cf:	8b ec                	mov    %esp,%ebp
4755d1:	51                   	push   %ecx
4755d2:	8b 45 08             	mov    0x8(%ebp),%eax
4755d5:	57                   	push   %edi
4755d6:	33 ff                	xor    %edi,%edi
4755d8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4755db:	47                   	inc    %edi
4755dc:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
4755e0:	72 14                	jb     0x4755f6
4755e2:	8b 40 04             	mov    0x4(%eax),%eax
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