4015c7:	b0 01                	mov    $0x1,%al
4015c9:	eb 14                	jmp    0x4015df
4015cb:	8b 06                	mov    (%esi),%eax
4015cd:	8b 00                	mov    (%eax),%eax
4015cf:	89 06                	mov    %eax,(%esi)
4015d1:	8b 06                	mov    (%esi),%eax
4015d3:	3b 44 24 0c          	cmp    0xc(%esp),%eax
4015d7:	0f 85 59 ff ff ff    	jne    0x401536
4015dd:	33 c0                	xor    %eax,%eax
4015df:	83 c4 10             	add    $0x10,%esp
4015e2:	5d                   	pop    %ebp
4015e3:	5f                   	pop    %edi
4015e4:	5e                   	pop    %esi
4015e5:	5b                   	pop    %ebx
4015e6:	c3                   	ret
4015e7:	90                   	nop
4015e8:	53                   	push   %ebx
4015e9:	56                   	push   %esi
4015ea:	57                   	push   %edi
4015eb:	8b da                	mov    %edx,%ebx
4015ed:	8b f0                	mov    %eax,%esi
4015ef:	81 fe 00 00 10 00    	cmp    $0x100000,%esi
4015f5:	7d 07                	jge    0x4015fe
4015f7:	be 00 00 10 00       	mov    $0x100000,%esi
4015fc:	eb 0c                	jmp    0x40160a
4015fe:	81 c6 ff ff 00 00    	add    $0xffff,%esi
401604:	81 e6 00 00 ff ff    	and    $0xffff0000,%esi
40160a:	89 73 04             	mov    %esi,0x4(%ebx)
40160d:	6a 01                	push   $0x1
40160f:	68 00 20 00 00       	push   $0x2000
401614:	56                   	push   %esi
401615:	6a 00                	push   $0x0
401617:	e8 34 fd ff ff       	call   0x401350
40161c:	8b f8                	mov    %eax,%edi
40161e:	89 3b                	mov    %edi,(%ebx)
401620:	85 ff                	test   %edi,%edi
401622:	74 23                	je     0x401647
401624:	8b d3                	mov    %ebx,%edx
401626:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
40162b:	e8 dc fd ff ff       	call   0x40140c
401630:	84 c0                	test   %al,%al
401632:	75 13                	jne    0x401647
401634:	68 00 80 00 00       	push   $0x8000
401639:	6a 00                	push   $0x0
40163b:	8b 03                	mov    (%ebx),%eax
40163d:	50                   	push   %eax
40163e:	e8 15 fd ff ff       	call   0x401358
401643:	33 c0                	xor    %eax,%eax
401645:	89 03                	mov    %eax,(%ebx)
401647:	5f                   	pop    %edi
401648:	5e                   	pop    %esi
401649:	5b                   	pop    %ebx
40164a:	c3                   	ret
40164b:	90                   	nop
40164c:	53                   	push   %ebx
40164d:	56                   	push   %esi
40164e:	57                   	push   %edi
40164f:	55                   	push   %ebp
401650:	8b d9                	mov    %ecx,%ebx
401652:	8b f2                	mov    %edx,%esi
401654:	8b e8                	mov    %eax,%ebp
401656:	c7 43 04 00 00 10 00 	movl   $0x100000,0x4(%ebx)
40165d:	6a 04                	push   $0x4
40165f:	68 00 20 00 00       	push   $0x2000
401664:	68 00 00 10 00       	push   $0x100000
401669:	55                   	push   %ebp
40166a:	e8 e1 fc ff ff       	call   0x401350
40166f:	8b f8                	mov    %eax,%edi
401671:	89 3b                	mov    %edi,(%ebx)
401673:	85 ff                	test   %edi,%edi
401675:	75 1f                	jne    0x401696
401677:	81 c6 ff ff 00 00    	add    $0xffff,%esi
40167d:	81 e6 00 00 ff ff    	and    $0xffff0000,%esi
401683:	89 73 04             	mov    %esi,0x4(%ebx)
401686:	6a 04                	push   $0x4
401688:	68 00 20 00 00       	push   $0x2000
40168d:	56                   	push   %esi
40168e:	55                   	push   %ebp
40168f:	e8 bc fc ff ff       	call   0x401350
401694:	89 03                	mov    %eax,(%ebx)
401696:	83 3b 00             	cmpl   $0x0,(%ebx)
401699:	74 23                	je     0x4016be
40169b:	8b d3                	mov    %ebx,%edx
40169d:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
4016a2:	e8 65 fd ff ff       	call   0x40140c
4016a7:	84 c0                	test   %al,%al
4016a9:	75 13                	jne    0x4016be
4016ab:	68 00 80 00 00       	push   $0x8000
4016b0:	6a 00                	push   $0x0
4016b2:	8b 03                	mov    (%ebx),%eax
4016b4:	50                   	push   %eax
4016b5:	e8 9e fc ff ff       	call   0x401358
4016ba:	33 c0                	xor    %eax,%eax
4016bc:	89 03                	mov    %eax,(%ebx)
4016be:	5d                   	pop    %ebp
4016bf:	5f                   	pop    %edi
4016c0:	5e                   	pop    %esi
4016c1:	5b                   	pop    %ebx
4016c2:	c3                   	ret
4016c3:	90                   	nop
4016c4:	53                   	push   %ebx
4016c5:	56                   	push   %esi
4016c6:	57                   	push   %edi
4016c7:	55                   	push   %ebp
4016c8:	83 c4 e8             	add    $0xffffffe8,%esp
4016cb:	8b f9                	mov    %ecx,%edi
4016cd:	8b f4                	mov    %esp,%esi
4016cf:	c7 44 24 08 ff ff ff 	movl   $0xffffffff,0x8(%esp)
4016d6:	ff
4016d7:	33 c9                	xor    %ecx,%ecx
4016d9:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
4016dd:	89 44 24 10          	mov    %eax,0x10(%esp)
4016e1:	03 54 24 10          	add    0x10(%esp),%edx
4016e5:	89 54 24 14          	mov    %edx,0x14(%esp)
4016e9:	a1 e4 15 46 00       	mov    0x4615e4,%eax
4016ee:	89 06                	mov    %eax,(%esi)
4016f0:	eb 6b                	jmp    0x40175d
4016f2:	8b 06                	mov    (%esi),%eax
4016f4:	8b 00                	mov    (%eax),%eax
4016f6:	89 44 24 04          	mov    %eax,0x4(%esp)
4016fa:	8b 06                	mov    (%esi),%eax
4016fc:	8b 58 08             	mov    0x8(%eax),%ebx
4016ff:	3b 5c 24 10          	cmp    0x10(%esp),%ebx
401703:	72 52                	jb     0x401757
401705:	8b c3                	mov    %ebx,%eax
401707:	8b 16                	mov    (%esi),%edx
401709:	03 42 0c             	add    0xc(%edx),%eax
40170c:	3b 44 24 14          	cmp    0x14(%esp),%eax
401710:	77 45                	ja     0x401757
401712:	3b 5c 24 08          	cmp    0x8(%esp),%ebx
401716:	73 04                	jae    0x40171c
401718:	89 5c 24 08          	mov    %ebx,0x8(%esp)
40171c:	8b 06                	mov    (%esi),%eax
40171e:	8b 68 08             	mov    0x8(%eax),%ebp
401721:	8b 06                	mov    (%esi),%eax
401723:	03 68 0c             	add    0xc(%eax),%ebp
401726:	3b 6c 24 0c          	cmp    0xc(%esp),%ebp
40172a:	76 04                	jbe    0x401730
40172c:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
401730:	68 00 80 00 00       	push   $0x8000
401735:	6a 00                	push   $0x0
401737:	8b 06                	mov    (%esi),%eax
401739:	8b 40 08             	mov    0x8(%eax),%eax
40173c:	50                   	push   %eax
40173d:	e8 16 fc ff ff       	call   0x401358
401742:	85 c0                	test   %eax,%eax
401744:	75 0a                	jne    0x401750
401746:	c7 05 c0 15 46 00 01 	movl   $0x1,0x4615c0
40174d:	00 00 00
401750:	8b 06                	mov    (%esi),%eax
401752:	e8 11 fd ff ff       	call   0x401468
401757:	8b 44 24 04          	mov    0x4(%esp),%eax
40175b:	89 06                	mov    %eax,(%esi)
40175d:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
401762:	3b 06                	cmp    (%esi),%eax
401764:	75 8c                	jne    0x4016f2
401766:	33 c0                	xor    %eax,%eax
401768:	89 07                	mov    %eax,(%edi)
40176a:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
40176f:	74 11                	je     0x401782
401771:	8b 44 24 08          	mov    0x8(%esp),%eax
401775:	89 07                	mov    %eax,(%edi)
401777:	8b 44 24 0c          	mov    0xc(%esp),%eax
40177b:	2b 44 24 08          	sub    0x8(%esp),%eax
40177f:	89 47 04             	mov    %eax,0x4(%edi)
401782:	83 c4 18             	add    $0x18,%esp
401785:	5d                   	pop    %ebp
401786:	5f                   	pop    %edi
401787:	5e                   	pop    %esi
401788:	5b                   	pop    %ebx
401789:	c3                   	ret
40178a:	8b c0                	mov    %eax,%eax
40178c:	53                   	push   %ebx
40178d:	56                   	push   %esi
40178e:	57                   	push   %edi
40178f:	55                   	push   %ebp
401790:	83 c4 e8             	add    $0xffffffe8,%esp
401793:	8b d9                	mov    %ecx,%ebx
401795:	89 14 24             	mov    %edx,(%esp)
401798:	8d 74 24 08          	lea    0x8(%esp),%esi
40179c:	8d 7c 24 04          	lea    0x4(%esp),%edi
4017a0:	8d 6c 24 0c          	lea    0xc(%esp),%ebp
4017a4:	8b d0                	mov    %eax,%edx
4017a6:	8b ca                	mov    %edx,%ecx
4017a8:	81 e1 00 f0 ff ff    	and    $0xfffff000,%ecx
4017ae:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4017b2:	03 14 24             	add    (%esp),%edx
4017b5:	81 c2 ff 0f 00 00    	add    $0xfff,%edx
4017bb:	81 e2 00 f0 ff ff    	and    $0xfffff000,%edx
4017c1:	89 54 24 14          	mov    %edx,0x14(%esp)
4017c5:	8b 44 24 10          	mov    0x10(%esp),%eax
4017c9:	89 03                	mov    %eax,(%ebx)
4017cb:	8b 44 24 14          	mov    0x14(%esp),%eax
4017cf:	2b 44 24 10          	sub    0x10(%esp),%eax
4017d3:	89 43 04             	mov    %eax,0x4(%ebx)
4017d6:	a1 e4 15 46 00       	mov    0x4615e4,%eax
4017db:	89 07                	mov    %eax,(%edi)
4017dd:	eb 5b                	jmp    0x40183a
4017df:	8b 07                	mov    (%edi),%eax
4017e1:	8b 40 08             	mov    0x8(%eax),%eax
4017e4:	89 06                	mov    %eax,(%esi)
4017e6:	8b 07                	mov    (%edi),%eax
4017e8:	8b 40 0c             	mov    0xc(%eax),%eax
4017eb:	03 06                	add    (%esi),%eax
4017ed:	89 45 00             	mov    %eax,0x0(%ebp)
4017f0:	8b 06                	mov    (%esi),%eax
4017f2:	3b 44 24 10          	cmp    0x10(%esp),%eax
4017f6:	73 06                	jae    0x4017fe
4017f8:	8b 44 24 10          	mov    0x10(%esp),%eax
4017fc:	89 06                	mov    %eax,(%esi)
4017fe:	8b 45 00             	mov    0x0(%ebp),%eax
401801:	3b 44 24 14          	cmp    0x14(%esp),%eax
401805:	76 07                	jbe    0x40180e
401807:	8b 44 24 14          	mov    0x14(%esp),%eax
40180b:	89 45 00             	mov    %eax,0x0(%ebp)
40180e:	8b 06                	mov    (%esi),%eax
401810:	3b 45 00             	cmp    0x0(%ebp),%eax
401813:	73 1f                	jae    0x401834
401815:	6a 04                	push   $0x4
401817:	68 00 10 00 00       	push   $0x1000
40181c:	8b 45 00             	mov    0x0(%ebp),%eax
40181f:	2b 06                	sub    (%esi),%eax
401821:	50                   	push   %eax
401822:	8b 06                	mov    (%esi),%eax
401824:	50                   	push   %eax
401825:	e8 26 fb ff ff       	call   0x401350
40182a:	85 c0                	test   %eax,%eax
40182c:	75 06                	jne    0x401834
40182e:	33 c0                	xor    %eax,%eax
401830:	89 03                	mov    %eax,(%ebx)
401832:	eb 0f                	jmp    0x401843
401834:	8b 07                	mov    (%edi),%eax
401836:	8b 00                	mov    (%eax),%eax
401838:	89 07                	mov    %eax,(%edi)
40183a:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
40183f:	3b 07                	cmp    (%edi),%eax
401841:	75 9c                	jne    0x4017df
401843:	83 c4 18             	add    $0x18,%esp
401846:	5d                   	pop    %ebp
401847:	5f                   	pop    %edi
401848:	5e                   	pop    %esi
401849:	5b                   	pop    %ebx
40184a:	c3                   	ret
40184b:	90                   	nop
40184c:	53                   	push   %ebx
40184d:	56                   	push   %esi
40184e:	57                   	push   %edi
40184f:	55                   	push   %ebp
401850:	83 c4 e8             	add    $0xffffffe8,%esp
401853:	89 14 24             	mov    %edx,(%esp)
401856:	8d 74 24 08          	lea    0x8(%esp),%esi
40185a:	8d 7c 24 04          	lea    0x4(%esp),%edi
40185e:	8d 5c 24 0c          	lea    0xc(%esp),%ebx
401862:	8b d0                	mov    %eax,%edx
401864:	8b ea                	mov    %edx,%ebp
401866:	81 c5 ff 0f 00 00    	add    $0xfff,%ebp
40186c:	81 e5 00 f0 ff ff    	and    $0xfffff000,%ebp
401872:	89 6c 24 10          	mov    %ebp,0x10(%esp)
401876:	03 14 24             	add    (%esp),%edx
401879:	81 e2 00 f0 ff ff    	and    $0xfffff000,%edx
40187f:	89 54 24 14          	mov    %edx,0x14(%esp)
401883:	8b 44 24 10          	mov    0x10(%esp),%eax
401887:	89 01                	mov    %eax,(%ecx)
401889:	8b 44 24 14          	mov    0x14(%esp),%eax
40188d:	2b 44 24 10          	sub    0x10(%esp),%eax
401891:	89 41 04             	mov    %eax,0x4(%ecx)
401894:	a1 e4 15 46 00       	mov    0x4615e4,%eax
401899:	89 07                	mov    %eax,(%edi)
40189b:	eb 58                	jmp    0x4018f5
40189d:	8b 07                	mov    (%edi),%eax
40189f:	8b 40 08             	mov    0x8(%eax),%eax
4018a2:	89 06                	mov    %eax,(%esi)
4018a4:	8b 07                	mov    (%edi),%eax
4018a6:	8b 40 0c             	mov    0xc(%eax),%eax
4018a9:	03 06                	add    (%esi),%eax
4018ab:	89 03                	mov    %eax,(%ebx)
4018ad:	8b 06                	mov    (%esi),%eax
4018af:	3b 44 24 10          	cmp    0x10(%esp),%eax
4018b3:	73 06                	jae    0x4018bb
4018b5:	8b 44 24 10          	mov    0x10(%esp),%eax
4018b9:	89 06                	mov    %eax,(%esi)
4018bb:	8b 03                	mov    (%ebx),%eax
4018bd:	3b 44 24 14          	cmp    0x14(%esp),%eax
4018c1:	76 06                	jbe    0x4018c9
4018c3:	8b 44 24 14          	mov    0x14(%esp),%eax
4018c7:	89 03                	mov    %eax,(%ebx)
4018c9:	8b 06                	mov    (%esi),%eax
4018cb:	3b 03                	cmp    (%ebx),%eax
4018cd:	73 20                	jae    0x4018ef
4018cf:	68 00 40 00 00       	push   $0x4000
4018d4:	8b 03                	mov    (%ebx),%eax
4018d6:	2b 06                	sub    (%esi),%eax
4018d8:	50                   	push   %eax
4018d9:	8b 06                	mov    (%esi),%eax
4018db:	50                   	push   %eax
4018dc:	e8 77 fa ff ff       	call   0x401358
4018e1:	85 c0                	test   %eax,%eax
4018e3:	75 0a                	jne    0x4018ef
4018e5:	c7 05 c0 15 46 00 02 	movl   $0x2,0x4615c0
4018ec:	00 00 00
4018ef:	8b 07                	mov    (%edi),%eax
4018f1:	8b 00                	mov    (%eax),%eax
4018f3:	89 07                	mov    %eax,(%edi)
4018f5:	b8 e4 15 46 00       	mov    $0x4615e4,%eax
4018fa:	3b 07                	cmp    (%edi),%eax
4018fc:	75 9f                	jne    0x40189d
4018fe:	83 c4 18             	add    $0x18,%esp
401901:	5d                   	pop    %ebp
401902:	5f                   	pop    %edi
401903:	5e                   	pop    %esi
401904:	5b                   	pop    %ebx
401905:	c3                   	ret
401906:	8b c0                	mov    %eax,%eax
401908:	53                   	push   %ebx
401909:	56                   	push   %esi
40190a:	57                   	push   %edi
40190b:	55                   	push   %ebp
40190c:	83 c4 f4             	add    $0xfffffff4,%esp
40190f:	8b da                	mov    %edx,%ebx
401911:	8b f0                	mov    %eax,%esi
401913:	8b fc                	mov    %esp,%edi
401915:	bd f4 15 46 00       	mov    $0x4615f4,%ebp
40191a:	81 c6 ff 3f 00 00    	add    $0x3fff,%esi
401920:	81 e6 00 c0 ff ff    	and    $0xffffc000,%esi
401926:	8b 45 00             	mov    0x0(%ebp),%eax
401929:	89 07                	mov    %eax,(%edi)
40192b:	eb 41                	jmp    0x40196e
40192d:	8b 07                	mov    (%edi),%eax
40192f:	3b 70 0c             	cmp    0xc(%eax),%esi
401932:	7f 34                	jg     0x401968
401934:	8b cb                	mov    %ebx,%ecx
401936:	8b 07                	mov    (%edi),%eax
401938:	8b 40 08             	mov    0x8(%eax),%eax
40193b:	8b d6                	mov    %esi,%edx
40193d:	e8 4a fe ff ff       	call   0x40178c
401942:	83 3b 00             	cmpl   $0x0,(%ebx)
401945:	74 5f                	je     0x4019a6
401947:	8b 43 04             	mov    0x4(%ebx),%eax
40194a:	8b 17                	mov    (%edi),%edx
40194c:	01 42 08             	add    %eax,0x8(%edx)
40194f:	8b 43 04             	mov    0x4(%ebx),%eax
401952:	8b 17                	mov    (%edi),%edx
401954:	29 42 0c             	sub    %eax,0xc(%edx)
401957:	8b 07                	mov    (%edi),%eax
401959:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40195d:	75 47                	jne    0x4019a6
40195f:	8b 07                	mov    (%edi),%eax
401961:	e8 02 fb ff ff       	call   0x401468
401966:	eb 3e                	jmp    0x4019a6
401968:	8b 07                	mov    (%edi),%eax