4c3473:	83 c8 01             	or     $0x1,%eax
4c3476:	0f bd c0             	bsr    %eax,%eax
4c3479:	89 45 ec             	mov    %eax,-0x14(%ebp)
4c347c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c347f:	83 c0 49             	add    $0x49,%eax
4c3482:	c1 e8 06             	shr    $0x6,%eax
4c3485:	40                   	inc    %eax
4c3486:	03 c1                	add    %ecx,%eax
4c3488:	03 d8                	add    %eax,%ebx
4c348a:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c348d:	f6 c2 02             	test   $0x2,%dl
4c3490:	74 29                	je     0x4c34bb
4c3492:	8b 48 24             	mov    0x24(%eax),%ecx
4c3495:	85 c9                	test   %ecx,%ecx
4c3497:	79 07                	jns    0x4c34a0
4c3499:	b9 0a 00 00 00       	mov    $0xa,%ecx
4c349e:	eb 18                	jmp    0x4c34b8
4c34a0:	83 c9 01             	or     $0x1,%ecx
4c34a3:	0f bd c1             	bsr    %ecx,%eax
4c34a6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4c34a9:	8d 0c c5 49 00 00 00 	lea    0x49(,%eax,8),%ecx
4c34b0:	03 c8                	add    %eax,%ecx
4c34b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c34b5:	c1 e9 06             	shr    $0x6,%ecx
4c34b8:	43                   	inc    %ebx
4c34b9:	03 d9                	add    %ecx,%ebx
4c34bb:	f6 c2 04             	test   $0x4,%dl
4c34be:	74 29                	je     0x4c34e9
4c34c0:	8b 48 28             	mov    0x28(%eax),%ecx
4c34c3:	85 c9                	test   %ecx,%ecx
4c34c5:	79 07                	jns    0x4c34ce
4c34c7:	b9 0a 00 00 00       	mov    $0xa,%ecx
4c34cc:	eb 18                	jmp    0x4c34e6
4c34ce:	83 c9 01             	or     $0x1,%ecx
4c34d1:	0f bd c1             	bsr    %ecx,%eax
4c34d4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4c34d7:	8d 0c c5 49 00 00 00 	lea    0x49(,%eax,8),%ecx
4c34de:	03 c8                	add    %eax,%ecx
4c34e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4c34e3:	c1 e9 06             	shr    $0x6,%ecx
4c34e6:	43                   	inc    %ebx
4c34e7:	03 d9                	add    %ecx,%ebx
4c34e9:	8d 48 04             	lea    0x4(%eax),%ecx
4c34ec:	83 c0 0c             	add    $0xc,%eax
4c34ef:	f6 01 01             	testb  $0x1,(%ecx)
4c34f2:	74 0f                	je     0x4c3503
4c34f4:	50                   	push   %eax
4c34f5:	53                   	push   %ebx
4c34f6:	51                   	push   %ecx
4c34f7:	e8 b4 bf fa ff       	call   0x46f4b0
4c34fc:	83 c4 0c             	add    $0xc,%esp
4c34ff:	8b d8                	mov    %eax,%ebx
4c3501:	eb 02                	jmp    0x4c3505
4c3503:	89 18                	mov    %ebx,(%eax)
4c3505:	8b 55 f8             	mov    -0x8(%ebp),%edx
4c3508:	8b c3                	mov    %ebx,%eax
4c350a:	83 c8 01             	or     $0x1,%eax
4c350d:	83 c6 04             	add    $0x4,%esi
4c3510:	0f bd c0             	bsr    %eax,%eax
4c3513:	89 45 e0             	mov    %eax,-0x20(%ebp)
4c3516:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4c3519:	83 c0 49             	add    $0x49,%eax
4c351c:	c1 e8 06             	shr    $0x6,%eax
4c351f:	03 c3                	add    %ebx,%eax
4c3521:	03 d0                	add    %eax,%edx
4c3523:	89 55 f8             	mov    %edx,-0x8(%ebp)
4c3526:	3b f7                	cmp    %edi,%esi
4c3528:	0f 85 e7 fe ff ff    	jne    0x4c3415
4c352e:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4c3531:	f6 43 04 01          	testb  $0x1,0x4(%ebx)
4c3535:	8d 43 04             	lea    0x4(%ebx),%eax
4c3538:	5f                   	pop    %edi
4c3539:	5e                   	pop    %esi
4c353a:	8d 4b 18             	lea    0x18(%ebx),%ecx
4c353d:	5b                   	pop    %ebx
4c353e:	74 0f                	je     0x4c354f
4c3540:	51                   	push   %ecx
4c3541:	52                   	push   %edx
4c3542:	50                   	push   %eax
4c3543:	e8 68 bf fa ff       	call   0x46f4b0
4c3548:	83 c4 0c             	add    $0xc,%esp
4c354b:	8b e5                	mov    %ebp,%esp
4c354d:	5d                   	pop    %ebp
4c354e:	c3                   	ret
4c354f:	89 11                	mov    %edx,(%ecx)
4c3551:	8b c2                	mov    %edx,%eax
4c3553:	8b e5                	mov    %ebp,%esp
4c3555:	5d                   	pop    %ebp
4c3556:	c3                   	ret
4c3557:	cc                   	int3
4c3558:	cc                   	int3
4c3559:	cc                   	int3
4c355a:	cc                   	int3
4c355b:	cc                   	int3
4c355c:	cc                   	int3
4c355d:	cc                   	int3
4c355e:	cc                   	int3
4c355f:	cc                   	int3
4c3560:	55                   	push   %ebp
4c3561:	8b ec                	mov    %esp,%ebp
4c3563:	83 ec 28             	sub    $0x28,%esp
4c3566:	53                   	push   %ebx
4c3567:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4c356a:	56                   	push   %esi
4c356b:	8b 75 08             	mov    0x8(%ebp),%esi
4c356e:	57                   	push   %edi
4c356f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4c3572:	3b 33                	cmp    (%ebx),%esi
4c3574:	72 2a                	jb     0x4c35a0
4c3576:	8b c6                	mov    %esi,%eax
4c3578:	2b 43 04             	sub    0x4(%ebx),%eax
4c357b:	3b 43 10             	cmp    0x10(%ebx),%eax
4c357e:	0f 84 c8 01 00 00    	je     0x4c374c
4c3584:	ff 73 48             	push   0x48(%ebx)
4c3587:	8b cb                	mov    %ebx,%ecx
4c3589:	50                   	push   %eax
4c358a:	8d 45 e8             	lea    -0x18(%ebp),%eax
4c358d:	50                   	push   %eax
4c358e:	e8 9d b9 f9 ff       	call   0x45ef30
4c3593:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
4c3597:	8b 75 e8             	mov    -0x18(%ebp),%esi
4c359a:	0f 85 b8 01 00 00    	jne    0x4c3758
4c35a0:	0f b6 16             	movzbl (%esi),%edx
4c35a3:	8d 7e 01             	lea    0x1(%esi),%edi
4c35a6:	89 55 fc             	mov    %edx,-0x4(%ebp)
4c35a9:	81 fa 80 00 00 00    	cmp    $0x80,%edx
4c35af:	72 34                	jb     0x4c35e5
4c35b1:	0f b6 0f             	movzbl (%edi),%ecx
4c35b4:	83 c2 80             	add    $0xffffff80,%edx
4c35b7:	8b c1                	mov    %ecx,%eax
4c35b9:	c1 e0 07             	shl    $0x7,%eax
4c35bc:	03 d0                	add    %eax,%edx
4c35be:	89 55 fc             	mov    %edx,-0x4(%ebp)
4c35c1:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
4c35c7:	73 05                	jae    0x4c35ce
4c35c9:	8d 7e 02             	lea    0x2(%esi),%edi
4c35cc:	eb 17                	jmp    0x4c35e5
4c35ce:	52                   	push   %edx
4c35cf:	8d 45 e0             	lea    -0x20(%ebp),%eax
4c35d2:	56                   	push   %esi
4c35d3:	50                   	push   %eax
4c35d4:	e8 07 c4 f9 ff       	call   0x45f9e0
4c35d9:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4c35dc:	83 c4 0c             	add    $0xc,%esp
4c35df:	8b 7d e0             	mov    -0x20(%ebp),%edi
4c35e2:	89 55 fc             	mov    %edx,-0x4(%ebp)
4c35e5:	85 ff                	test   %edi,%edi
4c35e7:	0f 84 54 01 00 00    	je     0x4c3741
4c35ed:	8b c2                	mov    %edx,%eax
4c35ef:	c1 e8 03             	shr    $0x3,%eax
4c35f2:	83 e8 01             	sub    $0x1,%eax
4c35f5:	0f 85 05 01 00 00    	jne    0x4c3700
4c35fb:	80 fa 0a             	cmp    $0xa,%dl
4c35fe:	0f 85 fc 00 00 00    	jne    0x4c3700
4c3604:	8d 77 ff             	lea    -0x1(%edi),%esi
4c3607:	8b 7d f8             	mov    -0x8(%ebp),%edi
4c360a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4c3610:	8b 4f 14             	mov    0x14(%edi),%ecx
4c3613:	46                   	inc    %esi
4c3614:	85 c9                	test   %ecx,%ecx
4c3616:	74 1d                	je     0x4c3635
4c3618:	8b 57 0c             	mov    0xc(%edi),%edx
4c361b:	8b 01                	mov    (%ecx),%eax
4c361d:	3b d0                	cmp    %eax,%edx
4c361f:	7d 0f                	jge    0x4c3630
4c3621:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
4c3625:	89 45 fc             	mov    %eax,-0x4(%ebp)
4c3628:	8d 42 01             	lea    0x1(%edx),%eax
4c362b:	89 47 0c             	mov    %eax,0xc(%edi)
4c362e:	eb 37                	jmp    0x4c3667
4c3630:	3b 47 10             	cmp    0x10(%edi),%eax
4c3633:	75 12                	jne    0x4c3647
4c3635:	8b 47 10             	mov    0x10(%edi),%eax
4c3638:	8d 4f 08             	lea    0x8(%edi),%ecx
4c363b:	40                   	inc    %eax
4c363c:	50                   	push   %eax
4c363d:	e8 4e a2 f9 ff       	call   0x45d890
4c3642:	8b 4f 14             	mov    0x14(%edi),%ecx
4c3645:	8b 01                	mov    (%ecx),%eax
4c3647:	40                   	inc    %eax
4c3648:	89 01                	mov    %eax,(%ecx)
4c364a:	ff 77 08             	push   0x8(%edi)
4c364d:	e8 1e 41 00 00       	call   0x4c7770
4c3652:	8b 4f 0c             	mov    0xc(%edi),%ecx
4c3655:	8b d0                	mov    %eax,%edx
4c3657:	8b 47 14             	mov    0x14(%edi),%eax
4c365a:	83 c4 04             	add    $0x4,%esp
4c365d:	89 55 fc             	mov    %edx,-0x4(%ebp)
4c3660:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4c3664:	ff 47 0c             	incl   0xc(%edi)
4c3667:	0f b6 06             	movzbl (%esi),%eax
4c366a:	3d 80 00 00 00       	cmp    $0x80,%eax
4c366f:	73 03                	jae    0x4c3674
4c3671:	46                   	inc    %esi
4c3672:	eb 14                	jmp    0x4c3688
4c3674:	50                   	push   %eax
4c3675:	8d 45 d8             	lea    -0x28(%ebp),%eax
4c3678:	56                   	push   %esi
4c3679:	50                   	push   %eax
4c367a:	e8 f1 c1 f9 ff       	call   0x45f870
4c367f:	8b 75 d8             	mov    -0x28(%ebp),%esi
4c3682:	83 c4 0c             	add    $0xc,%esp
4c3685:	8b 45 dc             	mov    -0x24(%ebp),%eax
4c3688:	85 f6                	test   %esi,%esi
4c368a:	0f 84 b1 00 00 00    	je     0x4c3741
4c3690:	2b 43 04             	sub    0x4(%ebx),%eax
4c3693:	8d 14 30             	lea    (%eax,%esi,1),%edx
4c3696:	33 c0                	xor    %eax,%eax
4c3698:	85 d2                	test   %edx,%edx
4c369a:	89 55 f0             	mov    %edx,-0x10(%ebp)
4c369d:	0f 48 c2             	cmovs  %edx,%eax
4c36a0:	03 43 04             	add    0x4(%ebx),%eax
4c36a3:	83 43 44 ff          	addl   $0xffffffff,0x44(%ebx)
4c36a7:	89 03                	mov    %eax,(%ebx)
4c36a9:	8b 43 10             	mov    0x10(%ebx),%eax
4c36ac:	89 45 f4             	mov    %eax,-0xc(%ebp)
4c36af:	89 53 10             	mov    %edx,0x10(%ebx)
4c36b2:	0f 88 89 00 00 00    	js     0x4c3741
4c36b8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4c36bb:	53                   	push   %ebx
4c36bc:	56                   	push   %esi
4c36bd:	e8 8e f2 ff ff       	call   0x4c2950
4c36c2:	8b f0                	mov    %eax,%esi
4c36c4:	85 f6                	test   %esi,%esi
4c36c6:	74 79                	je     0x4c3741
4c36c8:	ff 43 44             	incl   0x44(%ebx)
4c36cb:	83 7b 3c 00          	cmpl   $0x0,0x3c(%ebx)
4c36cf:	75 70                	jne    0x4c3741
4c36d1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4c36d4:	b9 00 00 00 00       	mov    $0x0,%ecx
4c36d9:	2b 45 f0             	sub    -0x10(%ebp),%eax
4c36dc:	01 43 10             	add    %eax,0x10(%ebx)
4c36df:	8b 43 04             	mov    0x4(%ebx),%eax
4c36e2:	0f 48 4b 10          	cmovs  0x10(%ebx),%ecx
4c36e6:	03 c1                	add    %ecx,%eax
4c36e8:	89 03                	mov    %eax,(%ebx)
4c36ea:	3b f0                	cmp    %eax,%esi
4c36ec:	0f 83 80 fe ff ff    	jae    0x4c3572
4c36f2:	80 3e 0a             	cmpb   $0xa,(%esi)
4c36f5:	0f 84 15 ff ff ff    	je     0x4c3610
4c36fb:	e9 72 fe ff ff       	jmp    0x4c3572
4c3700:	8b c2                	mov    %edx,%eax
4c3702:	24 07                	and    $0x7,%al
4c3704:	3c 04                	cmp    $0x4,%al
4c3706:	74 5b                	je     0x4c3763
4c3708:	85 d2                	test   %edx,%edx
4c370a:	74 57                	je     0x4c3763
4c370c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4c370f:	83 c1 04             	add    $0x4,%ecx
4c3712:	f6 01 01             	testb  $0x1,(%ecx)
4c3715:	74 0a                	je     0x4c3721
4c3717:	8b 01                	mov    (%ecx),%eax
4c3719:	83 e0 fc             	and    $0xfffffffc,%eax
4c371c:	83 c0 04             	add    $0x4,%eax
4c371f:	eb 08                	jmp    0x4c3729
4c3721:	e8 0a d5 f8 ff       	call   0x450c30
4c3726:	8b 55 fc             	mov    -0x4(%ebp),%edx
4c3729:	53                   	push   %ebx
4c372a:	57                   	push   %edi
4c372b:	50                   	push   %eax
4c372c:	6a 00                	push   $0x0
4c372e:	52                   	push   %edx
4c372f:	e8 7c d8 f9 ff       	call   0x460fb0
4c3734:	8b f0                	mov    %eax,%esi
4c3736:	83 c4 14             	add    $0x14,%esp
4c3739:	85 f6                	test   %esi,%esi
4c373b:	0f 85 31 fe ff ff    	jne    0x4c3572
4c3741:	33 c0                	xor    %eax,%eax
4c3743:	5f                   	pop    %edi
4c3744:	5e                   	pop    %esi
4c3745:	5b                   	pop    %ebx
4c3746:	8b e5                	mov    %ebp,%esp
4c3748:	5d                   	pop    %ebp
4c3749:	c2 08 00             	ret    $0x8
4c374c:	85 c0                	test   %eax,%eax
4c374e:	7e 08                	jle    0x4c3758
4c3750:	33 c0                	xor    %eax,%eax
4c3752:	39 43 08             	cmp    %eax,0x8(%ebx)
4c3755:	0f 44 f0             	cmove  %eax,%esi
4c3758:	5f                   	pop    %edi
4c3759:	8b c6                	mov    %esi,%eax
4c375b:	5e                   	pop    %esi
4c375c:	5b                   	pop    %ebx
4c375d:	8b e5                	mov    %ebp,%esp
4c375f:	5d                   	pop    %ebp
4c3760:	c2 08 00             	ret    $0x8
4c3763:	8b c7                	mov    %edi,%eax
4c3765:	8d 4a ff             	lea    -0x1(%edx),%ecx
4c3768:	5f                   	pop    %edi
4c3769:	5e                   	pop    %esi
4c376a:	89 4b 3c             	mov    %ecx,0x3c(%ebx)
4c376d:	5b                   	pop    %ebx
4c376e:	8b e5                	mov    %ebp,%esp
4c3770:	5d                   	pop    %ebp
4c3771:	c2 08 00             	ret    $0x8
4c3774:	cc                   	int3
4c3775:	cc                   	int3
4c3776:	cc                   	int3
4c3777:	cc                   	int3
4c3778:	cc                   	int3
4c3779:	cc                   	int3
4c377a:	cc                   	int3
4c377b:	cc                   	int3
4c377c:	cc                   	int3
4c377d:	cc                   	int3
4c377e:	cc                   	int3
4c377f:	cc                   	int3
4c3780:	55                   	push   %ebp
4c3781:	8b ec                	mov    %esp,%ebp
4c3783:	83 ec 10             	sub    $0x10,%esp
4c3786:	8b 45 08             	mov    0x8(%ebp),%eax
4c3789:	53                   	push   %ebx
4c378a:	56                   	push   %esi
4c378b:	8b f1                	mov    %ecx,%esi
4c378d:	33 db                	xor    %ebx,%ebx
4c378f:	57                   	push   %edi
4c3790:	8b 7d 0c             	mov    0xc(%ebp),%edi
4c3793:	89 75 f4             	mov    %esi,-0xc(%ebp)
4c3796:	8b 4e 0c             	mov    0xc(%esi),%ecx
4c3799:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4c379c:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4c379f:	85 c9                	test   %ecx,%ecx
4c37a1:	0f 84 e1 00 00 00    	je     0x4c3888
4c37a7:	3b 07                	cmp    (%edi),%eax
4c37a9:	72 08                	jb     0x4c37b3
4c37ab:	50                   	push   %eax
4c37ac:	8b cf                	mov    %edi,%ecx
4c37ae:	e8 bd 5d f9 ff       	call   0x459570
4c37b3:	8b 4e 14             	mov    0x14(%esi),%ecx
4c37b6:	50                   	push   %eax
4c37b7:	6a 0a                	push   $0xa
4c37b9:	8b 5c 99 04          	mov    0x4(%ecx,%ebx,4),%ebx
4c37bd:	e8 fe d2 f8 ff       	call   0x450ac0
4c37c2:	8b 4b 0c             	mov    0xc(%ebx),%ecx
4c37c5:	50                   	push   %eax
4c37c6:	51                   	push   %ecx
4c37c7:	e8 f4 d2 f8 ff       	call   0x450ac0
4c37cc:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4c37cf:	83 c4 10             	add    $0x10,%esp
4c37d2:	85 c9                	test   %ecx,%ecx
4c37d4:	7e 0f                	jle    0x4c37e5
4c37d6:	50                   	push   %eax
4c37d7:	51                   	push   %ecx
4c37d8:	8d 43 10             	lea    0x10(%ebx),%eax
4c37db:	8b cf                	mov    %edi,%ecx
4c37dd:	50                   	push   %eax
4c37de:	6a 01                	push   $0x1
4c37e0:	e8 4b 56 00 00       	call   0x4c8e30
4c37e5:	8b 4b 08             	mov    0x8(%ebx),%ecx
4c37e8:	89 4d fc             	mov    %ecx,-0x4(%ebp)