61243d:	5f                   	pop    %edi
61243e:	5e                   	pop    %esi
61243f:	c9                   	leave
612440:	c3                   	ret
612441:	8b ff                	mov    %edi,%edi
612443:	55                   	push   %ebp
612444:	8b ec                	mov    %esp,%ebp
612446:	53                   	push   %ebx
612447:	56                   	push   %esi
612448:	8b 75 08             	mov    0x8(%ebp),%esi
61244b:	33 db                	xor    %ebx,%ebx
61244d:	57                   	push   %edi
61244e:	6a 01                	push   $0x1
612450:	53                   	push   %ebx
612451:	53                   	push   %ebx
612452:	56                   	push   %esi
612453:	8b f9                	mov    %ecx,%edi
612455:	e8 63 34 ff ff       	call   0x6058bd
61245a:	6a 02                	push   $0x2
61245c:	53                   	push   %ebx
61245d:	53                   	push   %ebx
61245e:	56                   	push   %esi
61245f:	89 07                	mov    %eax,(%edi)
612461:	89 57 04             	mov    %edx,0x4(%edi)
612464:	e8 54 34 ff ff       	call   0x6058bd
612469:	8b 4d 0c             	mov    0xc(%ebp),%ecx
61246c:	83 c4 20             	add    $0x20,%esp
61246f:	89 47 08             	mov    %eax,0x8(%edi)
612472:	2b c8                	sub    %eax,%ecx
612474:	8b 45 10             	mov    0x10(%ebp),%eax
612477:	1b c2                	sbb    %edx,%eax
612479:	89 77 18             	mov    %esi,0x18(%edi)
61247c:	89 47 14             	mov    %eax,0x14(%edi)
61247f:	8b c7                	mov    %edi,%eax
612481:	89 57 0c             	mov    %edx,0xc(%edi)
612484:	89 4f 10             	mov    %ecx,0x10(%edi)
612487:	5f                   	pop    %edi
612488:	5e                   	pop    %esi
612489:	5b                   	pop    %ebx
61248a:	5d                   	pop    %ebp
61248b:	c2 0c 00             	ret    $0xc
61248e:	8b ff                	mov    %edi,%edi
612490:	55                   	push   %ebp
612491:	8b ec                	mov    %esp,%ebp
612493:	83 ec 28             	sub    $0x28,%esp
612496:	53                   	push   %ebx
612497:	8b 5d 08             	mov    0x8(%ebp),%ebx
61249a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
61249d:	56                   	push   %esi
61249e:	57                   	push   %edi
61249f:	ff 75 10             	push   0x10(%ebp)
6124a2:	ff 75 0c             	push   0xc(%ebp)
6124a5:	53                   	push   %ebx
6124a6:	e8 96 ff ff ff       	call   0x612441
6124ab:	8b 45 d8             	mov    -0x28(%ebp),%eax
6124ae:	23 45 dc             	and    -0x24(%ebp),%eax
6124b1:	83 f8 ff             	cmp    $0xffffffff,%eax
6124b4:	0f 84 23 01 00 00    	je     0x6125dd
6124ba:	8b 45 e0             	mov    -0x20(%ebp),%eax
6124bd:	23 45 e4             	and    -0x1c(%ebp),%eax
6124c0:	83 f8 ff             	cmp    $0xffffffff,%eax
6124c3:	0f 84 14 01 00 00    	je     0x6125dd
6124c9:	8b 45 ec             	mov    -0x14(%ebp),%eax
6124cc:	8b 7d e8             	mov    -0x18(%ebp),%edi
6124cf:	89 45 fc             	mov    %eax,-0x4(%ebp)
6124d2:	85 c0                	test   %eax,%eax
6124d4:	0f 8c bf 00 00 00    	jl     0x612599
6124da:	7f 08                	jg     0x6124e4
6124dc:	85 ff                	test   %edi,%edi
6124de:	0f 84 ab 00 00 00    	je     0x61258f
6124e4:	6a 01                	push   $0x1
6124e6:	68 00 10 00 00       	push   $0x1000
6124eb:	e8 ec 35 ff ff       	call   0x605adc
6124f0:	8b f0                	mov    %eax,%esi
6124f2:	59                   	pop    %ecx
6124f3:	59                   	pop    %ecx
6124f4:	85 f6                	test   %esi,%esi
6124f6:	75 0d                	jne    0x612505
6124f8:	e8 fc aa fd ff       	call   0x5ecff9
6124fd:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
612503:	eb 7a                	jmp    0x61257f
612505:	68 00 80 00 00       	push   $0x8000
61250a:	53                   	push   %ebx
61250b:	e8 3a d4 fe ff       	call   0x5ff94a
612510:	59                   	pop    %ecx
612511:	89 45 f8             	mov    %eax,-0x8(%ebp)
612514:	8b 45 ec             	mov    -0x14(%ebp),%eax
612517:	59                   	pop    %ecx
612518:	85 c0                	test   %eax,%eax
61251a:	7c 11                	jl     0x61252d
61251c:	7f 08                	jg     0x612526
61251e:	81 ff 00 10 00 00    	cmp    $0x1000,%edi
612524:	72 07                	jb     0x61252d
612526:	b8 00 10 00 00       	mov    $0x1000,%eax
61252b:	eb 02                	jmp    0x61252f
61252d:	8b c7                	mov    %edi,%eax
61252f:	50                   	push   %eax
612530:	56                   	push   %esi
612531:	53                   	push   %ebx
612532:	e8 a7 88 ff ff       	call   0x60adde
612537:	83 c4 0c             	add    $0xc,%esp
61253a:	83 f8 ff             	cmp    $0xffffffff,%eax
61253d:	74 2b                	je     0x61256a
61253f:	99                   	cltd
612540:	2b f8                	sub    %eax,%edi
612542:	8b 45 fc             	mov    -0x4(%ebp),%eax
612545:	1b c2                	sbb    %edx,%eax
612547:	89 45 fc             	mov    %eax,-0x4(%ebp)
61254a:	85 c0                	test   %eax,%eax
61254c:	7f d8                	jg     0x612526
61254e:	7c 04                	jl     0x612554
612550:	85 ff                	test   %edi,%edi
612552:	75 c4                	jne    0x612518
612554:	ff 75 f8             	push   -0x8(%ebp)
612557:	53                   	push   %ebx
612558:	e8 ed d3 fe ff       	call   0x5ff94a
61255d:	56                   	push   %esi
61255e:	e8 c5 22 ff ff       	call   0x604828
612563:	83 c4 0c             	add    $0xc,%esp
612566:	33 ff                	xor    %edi,%edi
612568:	eb 7a                	jmp    0x6125e4
61256a:	e8 77 aa fd ff       	call   0x5ecfe6
61256f:	83 38 05             	cmpl   $0x5,(%eax)
612572:	75 0b                	jne    0x61257f
612574:	e8 80 aa fd ff       	call   0x5ecff9
612579:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
61257f:	e8 75 aa fd ff       	call   0x5ecff9
612584:	56                   	push   %esi
612585:	8b 38                	mov    (%eax),%edi
612587:	e8 9c 22 ff ff       	call   0x604828
61258c:	59                   	pop    %ecx
61258d:	eb 55                	jmp    0x6125e4
61258f:	85 c0                	test   %eax,%eax
612591:	7f d3                	jg     0x612566
612593:	7c 04                	jl     0x612599
612595:	85 ff                	test   %edi,%edi
612597:	73 cd                	jae    0x612566
612599:	6a 00                	push   $0x0
61259b:	ff 75 10             	push   0x10(%ebp)
61259e:	ff 75 0c             	push   0xc(%ebp)
6125a1:	53                   	push   %ebx
6125a2:	e8 16 33 ff ff       	call   0x6058bd
6125a7:	23 c2                	and    %edx,%eax
6125a9:	83 c4 10             	add    $0x10,%esp
6125ac:	83 f8 ff             	cmp    $0xffffffff,%eax
6125af:	74 2c                	je     0x6125dd
6125b1:	53                   	push   %ebx
6125b2:	e8 be 6f ff ff       	call   0x609575
6125b7:	59                   	pop    %ecx
6125b8:	50                   	push   %eax
6125b9:	ff 15 30 23 68 00    	call   *0x682330
6125bf:	85 c0                	test   %eax,%eax
6125c1:	75 a3                	jne    0x612566
6125c3:	e8 31 aa fd ff       	call   0x5ecff9
6125c8:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
6125ce:	e8 13 aa fd ff       	call   0x5ecfe6
6125d3:	8b f0                	mov    %eax,%esi
6125d5:	ff 15 e0 21 68 00    	call   *0x6821e0
6125db:	89 06                	mov    %eax,(%esi)
6125dd:	e8 17 aa fd ff       	call   0x5ecff9
6125e2:	8b 38                	mov    (%eax),%edi
6125e4:	6a 00                	push   $0x0
6125e6:	ff 75 dc             	push   -0x24(%ebp)
6125e9:	ff 75 d8             	push   -0x28(%ebp)
6125ec:	ff 75 f0             	push   -0x10(%ebp)
6125ef:	e8 c9 32 ff ff       	call   0x6058bd
6125f4:	83 c4 10             	add    $0x10,%esp
6125f7:	8b c7                	mov    %edi,%eax
6125f9:	5f                   	pop    %edi
6125fa:	5e                   	pop    %esi
6125fb:	5b                   	pop    %ebx
6125fc:	c9                   	leave
6125fd:	c3                   	ret
6125fe:	8b ff                	mov    %edi,%edi
612600:	55                   	push   %ebp
612601:	8b ec                	mov    %esp,%ebp
612603:	51                   	push   %ecx
612604:	e8 96 06 00 00       	call   0x612c9f
612609:	85 c0                	test   %eax,%eax
61260b:	74 1c                	je     0x612629
61260d:	8d 45 fc             	lea    -0x4(%ebp),%eax
612610:	50                   	push   %eax
612611:	8d 45 08             	lea    0x8(%ebp),%eax
612614:	6a 01                	push   $0x1
612616:	50                   	push   %eax
612617:	e8 bb 06 00 00       	call   0x612cd7
61261c:	83 c4 0c             	add    $0xc,%esp
61261f:	85 c0                	test   %eax,%eax
612621:	74 06                	je     0x612629
612623:	66 8b 45 08          	mov    0x8(%ebp),%ax
612627:	c9                   	leave
612628:	c3                   	ret
612629:	b8 ff ff 00 00       	mov    $0xffff,%eax
61262e:	c9                   	leave
61262f:	c3                   	ret
612630:	8b ff                	mov    %edi,%edi
612632:	55                   	push   %ebp
612633:	8b ec                	mov    %esp,%ebp
612635:	83 ec 2c             	sub    $0x2c,%esp
612638:	a1 d4 89 72 00       	mov    0x7289d4,%eax
61263d:	33 c5                	xor    %ebp,%eax
61263f:	89 45 fc             	mov    %eax,-0x4(%ebp)
612642:	8b 45 08             	mov    0x8(%ebp),%eax
612645:	53                   	push   %ebx
612646:	56                   	push   %esi
612647:	8b 75 18             	mov    0x18(%ebp),%esi
61264a:	89 45 d8             	mov    %eax,-0x28(%ebp)
61264d:	8b 45 0c             	mov    0xc(%ebp),%eax
612650:	89 45 d4             	mov    %eax,-0x2c(%ebp)
612653:	8b 45 1c             	mov    0x1c(%ebp),%eax
612656:	89 45 dc             	mov    %eax,-0x24(%ebp)
612659:	57                   	push   %edi
61265a:	8b 7d 14             	mov    0x14(%ebp),%edi
61265d:	89 7d e0             	mov    %edi,-0x20(%ebp)
612660:	85 f6                	test   %esi,%esi
612662:	7e 10                	jle    0x612674
612664:	56                   	push   %esi
612665:	57                   	push   %edi
612666:	e8 32 eb fe ff       	call   0x60119d
61266b:	59                   	pop    %ecx
61266c:	8b f0                	mov    %eax,%esi
61266e:	8b 45 dc             	mov    -0x24(%ebp),%eax
612671:	59                   	pop    %ecx
612672:	eb 09                	jmp    0x61267d
612674:	83 fe ff             	cmp    $0xffffffff,%esi
612677:	0f 8c 2a 02 00 00    	jl     0x6128a7
61267d:	8b 5d 20             	mov    0x20(%ebp),%ebx
612680:	85 db                	test   %ebx,%ebx
612682:	7e 0d                	jle    0x612691
612684:	53                   	push   %ebx
612685:	50                   	push   %eax
612686:	e8 12 eb fe ff       	call   0x60119d
61268b:	59                   	pop    %ecx
61268c:	59                   	pop    %ecx
61268d:	8b d8                	mov    %eax,%ebx
61268f:	eb 09                	jmp    0x61269a
612691:	83 fb ff             	cmp    $0xffffffff,%ebx
612694:	0f 8c 0d 02 00 00    	jl     0x6128a7
61269a:	8b 45 24             	mov    0x24(%ebp),%eax
61269d:	85 c0                	test   %eax,%eax
61269f:	75 0b                	jne    0x6126ac
6126a1:	8b 45 d8             	mov    -0x28(%ebp),%eax
6126a4:	8b 00                	mov    (%eax),%eax
6126a6:	8b 40 08             	mov    0x8(%eax),%eax
6126a9:	89 45 24             	mov    %eax,0x24(%ebp)
6126ac:	85 f6                	test   %esi,%esi
6126ae:	74 08                	je     0x6126b8
6126b0:	85 db                	test   %ebx,%ebx
6126b2:	0f 85 9c 00 00 00    	jne    0x612754
6126b8:	3b f3                	cmp    %ebx,%esi
6126ba:	0f 84 e0 01 00 00    	je     0x6128a0
6126c0:	83 fb 01             	cmp    $0x1,%ebx
6126c3:	0f 8f 83 00 00 00    	jg     0x61274c
6126c9:	83 fe 01             	cmp    $0x1,%esi
6126cc:	7f 43                	jg     0x612711
6126ce:	8d 4d e8             	lea    -0x18(%ebp),%ecx
6126d1:	51                   	push   %ecx
6126d2:	50                   	push   %eax
6126d3:	ff 15 80 22 68 00    	call   *0x682280
6126d9:	85 c0                	test   %eax,%eax
6126db:	0f 84 c6 01 00 00    	je     0x6128a7
6126e1:	85 f6                	test   %esi,%esi
6126e3:	7e 34                	jle    0x612719
6126e5:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
6126e9:	72 26                	jb     0x612711
6126eb:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
6126ef:	8d 45 ee             	lea    -0x12(%ebp),%eax
6126f2:	74 1d                	je     0x612711
6126f4:	8a 48 01             	mov    0x1(%eax),%cl
6126f7:	84 c9                	test   %cl,%cl
6126f9:	74 16                	je     0x612711
6126fb:	8a 17                	mov    (%edi),%dl
6126fd:	3a 10                	cmp    (%eax),%dl
6126ff:	72 08                	jb     0x612709
612701:	3a d1                	cmp    %cl,%dl
612703:	0f 86 97 01 00 00    	jbe    0x6128a0
612709:	83 c0 02             	add    $0x2,%eax
61270c:	80 38 00             	cmpb   $0x0,(%eax)
61270f:	75 e3                	jne    0x6126f4
612711:	6a 03                	push   $0x3
612713:	58                   	pop    %eax
612714:	e9 90 01 00 00       	jmp    0x6128a9
612719:	85 db                	test   %ebx,%ebx
61271b:	7e 37                	jle    0x612754
61271d:	83 7d e8 02          	cmpl   $0x2,-0x18(%ebp)
612721:	72 29                	jb     0x61274c
612723:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
612727:	8d 45 ee             	lea    -0x12(%ebp),%eax
61272a:	74 20                	je     0x61274c
61272c:	8b 75 dc             	mov    -0x24(%ebp),%esi
61272f:	8a 48 01             	mov    0x1(%eax),%cl
612732:	84 c9                	test   %cl,%cl
612734:	74 16                	je     0x61274c
612736:	8a 16                	mov    (%esi),%dl
612738:	3a 10                	cmp    (%eax),%dl
61273a:	72 08                	jb     0x612744
61273c:	3a d1                	cmp    %cl,%dl
61273e:	0f 86 5c 01 00 00    	jbe    0x6128a0
612744:	83 c0 02             	add    $0x2,%eax
612747:	80 38 00             	cmpb   $0x0,(%eax)
61274a:	75 e3                	jne    0x61272f
61274c:	33 c0                	xor    %eax,%eax
61274e:	40                   	inc    %eax
61274f:	e9 55 01 00 00       	jmp    0x6128a9
612754:	33 ff                	xor    %edi,%edi
612756:	57                   	push   %edi
612757:	57                   	push   %edi
612758:	56                   	push   %esi
612759:	ff 75 e0             	push   -0x20(%ebp)
61275c:	6a 09                	push   $0x9
61275e:	ff 75 24             	push   0x24(%ebp)
612761:	e8 30 47 ff ff       	call   0x606e96
612766:	83 c4 18             	add    $0x18,%esp
612769:	89 45 d8             	mov    %eax,-0x28(%ebp)
61276c:	85 c0                	test   %eax,%eax
61276e:	0f 84 33 01 00 00    	je     0x6128a7
612774:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
612777:	8d 51 08             	lea    0x8(%ecx),%edx
61277a:	3b ca                	cmp    %edx,%ecx
61277c:	1b c0                	sbb    %eax,%eax
61277e:	23 c2                	and    %edx,%eax
612780:	74 41                	je     0x6127c3
612782:	3d 00 04 00 00       	cmp    $0x400,%eax
612787:	77 1a                	ja     0x6127a3
612789:	e8 c2 f6 fc ff       	call   0x5e1e50
61278e:	8b c4                	mov    %esp,%eax
612790:	89 45 e4             	mov    %eax,-0x1c(%ebp)
612793:	85 c0                	test   %eax,%eax
612795:	0f 84 f7 00 00 00    	je     0x612892
61279b:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
6127a1:	eb 18                	jmp    0x6127bb
6127a3:	50                   	push   %eax
6127a4:	e8 4c 36 ff ff       	call   0x605df5
6127a9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
6127ac:	59                   	pop    %ecx
6127ad:	85 c0                	test   %eax,%eax
6127af:	0f 84 dd 00 00 00    	je     0x612892
6127b5:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
6127bb:	83 c0 08             	add    $0x8,%eax
6127be:	89 45 e4             	mov    %eax,-0x1c(%ebp)
6127c1:	eb 05                	jmp    0x6127c8
6127c3:	8b c7                	mov    %edi,%eax
6127c5:	89 7d e4             	mov    %edi,-0x1c(%ebp)
6127c8:	85 c0                	test   %eax,%eax
6127ca:	0f 84 c2 00 00 00    	je     0x612892
6127d0:	ff 75 d8             	push   -0x28(%ebp)
6127d3:	50                   	push   %eax
6127d4:	56                   	push   %esi
6127d5:	ff 75 e0             	push   -0x20(%ebp)
6127d8:	8b 75 24             	mov    0x24(%ebp),%esi