46e4fd:	53                   	push   %ebx
46e4fe:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46e502:	e8 85 99 f9 ff       	call   0x407e8c
46e507:	8b 47 0c             	mov    0xc(%edi),%eax
46e50a:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e50e:	2b 47 08             	sub    0x8(%edi),%eax
46e511:	50                   	push   %eax
46e512:	ff 77 08             	push   0x8(%edi)
46e515:	ff 74 24 30          	push   0x30(%esp)
46e519:	e8 8f 93 f9 ff       	call   0x4078ad
46e51e:	8d 44 24 30          	lea    0x30(%esp),%eax
46e522:	50                   	push   %eax
46e523:	8d 4c 24 74          	lea    0x74(%esp),%ecx
46e527:	e8 be ae f9 ff       	call   0x4093ea
46e52c:	6a 01                	push   $0x1
46e52e:	ff 74 24 18          	push   0x18(%esp)
46e532:	8d 44 24 78          	lea    0x78(%esp),%eax
46e536:	6a 02                	push   $0x2
46e538:	50                   	push   %eax
46e539:	ff 74 24 20          	push   0x20(%esp)
46e53d:	e8 fe aa f9 ff       	call   0x409040
46e542:	83 c4 14             	add    $0x14,%esp
46e545:	8d 4c 24 70          	lea    0x70(%esp),%ecx
46e549:	e8 d2 b4 f9 ff       	call   0x409a20
46e54e:	57                   	push   %edi
46e54f:	8b 7f 10             	mov    0x10(%edi),%edi
46e552:	e8 15 2b fb ff       	call   0x42106c
46e557:	ff 44 24 18          	incl   0x18(%esp)
46e55b:	59                   	pop    %ecx
46e55c:	4e                   	dec    %esi
46e55d:	0f 85 48 ff ff ff    	jne    0x46e4ab
46e563:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e567:	e8 f8 74 f9 ff       	call   0x405a64
46e56c:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e570:	e8 ef 74 f9 ff       	call   0x405a64
46e575:	eb 13                	jmp    0x46e58a
46e577:	8b 54 24 24          	mov    0x24(%esp),%edx
46e57b:	53                   	push   %ebx
46e57c:	6a 01                	push   $0x1
46e57e:	8b 02                	mov    (%edx),%eax
46e580:	8b 48 04             	mov    0x4(%eax),%ecx
46e583:	03 ca                	add    %edx,%ecx
46e585:	e8 19 85 fe ff       	call   0x456aa3
46e58a:	8b 5c 24 28          	mov    0x28(%esp),%ebx
46e58e:	eb 14                	jmp    0x46e5a4
46e590:	8b 54 24 24          	mov    0x24(%esp),%edx
46e594:	6a 00                	push   $0x0
46e596:	6a 01                	push   $0x1
46e598:	8b 02                	mov    (%edx),%eax
46e59a:	8b 48 04             	mov    0x4(%eax),%ecx
46e59d:	03 ca                	add    %edx,%ecx
46e59f:	e8 ff 84 fe ff       	call   0x456aa3
46e5a4:	8b 44 24 2c          	mov    0x2c(%esp),%eax
46e5a8:	ff 08                	decl   (%eax)
46e5aa:	75 0e                	jne    0x46e5ba
46e5ac:	50                   	push   %eax
46e5ad:	e8 ba 2a fb ff       	call   0x42106c
46e5b2:	53                   	push   %ebx
46e5b3:	e8 b4 2a fb ff       	call   0x42106c
46e5b8:	59                   	pop    %ecx
46e5b9:	59                   	pop    %ecx
46e5ba:	8d 4c 24 50          	lea    0x50(%esp),%ecx
46e5be:	e8 a1 74 f9 ff       	call   0x405a64
46e5c3:	5f                   	pop    %edi
46e5c4:	5e                   	pop    %esi
46e5c5:	33 c0                	xor    %eax,%eax
46e5c7:	5b                   	pop    %ebx
46e5c8:	8b e5                	mov    %ebp,%esp
46e5ca:	5d                   	pop    %ebp
46e5cb:	c2 08 00             	ret    $0x8
46e5ce:	55                   	push   %ebp
46e5cf:	8b ec                	mov    %esp,%ebp
46e5d1:	83 e4 f8             	and    $0xfffffff8,%esp
46e5d4:	83 ec 4c             	sub    $0x4c,%esp
46e5d7:	53                   	push   %ebx
46e5d8:	56                   	push   %esi
46e5d9:	57                   	push   %edi
46e5da:	8b f9                	mov    %ecx,%edi
46e5dc:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46e5e0:	e8 e2 91 f9 ff       	call   0x4077c7
46e5e5:	8b 45 08             	mov    0x8(%ebp),%eax
46e5e8:	8b 40 04             	mov    0x4(%eax),%eax
46e5eb:	8b 30                	mov    (%eax),%esi
46e5ed:	8b ce                	mov    %esi,%ecx
46e5ef:	e8 a3 b3 f9 ff       	call   0x409997
46e5f4:	8b 4e 08             	mov    0x8(%esi),%ecx
46e5f7:	8d 54 24 38          	lea    0x38(%esp),%edx
46e5fb:	e8 ae 62 f9 ff       	call   0x4048ae
46e600:	68 fe ff 00 00       	push   $0xfffe
46e605:	e8 ec 29 fb ff       	call   0x420ff6
46e60a:	59                   	pop    %ecx
46e60b:	50                   	push   %eax
46e60c:	8d 4c 24 24          	lea    0x24(%esp),%ecx
46e610:	e8 79 6d f9 ff       	call   0x40538e
46e615:	8b 5c 24 20          	mov    0x20(%esp),%ebx
46e619:	6a 0a                	push   $0xa
46e61b:	5e                   	pop    %esi
46e61c:	ff 74 24 38          	push   0x38(%esp)
46e620:	66 89 73 02          	mov    %si,0x2(%ebx)
46e624:	68 ff 7f 00 00       	push   $0x7fff
46e629:	53                   	push   %ebx
46e62a:	ff 15 a4 f2 48 00    	call   *0x48f2a4
46e630:	89 44 24 18          	mov    %eax,0x18(%esp)
46e634:	85 c0                	test   %eax,%eax
46e636:	0f 84 66 01 00 00    	je     0x46e7a2
46e63c:	66 39 73 02          	cmp    %si,0x2(%ebx)
46e640:	0f 84 5c 01 00 00    	je     0x46e7a2
46e646:	6a 0c                	push   $0xc
46e648:	e8 a9 29 fb ff       	call   0x420ff6
46e64d:	8b f8                	mov    %eax,%edi
46e64f:	33 f6                	xor    %esi,%esi
46e651:	89 7c 24 20          	mov    %edi,0x20(%esp)
46e655:	59                   	pop    %ecx
46e656:	85 ff                	test   %edi,%edi
46e658:	74 0a                	je     0x46e664
46e65a:	89 37                	mov    %esi,(%edi)
46e65c:	89 77 04             	mov    %esi,0x4(%edi)
46e65f:	89 77 08             	mov    %esi,0x8(%edi)
46e662:	eb 06                	jmp    0x46e66a
46e664:	8b fe                	mov    %esi,%edi
46e666:	89 74 24 1c          	mov    %esi,0x1c(%esp)
46e66a:	8b 54 24 18          	mov    0x18(%esp),%edx
46e66e:	8b cf                	mov    %edi,%ecx
46e670:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e674:	8b c6                	mov    %esi,%eax
46e676:	89 37                	mov    %esi,(%edi)
46e678:	8b de                	mov    %esi,%ebx
46e67a:	89 44 24 10          	mov    %eax,0x10(%esp)
46e67e:	85 d2                	test   %edx,%edx
46e680:	7e 54                	jle    0x46e6d6
46e682:	8b 7c 24 20          	mov    0x20(%esp),%edi
46e686:	66 39 34 5f          	cmp    %si,(%edi,%ebx,2)
46e68a:	75 41                	jne    0x46e6cd
46e68c:	40                   	inc    %eax
46e68d:	89 59 04             	mov    %ebx,0x4(%ecx)
46e690:	6a 0d                	push   $0xd
46e692:	89 44 24 14          	mov    %eax,0x14(%esp)
46e696:	58                   	pop    %eax
46e697:	6a 0c                	push   $0xc
46e699:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
46e69d:	e8 54 29 fb ff       	call   0x420ff6
46e6a2:	59                   	pop    %ecx
46e6a3:	85 c0                	test   %eax,%eax
46e6a5:	74 0a                	je     0x46e6b1
46e6a7:	89 30                	mov    %esi,(%eax)
46e6a9:	89 70 04             	mov    %esi,0x4(%eax)
46e6ac:	89 70 08             	mov    %esi,0x8(%eax)
46e6af:	eb 02                	jmp    0x46e6b3
46e6b1:	8b c6                	mov    %esi,%eax
46e6b3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
46e6b7:	8b 54 24 18          	mov    0x18(%esp),%edx
46e6bb:	89 41 08             	mov    %eax,0x8(%ecx)
46e6be:	8b c8                	mov    %eax,%ecx
46e6c0:	8d 43 01             	lea    0x1(%ebx),%eax
46e6c3:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e6c7:	89 01                	mov    %eax,(%ecx)
46e6c9:	8b 44 24 10          	mov    0x10(%esp),%eax
46e6cd:	43                   	inc    %ebx
46e6ce:	3b da                	cmp    %edx,%ebx
46e6d0:	7c b4                	jl     0x46e686
46e6d2:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
46e6d6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46e6d9:	8b cb                	mov    %ebx,%ecx
46e6db:	e8 4e ad f9 ff       	call   0x40942e
46e6e0:	83 7b 0c 05          	cmpl   $0x5,0xc(%ebx)
46e6e4:	75 08                	jne    0x46e6ee
46e6e6:	8b 0b                	mov    (%ebx),%ecx
46e6e8:	89 4c 24 14          	mov    %ecx,0x14(%esp)
46e6ec:	eb 06                	jmp    0x46e6f4
46e6ee:	8b ce                	mov    %esi,%ecx
46e6f0:	89 74 24 14          	mov    %esi,0x14(%esp)
46e6f4:	8b 5c 24 10          	mov    0x10(%esp),%ebx
46e6f8:	8d 43 01             	lea    0x1(%ebx),%eax
46e6fb:	50                   	push   %eax
46e6fc:	6a 01                	push   $0x1
46e6fe:	51                   	push   %ecx
46e6ff:	e8 ac aa f9 ff       	call   0x4091b0
46e704:	33 c0                	xor    %eax,%eax
46e706:	89 5c 24 34          	mov    %ebx,0x34(%esp)
46e70a:	40                   	inc    %eax
46e70b:	89 74 24 3c          	mov    %esi,0x3c(%esp)
46e70f:	56                   	push   %esi
46e710:	50                   	push   %eax
46e711:	89 44 24 48          	mov    %eax,0x48(%esp)
46e715:	8d 44 24 3c          	lea    0x3c(%esp),%eax
46e719:	50                   	push   %eax
46e71a:	ff 74 24 2c          	push   0x2c(%esp)
46e71e:	e8 1d a9 f9 ff       	call   0x409040
46e723:	83 c4 1c             	add    $0x1c,%esp
46e726:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46e72a:	e8 f1 b2 f9 ff       	call   0x409a20
46e72f:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46e733:	e8 8f 90 f9 ff       	call   0x4077c7
46e738:	85 db                	test   %ebx,%ebx
46e73a:	8b 5c 24 20          	mov    0x20(%esp),%ebx
46e73e:	7e 57                	jle    0x46e797
46e740:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46e744:	e8 a3 97 f9 ff       	call   0x407eec
46e749:	8b 47 04             	mov    0x4(%edi),%eax
46e74c:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46e750:	2b 07                	sub    (%edi),%eax
46e752:	50                   	push   %eax
46e753:	ff 37                	push   (%edi)
46e755:	53                   	push   %ebx
46e756:	e8 52 91 f9 ff       	call   0x4078ad
46e75b:	8d 44 24 28          	lea    0x28(%esp),%eax
46e75f:	50                   	push   %eax
46e760:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
46e764:	e8 81 ac f9 ff       	call   0x4093ea
46e769:	46                   	inc    %esi
46e76a:	8d 44 24 48          	lea    0x48(%esp),%eax
46e76e:	56                   	push   %esi
46e76f:	6a 01                	push   $0x1
46e771:	50                   	push   %eax
46e772:	ff 74 24 20          	push   0x20(%esp)
46e776:	e8 c5 a8 f9 ff       	call   0x409040
46e77b:	83 c4 10             	add    $0x10,%esp
46e77e:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46e782:	e8 99 b2 f9 ff       	call   0x409a20
46e787:	57                   	push   %edi
46e788:	8b 7f 08             	mov    0x8(%edi),%edi
46e78b:	e8 dc 28 fb ff       	call   0x42106c
46e790:	59                   	pop    %ecx
46e791:	3b 74 24 10          	cmp    0x10(%esp),%esi
46e795:	7c a9                	jl     0x46e740
46e797:	8d 4c 24 28          	lea    0x28(%esp),%ecx
46e79b:	e8 c4 72 f9 ff       	call   0x405a64
46e7a0:	eb 10                	jmp    0x46e7b2
46e7a2:	8b 07                	mov    (%edi),%eax
46e7a4:	6a 00                	push   $0x0
46e7a6:	6a 01                	push   $0x1
46e7a8:	8b 48 04             	mov    0x4(%eax),%ecx
46e7ab:	03 cf                	add    %edi,%ecx
46e7ad:	e8 f1 82 fe ff       	call   0x456aa3
46e7b2:	8b 44 24 24          	mov    0x24(%esp),%eax
46e7b6:	ff 08                	decl   (%eax)
46e7b8:	75 0e                	jne    0x46e7c8
46e7ba:	50                   	push   %eax
46e7bb:	e8 ac 28 fb ff       	call   0x42106c
46e7c0:	53                   	push   %ebx
46e7c1:	e8 a6 28 fb ff       	call   0x42106c
46e7c6:	59                   	pop    %ecx
46e7c7:	59                   	pop    %ecx
46e7c8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46e7cc:	e8 93 72 f9 ff       	call   0x405a64
46e7d1:	5f                   	pop    %edi
46e7d2:	5e                   	pop    %esi
46e7d3:	33 c0                	xor    %eax,%eax
46e7d5:	5b                   	pop    %ebx
46e7d6:	8b e5                	mov    %ebp,%esp
46e7d8:	5d                   	pop    %ebp
46e7d9:	c2 08 00             	ret    $0x8
46e7dc:	55                   	push   %ebp
46e7dd:	8b ec                	mov    %esp,%ebp
46e7df:	83 ec 24             	sub    $0x24,%esp
46e7e2:	53                   	push   %ebx
46e7e3:	56                   	push   %esi
46e7e4:	57                   	push   %edi
46e7e5:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e7e8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46e7eb:	8b cf                	mov    %edi,%ecx
46e7ed:	e8 2e b2 f9 ff       	call   0x409a20
46e7f2:	8b 5d 08             	mov    0x8(%ebp),%ebx
46e7f5:	83 27 00             	andl   $0x0,(%edi)
46e7f8:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
46e7ff:	c6 45 0f 00          	movb   $0x0,0xf(%ebp)
46e803:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46e807:	76 11                	jbe    0x46e81a
46e809:	8b 43 04             	mov    0x4(%ebx),%eax
46e80c:	8b 48 0c             	mov    0xc(%eax),%ecx
46e80f:	e8 88 b4 f9 ff       	call   0x409c9c
46e814:	85 c0                	test   %eax,%eax
46e816:	0f 9f 45 0f          	setg   0xf(%ebp)
46e81a:	8b 43 04             	mov    0x4(%ebx),%eax
46e81d:	8b 30                	mov    (%eax),%esi
46e81f:	8b ce                	mov    %esi,%ecx
46e821:	e8 71 b1 f9 ff       	call   0x409997
46e826:	8b 4e 08             	mov    0x8(%esi),%ecx
46e829:	8b 01                	mov    (%ecx),%eax
46e82b:	89 45 dc             	mov    %eax,-0x24(%ebp)
46e82e:	8b 41 04             	mov    0x4(%ecx),%eax
46e831:	89 45 e0             	mov    %eax,-0x20(%ebp)
46e834:	8b 41 08             	mov    0x8(%ecx),%eax
46e837:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46e83a:	8b 41 0c             	mov    0xc(%ecx),%eax
46e83d:	89 45 e8             	mov    %eax,-0x18(%ebp)
46e840:	ff 00                	incl   (%eax)
46e842:	8b 43 04             	mov    0x4(%ebx),%eax
46e845:	8b 30                	mov    (%eax),%esi
46e847:	8b ce                	mov    %esi,%ecx
46e849:	e8 49 b1 f9 ff       	call   0x409997
46e84e:	8b 4e 08             	mov    0x8(%esi),%ecx
46e851:	8d 55 dc             	lea    -0x24(%ebp),%edx
46e854:	e8 55 60 f9 ff       	call   0x4048ae
46e859:	68 fe ff 00 00       	push   $0xfffe
46e85e:	e8 93 27 fb ff       	call   0x420ff6
46e863:	59                   	pop    %ecx
46e864:	50                   	push   %eax
46e865:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46e868:	e8 21 6b f9 ff       	call   0x40538e
46e86d:	8b 43 04             	mov    0x4(%ebx),%eax
46e870:	8b 70 04             	mov    0x4(%eax),%esi
46e873:	8b ce                	mov    %esi,%ecx
46e875:	e8 1d b1 f9 ff       	call   0x409997
46e87a:	ff 75 dc             	push   -0x24(%ebp)
46e87d:	8b 46 08             	mov    0x8(%esi),%eax
46e880:	68 ff 7f 00 00       	push   $0x7fff
46e885:	ff 75 ec             	push   -0x14(%ebp)
46e888:	ff 30                	push   (%eax)
46e88a:	ff 15 9c f2 48 00    	call   *0x48f29c
46e890:	85 c0                	test   %eax,%eax
46e892:	0f 84 98 00 00 00    	je     0x46e930
46e898:	8b 43 04             	mov    0x4(%ebx),%eax
46e89b:	8b 70 08             	mov    0x8(%eax),%esi
46e89e:	8b ce                	mov    %esi,%ecx
46e8a0:	e8 f2 b0 f9 ff       	call   0x409997
46e8a5:	ff 75 dc             	push   -0x24(%ebp)
46e8a8:	8b 46 08             	mov    0x8(%esi),%eax
46e8ab:	8d 4d f4             	lea    -0xc(%ebp),%ecx
46e8ae:	6a 03                	push   $0x3
46e8b0:	51                   	push   %ecx
46e8b1:	ff 30                	push   (%eax)
46e8b3:	ff 15 9c f2 48 00    	call   *0x48f29c
46e8b9:	85 c0                	test   %eax,%eax
46e8bb:	74 1d                	je     0x46e8da
46e8bd:	80 7d 0f 00          	cmpb   $0x0,0xf(%ebp)
46e8c1:	75 17                	jne    0x46e8da
46e8c3:	8b 55 fc             	mov    -0x4(%ebp),%edx
46e8c6:	33 c0                	xor    %eax,%eax
46e8c8:	40                   	inc    %eax
46e8c9:	6a 00                	push   $0x0
46e8cb:	50                   	push   %eax
46e8cc:	8b 02                	mov    (%edx),%eax
46e8ce:	8b 48 04             	mov    0x4(%eax),%ecx
46e8d1:	03 ca                	add    %edx,%ecx
46e8d3:	e8 cb 81 fe ff       	call   0x456aa3
46e8d8:	eb 56                	jmp    0x46e930
46e8da:	8b 43 04             	mov    0x4(%ebx),%eax
46e8dd:	8b 70 08             	mov    0x8(%eax),%esi
46e8e0:	8b ce                	mov    %esi,%ecx
46e8e2:	e8 b0 b0 f9 ff       	call   0x409997
46e8e7:	ff 75 dc             	push   -0x24(%ebp)
46e8ea:	8b 46 08             	mov    0x8(%esi),%eax
46e8ed:	ff 75 ec             	push   -0x14(%ebp)
46e8f0:	ff 30                	push   (%eax)
46e8f2:	ff 15 a0 f2 48 00    	call   *0x48f2a0
46e8f8:	8b 43 04             	mov    0x4(%ebx),%eax
46e8fb:	8b 70 04             	mov    0x4(%eax),%esi
46e8fe:	8b ce                	mov    %esi,%ecx
46e900:	e8 92 b0 f9 ff       	call   0x409997