47831d:	57                   	push   %edi
47831e:	ff 33                	push   (%ebx)
478320:	50                   	push   %eax
478321:	50                   	push   %eax
478322:	ff 15 ac f1 48 00    	call   *0x48f1ac
478328:	89 45 08             	mov    %eax,0x8(%ebp)
47832b:	85 c0                	test   %eax,%eax
47832d:	75 0a                	jne    0x478339
47832f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478332:	e8 f8 d6 f8 ff       	call   0x405a2f
478337:	eb 31                	jmp    0x47836a
478339:	56                   	push   %esi
47833a:	50                   	push   %eax
47833b:	e8 b6 8c fa ff       	call   0x420ff6
478340:	59                   	pop    %ecx
478341:	8b f0                	mov    %eax,%esi
478343:	33 c0                	xor    %eax,%eax
478345:	50                   	push   %eax
478346:	50                   	push   %eax
478347:	ff 75 08             	push   0x8(%ebp)
47834a:	56                   	push   %esi
47834b:	57                   	push   %edi
47834c:	ff 33                	push   (%ebx)
47834e:	50                   	push   %eax
47834f:	50                   	push   %eax
478350:	ff 15 ac f1 48 00    	call   *0x48f1ac
478356:	48                   	dec    %eax
478357:	50                   	push   %eax
478358:	51                   	push   %ecx
478359:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47835c:	56                   	push   %esi
47835d:	e8 62 d7 f8 ff       	call   0x405ac4
478362:	56                   	push   %esi
478363:	e8 04 8d fa ff       	call   0x42106c
478368:	59                   	pop    %ecx
478369:	5e                   	pop    %esi
47836a:	5f                   	pop    %edi
47836b:	5b                   	pop    %ebx
47836c:	5d                   	pop    %ebp
47836d:	c2 08 00             	ret    $0x8
478370:	55                   	push   %ebp
478371:	8b ec                	mov    %esp,%ebp
478373:	8b 45 08             	mov    0x8(%ebp),%eax
478376:	8b 40 04             	mov    0x4(%eax),%eax
478379:	8b 08                	mov    (%eax),%ecx
47837b:	83 79 0c 06          	cmpl   $0x6,0xc(%ecx)
47837f:	75 02                	jne    0x478383
478381:	8b 09                	mov    (%ecx),%ecx
478383:	e8 55 10 f9 ff       	call   0x4093dd
478388:	84 c0                	test   %al,%al
47838a:	75 16                	jne    0x4783a2
47838c:	56                   	push   %esi
47838d:	8b 75 0c             	mov    0xc(%ebp),%esi
478390:	8b ce                	mov    %esi,%ecx
478392:	e8 89 16 f9 ff       	call   0x409a20
478397:	83 26 00             	andl   $0x0,(%esi)
47839a:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4783a1:	5e                   	pop    %esi
4783a2:	33 c0                	xor    %eax,%eax
4783a4:	5d                   	pop    %ebp
4783a5:	c2 08 00             	ret    $0x8
4783a8:	55                   	push   %ebp
4783a9:	8b ec                	mov    %esp,%ebp
4783ab:	83 e4 f8             	and    $0xfffffff8,%esp
4783ae:	83 ec 44             	sub    $0x44,%esp
4783b1:	53                   	push   %ebx
4783b2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4783b5:	56                   	push   %esi
4783b6:	57                   	push   %edi
4783b7:	8b f1                	mov    %ecx,%esi
4783b9:	33 ff                	xor    %edi,%edi
4783bb:	8b cb                	mov    %ebx,%ecx
4783bd:	89 74 24 10          	mov    %esi,0x10(%esp)
4783c1:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4783c5:	e8 56 16 f9 ff       	call   0x409a20
4783ca:	57                   	push   %edi
4783cb:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
4783d2:	89 3b                	mov    %edi,(%ebx)
4783d4:	89 7c 24 18          	mov    %edi,0x18(%esp)
4783d8:	ff 15 60 f8 48 00    	call   *0x48f860
4783de:	83 f8 01             	cmp    $0x1,%eax
4783e1:	75 06                	jne    0x4783e9
4783e3:	ff 15 64 f8 48 00    	call   *0x48f864
4783e9:	8d 44 24 20          	lea    0x20(%esp),%eax
4783ed:	50                   	push   %eax
4783ee:	ff 15 7c f4 48 00    	call   *0x48f47c
4783f4:	89 7c 24 28          	mov    %edi,0x28(%esp)
4783f8:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
4783fc:	8b 7d 08             	mov    0x8(%ebp),%edi
4783ff:	6a 09                	push   $0x9
478401:	58                   	pop    %eax
478402:	66 89 44 24 20       	mov    %ax,0x20(%esp)
478407:	8b 47 08             	mov    0x8(%edi),%eax
47840a:	48                   	dec    %eax
47840b:	0f 84 fe 01 00 00    	je     0x47860f
478411:	48                   	dec    %eax
478412:	0f 84 cc 01 00 00    	je     0x4785e4
478418:	48                   	dec    %eax
478419:	74 6c                	je     0x478487
47841b:	48                   	dec    %eax
47841c:	0f 85 98 02 00 00    	jne    0x4786ba
478422:	8b 47 04             	mov    0x4(%edi),%eax
478425:	8b 70 0c             	mov    0xc(%eax),%esi
478428:	8b ce                	mov    %esi,%ecx
47842a:	e8 68 15 f9 ff       	call   0x409997
47842f:	8b 46 08             	mov    0x8(%esi),%eax
478432:	8b 00                	mov    (%eax),%eax
478434:	89 44 24 18          	mov    %eax,0x18(%esp)
478438:	8b 47 04             	mov    0x4(%edi),%eax
47843b:	8b 70 08             	mov    0x8(%eax),%esi
47843e:	8b ce                	mov    %esi,%ecx
478440:	e8 52 15 f9 ff       	call   0x409997
478445:	8b 46 08             	mov    0x8(%esi),%eax
478448:	8b 18                	mov    (%eax),%ebx
47844a:	8b 47 04             	mov    0x4(%edi),%eax
47844d:	8b 70 04             	mov    0x4(%eax),%esi
478450:	8b ce                	mov    %esi,%ecx
478452:	e8 40 15 f9 ff       	call   0x409997
478457:	8b 46 08             	mov    0x8(%esi),%eax
47845a:	8b 38                	mov    (%eax),%edi
47845c:	8b 45 08             	mov    0x8(%ebp),%eax
47845f:	8b 40 04             	mov    0x4(%eax),%eax
478462:	8b 30                	mov    (%eax),%esi
478464:	8b ce                	mov    %esi,%ecx
478466:	e8 2c 15 f9 ff       	call   0x409997
47846b:	ff 75 0c             	push   0xc(%ebp)
47846e:	ff 74 24 1c          	push   0x1c(%esp)
478472:	53                   	push   %ebx
478473:	8b 46 08             	mov    0x8(%esi),%eax
478476:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
47847a:	57                   	push   %edi
47847b:	ff 30                	push   (%eax)
47847d:	e8 f0 15 00 00       	call   0x479a72
478482:	e9 33 02 00 00       	jmp    0x4786ba
478487:	8b 47 04             	mov    0x4(%edi),%eax
47848a:	8b 58 08             	mov    0x8(%eax),%ebx
47848d:	8b cb                	mov    %ebx,%ecx
47848f:	e8 ae 17 f9 ff       	call   0x409c42
478494:	8b cb                	mov    %ebx,%ecx
478496:	84 c0                	test   %al,%al
478498:	0f 84 ff 00 00 00    	je     0x47859d
47849e:	e8 f9 17 f9 ff       	call   0x409c9c
4784a3:	85 c0                	test   %eax,%eax
4784a5:	7e 3a                	jle    0x4784e1
4784a7:	8b 47 04             	mov    0x4(%edi),%eax
4784aa:	8b b6 a8 01 00 00    	mov    0x1a8(%esi),%esi
4784b0:	8b 48 08             	mov    0x8(%eax),%ecx
4784b3:	e8 e4 17 f9 ff       	call   0x409c9c
4784b8:	3b c6                	cmp    %esi,%eax
4784ba:	7f 21                	jg     0x4784dd
4784bc:	8b 47 04             	mov    0x4(%edi),%eax
4784bf:	8b 48 08             	mov    0x8(%eax),%ecx
4784c2:	e8 d5 17 f9 ff       	call   0x409c9c
4784c7:	8b 74 24 10          	mov    0x10(%esp),%esi
4784cb:	8b 8e a4 01 00 00    	mov    0x1a4(%esi),%ecx
4784d1:	8b 44 81 fc          	mov    -0x4(%ecx,%eax,4),%eax
4784d5:	8b 18                	mov    (%eax),%ebx
4784d7:	89 5c 24 18          	mov    %ebx,0x18(%esp)
4784db:	eb 09                	jmp    0x4784e6
4784dd:	8b 74 24 10          	mov    0x10(%esp),%esi
4784e1:	83 64 24 18 00       	andl   $0x0,0x18(%esp)
4784e6:	6a 3c                	push   $0x3c
4784e8:	e8 09 8b fa ff       	call   0x420ff6
4784ed:	89 44 24 20          	mov    %eax,0x20(%esp)
4784f1:	59                   	pop    %ecx
4784f2:	85 c0                	test   %eax,%eax
4784f4:	74 48                	je     0x47853e
4784f6:	8b 4f 04             	mov    0x4(%edi),%ecx
4784f9:	6a 29                	push   $0x29
4784fb:	8b 71 04             	mov    0x4(%ecx),%esi
4784fe:	8b ce                	mov    %esi,%ecx
478500:	e8 a9 18 f9 ff       	call   0x409dae
478505:	84 c0                	test   %al,%al
478507:	74 04                	je     0x47850d
478509:	33 db                	xor    %ebx,%ebx
47850b:	eb 0c                	jmp    0x478519
47850d:	8b ce                	mov    %esi,%ecx
47850f:	e8 83 14 f9 ff       	call   0x409997
478514:	8b 46 08             	mov    0x8(%esi),%eax
478517:	8b 18                	mov    (%eax),%ebx
478519:	8b 47 04             	mov    0x4(%edi),%eax
47851c:	8b 30                	mov    (%eax),%esi
47851e:	8b ce                	mov    %esi,%ecx
478520:	e8 72 14 f9 ff       	call   0x409997
478525:	ff 74 24 18          	push   0x18(%esp)
478529:	8b 46 08             	mov    0x8(%esi),%eax
47852c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
478530:	53                   	push   %ebx
478531:	ff 30                	push   (%eax)
478533:	e8 25 55 fe ff       	call   0x45da5d
478538:	8b 74 24 10          	mov    0x10(%esp),%esi
47853c:	eb 02                	jmp    0x478540
47853e:	33 c0                	xor    %eax,%eax
478540:	89 44 24 28          	mov    %eax,0x28(%esp)
478544:	8b 40 04             	mov    0x4(%eax),%eax
478547:	85 c0                	test   %eax,%eax
478549:	78 21                	js     0x47856c
47854b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47854e:	8d 44 24 20          	lea    0x20(%esp),%eax
478552:	6a 04                	push   $0x4
478554:	5b                   	pop    %ebx
478555:	50                   	push   %eax
478556:	e8 a9 f2 fe ff       	call   0x467804
47855b:	83 64 24 48 00       	andl   $0x0,0x48(%esp)
478560:	8d 4c 24 40          	lea    0x40(%esp),%ecx
478564:	50                   	push   %eax
478565:	e8 56 15 f9 ff       	call   0x409ac0
47856a:	eb 18                	jmp    0x478584
47856c:	83 64 24 38 00       	andl   $0x0,0x38(%esp)
478571:	6a 08                	push   $0x8
478573:	89 44 24 18          	mov    %eax,0x18(%esp)
478577:	5b                   	pop    %ebx
478578:	89 44 24 30          	mov    %eax,0x30(%esp)
47857c:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
478583:	00
478584:	f6 c3 08             	test   $0x8,%bl
478587:	74 0c                	je     0x478595
478589:	8d 4c 24 30          	lea    0x30(%esp),%ecx
47858d:	83 e3 f7             	and    $0xfffffff7,%ebx
478590:	e8 8b 14 f9 ff       	call   0x409a20
478595:	f6 c3 04             	test   $0x4,%bl
478598:	e9 fc 00 00 00       	jmp    0x478699
47859d:	e8 f5 13 f9 ff       	call   0x409997
4785a2:	8b 43 08             	mov    0x8(%ebx),%eax
4785a5:	8b 18                	mov    (%eax),%ebx
4785a7:	8b 47 04             	mov    0x4(%edi),%eax
4785aa:	8b 70 04             	mov    0x4(%eax),%esi
4785ad:	8b ce                	mov    %esi,%ecx
4785af:	e8 e3 13 f9 ff       	call   0x409997
4785b4:	8b 46 08             	mov    0x8(%esi),%eax
4785b7:	8b 38                	mov    (%eax),%edi
4785b9:	8b 45 08             	mov    0x8(%ebp),%eax
4785bc:	8b 40 04             	mov    0x4(%eax),%eax
4785bf:	8b 30                	mov    (%eax),%esi
4785c1:	8b ce                	mov    %esi,%ecx
4785c3:	e8 cf 13 f9 ff       	call   0x409997
4785c8:	ff 75 0c             	push   0xc(%ebp)
4785cb:	8b 46 08             	mov    0x8(%esi),%eax
4785ce:	8b 74 24 14          	mov    0x14(%esp),%esi
4785d2:	8b ce                	mov    %esi,%ecx
4785d4:	6a 00                	push   $0x0
4785d6:	53                   	push   %ebx
4785d7:	57                   	push   %edi
4785d8:	ff 30                	push   (%eax)
4785da:	e8 93 14 00 00       	call   0x479a72
4785df:	e9 c0 00 00 00       	jmp    0x4786a4
4785e4:	8b 47 04             	mov    0x4(%edi),%eax
4785e7:	8b 70 04             	mov    0x4(%eax),%esi
4785ea:	8b ce                	mov    %esi,%ecx
4785ec:	e8 a6 13 f9 ff       	call   0x409997
4785f1:	8b 46 08             	mov    0x8(%esi),%eax
4785f4:	8b 38                	mov    (%eax),%edi
4785f6:	8b 45 08             	mov    0x8(%ebp),%eax
4785f9:	8b 40 04             	mov    0x4(%eax),%eax
4785fc:	8b 30                	mov    (%eax),%esi
4785fe:	8b ce                	mov    %esi,%ecx
478600:	e8 92 13 f9 ff       	call   0x409997
478605:	53                   	push   %ebx
478606:	6a 00                	push   $0x0
478608:	6a 00                	push   $0x0
47860a:	e9 64 fe ff ff       	jmp    0x478473
47860f:	6a 3c                	push   $0x3c
478611:	e8 e0 89 fa ff       	call   0x420ff6
478616:	8b d8                	mov    %eax,%ebx
478618:	59                   	pop    %ecx
478619:	85 db                	test   %ebx,%ebx
47861b:	74 22                	je     0x47863f
47861d:	8b 4f 04             	mov    0x4(%edi),%ecx
478620:	8b 31                	mov    (%ecx),%esi
478622:	8b ce                	mov    %esi,%ecx
478624:	e8 6e 13 f9 ff       	call   0x409997
478629:	8b 4e 08             	mov    0x8(%esi),%ecx
47862c:	6a 00                	push   $0x0
47862e:	6a 00                	push   $0x0
478630:	ff 31                	push   (%ecx)
478632:	8b cb                	mov    %ebx,%ecx
478634:	e8 24 54 fe ff       	call   0x45da5d
478639:	8b 74 24 10          	mov    0x10(%esp),%esi
47863d:	eb 02                	jmp    0x478641
47863f:	33 c0                	xor    %eax,%eax
478641:	89 44 24 28          	mov    %eax,0x28(%esp)
478645:	8b 40 04             	mov    0x4(%eax),%eax
478648:	85 c0                	test   %eax,%eax
47864a:	78 21                	js     0x47866d
47864c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47864f:	8d 44 24 20          	lea    0x20(%esp),%eax
478653:	33 db                	xor    %ebx,%ebx
478655:	50                   	push   %eax
478656:	43                   	inc    %ebx
478657:	e8 a8 f1 fe ff       	call   0x467804
47865c:	83 64 24 48 00       	andl   $0x0,0x48(%esp)
478661:	8d 4c 24 40          	lea    0x40(%esp),%ecx
478665:	50                   	push   %eax
478666:	e8 55 14 f9 ff       	call   0x409ac0
47866b:	eb 18                	jmp    0x478685
47866d:	83 64 24 38 00       	andl   $0x0,0x38(%esp)
478672:	6a 02                	push   $0x2
478674:	89 44 24 18          	mov    %eax,0x18(%esp)
478678:	5b                   	pop    %ebx
478679:	89 44 24 30          	mov    %eax,0x30(%esp)
47867d:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
478684:	00
478685:	f6 c3 02             	test   $0x2,%bl
478688:	74 0c                	je     0x478696
47868a:	8d 4c 24 30          	lea    0x30(%esp),%ecx
47868e:	83 e3 fd             	and    $0xfffffffd,%ebx
478691:	e8 8a 13 f9 ff       	call   0x409a20
478696:	f6 c3 01             	test   $0x1,%bl
478699:	74 09                	je     0x4786a4
47869b:	8d 4c 24 40          	lea    0x40(%esp),%ecx
47869f:	e8 7c 13 f9 ff       	call   0x409a20
4786a4:	8b 44 24 14          	mov    0x14(%esp),%eax
4786a8:	85 c0                	test   %eax,%eax
4786aa:	79 0e                	jns    0x4786ba
4786ac:	6a 00                	push   $0x0
4786ae:	6a 00                	push   $0x0
4786b0:	6a 00                	push   $0x0
4786b2:	50                   	push   %eax
4786b3:	8b ce                	mov    %esi,%ecx
4786b5:	e8 21 10 00 00       	call   0x4796db
4786ba:	8d 44 24 20          	lea    0x20(%esp),%eax
4786be:	50                   	push   %eax
4786bf:	ff 15 5c f4 48 00    	call   *0x48f45c
4786c5:	5f                   	pop    %edi
4786c6:	5e                   	pop    %esi
4786c7:	33 c0                	xor    %eax,%eax
4786c9:	5b                   	pop    %ebx
4786ca:	8b e5                	mov    %ebp,%esp
4786cc:	5d                   	pop    %ebp
4786cd:	c2 08 00             	ret    $0x8
4786d0:	55                   	push   %ebp
4786d1:	8b ec                	mov    %esp,%ebp
4786d3:	83 e4 f8             	and    $0xfffffff8,%esp
4786d6:	83 ec 4c             	sub    $0x4c,%esp
4786d9:	53                   	push   %ebx
4786da:	56                   	push   %esi
4786db:	57                   	push   %edi
4786dc:	8b 7d 08             	mov    0x8(%ebp),%edi
4786df:	8b d9                	mov    %ecx,%ebx
4786e1:	8b 47 04             	mov    0x4(%edi),%eax
4786e4:	8b 30                	mov    (%eax),%esi
4786e6:	8b ce                	mov    %esi,%ecx
4786e8:	e8 aa 12 f9 ff       	call   0x409997
4786ed:	8b 46 08             	mov    0x8(%esi),%eax
4786f0:	8b 00                	mov    (%eax),%eax
4786f2:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4786f6:	8b 47 04             	mov    0x4(%edi),%eax
4786f9:	8b 70 04             	mov    0x4(%eax),%esi
4786fc:	8b ce                	mov    %esi,%ecx
4786fe:	e8 94 12 f9 ff       	call   0x409997