50b5f0:	39 77 08             	cmp    %esi,0x8(%edi)
50b5f3:	72 21                	jb     0x50b616
50b5f5:	8b 57 04             	mov    0x4(%edi),%edx
50b5f8:	85 d2                	test   %edx,%edx
50b5fa:	74 13                	je     0x50b60f
50b5fc:	8b c6                	mov    %esi,%eax
50b5fe:	2b c1                	sub    %ecx,%eax
50b600:	50                   	push   %eax
50b601:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
50b604:	6a 00                	push   $0x0
50b606:	50                   	push   %eax
50b607:	e8 64 76 0c 00       	call   0x5d2c70
50b60c:	83 c4 0c             	add    $0xc,%esp
50b60f:	89 37                	mov    %esi,(%edi)
50b611:	8b c6                	mov    %esi,%eax
50b613:	5f                   	pop    %edi
50b614:	5e                   	pop    %esi
50b615:	c3                   	ret
50b616:	81 fe fc ff ff 5f    	cmp    $0x5ffffffc,%esi
50b61c:	76 1a                	jbe    0x50b638
50b61e:	6a 5a                	push   $0x5a
50b620:	68 98 ae 62 00       	push   $0x62ae98
50b625:	6a 41                	push   $0x41
50b627:	6a 64                	push   $0x64
50b629:	6a 07                	push   $0x7
50b62b:	e8 50 d9 fc ff       	call   0x4d8f80
50b630:	83 c4 14             	add    $0x14,%esp
50b633:	33 c0                	xor    %eax,%eax
50b635:	5f                   	pop    %edi
50b636:	5e                   	pop    %esi
50b637:	c3                   	ret
50b638:	8d 4e 03             	lea    0x3(%esi),%ecx
50b63b:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
50b640:	f7 e1                	mul    %ecx
50b642:	53                   	push   %ebx
50b643:	8b da                	mov    %edx,%ebx
50b645:	d1 eb                	shr    $1,%ebx
50b647:	c1 e3 02             	shl    $0x2,%ebx
50b64a:	f6 47 0c 01          	testb  $0x1,0xc(%edi)
50b64e:	74 0c                	je     0x50b65c
50b650:	53                   	push   %ebx
50b651:	57                   	push   %edi
50b652:	e8 29 02 00 00       	call   0x50b880
50b657:	83 c4 08             	add    $0x8,%esp
50b65a:	eb 13                	jmp    0x50b66f
50b65c:	6a 61                	push   $0x61
50b65e:	68 98 ae 62 00       	push   $0x62ae98
50b663:	53                   	push   %ebx
50b664:	ff 77 04             	push   0x4(%edi)
50b667:	e8 34 51 fd ff       	call   0x4e07a0
50b66c:	83 c4 10             	add    $0x10,%esp
50b66f:	85 c0                	test   %eax,%eax
50b671:	75 1d                	jne    0x50b690
50b673:	6a 63                	push   $0x63
50b675:	68 98 ae 62 00       	push   $0x62ae98
50b67a:	6a 41                	push   $0x41
50b67c:	6a 64                	push   $0x64
50b67e:	6a 07                	push   $0x7
50b680:	e8 fb d8 fc ff       	call   0x4d8f80
50b685:	83 c4 14             	add    $0x14,%esp
50b688:	33 f6                	xor    %esi,%esi
50b68a:	8b c6                	mov    %esi,%eax
50b68c:	5b                   	pop    %ebx
50b68d:	5f                   	pop    %edi
50b68e:	5e                   	pop    %esi
50b68f:	c3                   	ret
50b690:	8b 17                	mov    (%edi),%edx
50b692:	8b ce                	mov    %esi,%ecx
50b694:	2b ca                	sub    %edx,%ecx
50b696:	89 47 04             	mov    %eax,0x4(%edi)
50b699:	51                   	push   %ecx
50b69a:	6a 00                	push   $0x0
50b69c:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
50b69f:	89 5f 08             	mov    %ebx,0x8(%edi)
50b6a2:	51                   	push   %ecx
50b6a3:	e8 c8 75 0c 00       	call   0x5d2c70
50b6a8:	83 c4 0c             	add    $0xc,%esp
50b6ab:	89 37                	mov    %esi,(%edi)
50b6ad:	8b c6                	mov    %esi,%eax
50b6af:	5b                   	pop    %ebx
50b6b0:	5f                   	pop    %edi
50b6b1:	5e                   	pop    %esi
50b6b2:	c3                   	ret
50b6b3:	cc                   	int3
50b6b4:	cc                   	int3
50b6b5:	cc                   	int3
50b6b6:	cc                   	int3
50b6b7:	cc                   	int3
50b6b8:	cc                   	int3
50b6b9:	cc                   	int3
50b6ba:	cc                   	int3
50b6bb:	cc                   	int3
50b6bc:	cc                   	int3
50b6bd:	cc                   	int3
50b6be:	cc                   	int3
50b6bf:	cc                   	int3
50b6c0:	56                   	push   %esi
50b6c1:	8b 74 24 0c          	mov    0xc(%esp),%esi
50b6c5:	57                   	push   %edi
50b6c6:	8b 7c 24 0c          	mov    0xc(%esp),%edi
50b6ca:	8b 0f                	mov    (%edi),%ecx
50b6cc:	3b ce                	cmp    %esi,%ecx
50b6ce:	72 1f                	jb     0x50b6ef
50b6d0:	8b 47 04             	mov    0x4(%edi),%eax
50b6d3:	85 c0                	test   %eax,%eax
50b6d5:	74 11                	je     0x50b6e8
50b6d7:	2b ce                	sub    %esi,%ecx
50b6d9:	51                   	push   %ecx
50b6da:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
50b6dd:	6a 00                	push   $0x0
50b6df:	51                   	push   %ecx
50b6e0:	e8 8b 75 0c 00       	call   0x5d2c70
50b6e5:	83 c4 0c             	add    $0xc,%esp
50b6e8:	89 37                	mov    %esi,(%edi)
50b6ea:	8b c6                	mov    %esi,%eax
50b6ec:	5f                   	pop    %edi
50b6ed:	5e                   	pop    %esi
50b6ee:	c3                   	ret
50b6ef:	39 77 08             	cmp    %esi,0x8(%edi)
50b6f2:	72 1c                	jb     0x50b710
50b6f4:	8b c6                	mov    %esi,%eax
50b6f6:	2b c1                	sub    %ecx,%eax
50b6f8:	50                   	push   %eax
50b6f9:	8b 47 04             	mov    0x4(%edi),%eax
50b6fc:	03 c1                	add    %ecx,%eax
50b6fe:	6a 00                	push   $0x0
50b700:	50                   	push   %eax
50b701:	e8 6a 75 0c 00       	call   0x5d2c70
50b706:	83 c4 0c             	add    $0xc,%esp
50b709:	89 37                	mov    %esi,(%edi)
50b70b:	8b c6                	mov    %esi,%eax
50b70d:	5f                   	pop    %edi
50b70e:	5e                   	pop    %esi
50b70f:	c3                   	ret
50b710:	81 fe fc ff ff 5f    	cmp    $0x5ffffffc,%esi
50b716:	76 1d                	jbe    0x50b735
50b718:	68 80 00 00 00       	push   $0x80
50b71d:	68 98 ae 62 00       	push   $0x62ae98
50b722:	6a 41                	push   $0x41
50b724:	6a 69                	push   $0x69
50b726:	6a 07                	push   $0x7
50b728:	e8 53 d8 fc ff       	call   0x4d8f80
50b72d:	83 c4 14             	add    $0x14,%esp
50b730:	33 c0                	xor    %eax,%eax
50b732:	5f                   	pop    %edi
50b733:	5e                   	pop    %esi
50b734:	c3                   	ret
50b735:	8d 4e 03             	lea    0x3(%esi),%ecx
50b738:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
50b73d:	f7 e1                	mul    %ecx
50b73f:	53                   	push   %ebx
50b740:	8b da                	mov    %edx,%ebx
50b742:	d1 eb                	shr    $1,%ebx
50b744:	c1 e3 02             	shl    $0x2,%ebx
50b747:	f6 47 0c 01          	testb  $0x1,0xc(%edi)
50b74b:	74 0c                	je     0x50b759
50b74d:	53                   	push   %ebx
50b74e:	57                   	push   %edi
50b74f:	e8 2c 01 00 00       	call   0x50b880
50b754:	83 c4 08             	add    $0x8,%esp
50b757:	eb 19                	jmp    0x50b772
50b759:	68 87 00 00 00       	push   $0x87
50b75e:	68 98 ae 62 00       	push   $0x62ae98
50b763:	53                   	push   %ebx
50b764:	ff 77 08             	push   0x8(%edi)
50b767:	ff 77 04             	push   0x4(%edi)
50b76a:	e8 21 51 fd ff       	call   0x4e0890
50b76f:	83 c4 14             	add    $0x14,%esp
50b772:	8b d0                	mov    %eax,%edx
50b774:	85 d2                	test   %edx,%edx
50b776:	75 20                	jne    0x50b798
50b778:	68 89 00 00 00       	push   $0x89
50b77d:	68 98 ae 62 00       	push   $0x62ae98
50b782:	6a 41                	push   $0x41
50b784:	6a 69                	push   $0x69
50b786:	6a 07                	push   $0x7
50b788:	e8 f3 d7 fc ff       	call   0x4d8f80
50b78d:	83 c4 14             	add    $0x14,%esp
50b790:	33 f6                	xor    %esi,%esi
50b792:	8b c6                	mov    %esi,%eax
50b794:	5b                   	pop    %ebx
50b795:	5f                   	pop    %edi
50b796:	5e                   	pop    %esi
50b797:	c3                   	ret
50b798:	8b 0f                	mov    (%edi),%ecx
50b79a:	8b c6                	mov    %esi,%eax
50b79c:	2b c1                	sub    %ecx,%eax
50b79e:	89 57 04             	mov    %edx,0x4(%edi)
50b7a1:	50                   	push   %eax
50b7a2:	6a 00                	push   $0x0
50b7a4:	8d 04 11             	lea    (%ecx,%edx,1),%eax
50b7a7:	89 5f 08             	mov    %ebx,0x8(%edi)
50b7aa:	50                   	push   %eax
50b7ab:	e8 c0 74 0c 00       	call   0x5d2c70
50b7b0:	83 c4 0c             	add    $0xc,%esp
50b7b3:	89 37                	mov    %esi,(%edi)
50b7b5:	8b c6                	mov    %esi,%eax
50b7b7:	5b                   	pop    %ebx
50b7b8:	5f                   	pop    %edi
50b7b9:	5e                   	pop    %esi
50b7ba:	c3                   	ret
50b7bb:	cc                   	int3
50b7bc:	cc                   	int3
50b7bd:	cc                   	int3
50b7be:	cc                   	int3
50b7bf:	cc                   	int3
50b7c0:	6a 23                	push   $0x23
50b7c2:	68 98 ae 62 00       	push   $0x62ae98
50b7c7:	6a 10                	push   $0x10
50b7c9:	e8 72 52 fd ff       	call   0x4e0a40
50b7ce:	83 c4 0c             	add    $0xc,%esp
50b7d1:	85 c0                	test   %eax,%eax
50b7d3:	75 17                	jne    0x50b7ec
50b7d5:	6a 25                	push   $0x25
50b7d7:	68 98 ae 62 00       	push   $0x62ae98
50b7dc:	6a 41                	push   $0x41
50b7de:	6a 65                	push   $0x65
50b7e0:	6a 07                	push   $0x7
50b7e2:	e8 99 d7 fc ff       	call   0x4d8f80
50b7e7:	83 c4 14             	add    $0x14,%esp
50b7ea:	33 c0                	xor    %eax,%eax
50b7ec:	c3                   	ret
50b7ed:	cc                   	int3
50b7ee:	cc                   	int3
50b7ef:	cc                   	int3
50b7f0:	6a 23                	push   $0x23
50b7f2:	68 98 ae 62 00       	push   $0x62ae98
50b7f7:	6a 10                	push   $0x10
50b7f9:	e8 42 52 fd ff       	call   0x4e0a40
50b7fe:	83 c4 0c             	add    $0xc,%esp
50b801:	85 c0                	test   %eax,%eax
50b803:	75 18                	jne    0x50b81d
50b805:	6a 25                	push   $0x25
50b807:	68 98 ae 62 00       	push   $0x62ae98
50b80c:	6a 41                	push   $0x41
50b80e:	6a 65                	push   $0x65
50b810:	6a 07                	push   $0x7
50b812:	e8 69 d7 fc ff       	call   0x4d8f80
50b817:	83 c4 14             	add    $0x14,%esp
50b81a:	33 c0                	xor    %eax,%eax
50b81c:	c3                   	ret
50b81d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50b821:	89 48 0c             	mov    %ecx,0xc(%eax)
50b824:	c3                   	ret
50b825:	cc                   	int3
50b826:	cc                   	int3
50b827:	cc                   	int3
50b828:	cc                   	int3
50b829:	cc                   	int3
50b82a:	cc                   	int3
50b82b:	cc                   	int3
50b82c:	cc                   	int3
50b82d:	cc                   	int3
50b82e:	cc                   	int3
50b82f:	cc                   	int3
50b830:	8b 54 24 08          	mov    0x8(%esp),%edx
50b834:	56                   	push   %esi
50b835:	8b 74 24 10          	mov    0x10(%esp),%esi
50b839:	57                   	push   %edi
50b83a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
50b83e:	8d 46 ff             	lea    -0x1(%esi),%eax
50b841:	03 c7                	add    %edi,%eax
50b843:	85 d2                	test   %edx,%edx
50b845:	74 1c                	je     0x50b863
50b847:	85 f6                	test   %esi,%esi
50b849:	74 32                	je     0x50b87d
50b84b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50b850:	8a 0a                	mov    (%edx),%cl
50b852:	8d 40 ff             	lea    -0x1(%eax),%eax
50b855:	88 48 01             	mov    %cl,0x1(%eax)
50b858:	8d 52 01             	lea    0x1(%edx),%edx
50b85b:	83 ee 01             	sub    $0x1,%esi
50b85e:	75 f0                	jne    0x50b850
50b860:	5f                   	pop    %edi
50b861:	5e                   	pop    %esi
50b862:	c3                   	ret
50b863:	d1 ee                	shr    $1,%esi
50b865:	74 16                	je     0x50b87d
50b867:	8a 0f                	mov    (%edi),%cl
50b869:	8d 40 ff             	lea    -0x1(%eax),%eax
50b86c:	8a 50 01             	mov    0x1(%eax),%dl
50b86f:	8d 7f 01             	lea    0x1(%edi),%edi
50b872:	88 48 01             	mov    %cl,0x1(%eax)
50b875:	88 57 ff             	mov    %dl,-0x1(%edi)
50b878:	83 ee 01             	sub    $0x1,%esi
50b87b:	75 ea                	jne    0x50b867
50b87d:	5f                   	pop    %edi
50b87e:	5e                   	pop    %esi
50b87f:	c3                   	ret
50b880:	56                   	push   %esi
50b881:	57                   	push   %edi
50b882:	6a 3e                	push   $0x3e
50b884:	68 98 ae 62 00       	push   $0x62ae98
50b889:	ff 74 24 18          	push   0x18(%esp)
50b88d:	e8 9e 88 fd ff       	call   0x4e4130
50b892:	8b 7c 24 18          	mov    0x18(%esp),%edi
50b896:	8b f0                	mov    %eax,%esi
50b898:	83 c4 0c             	add    $0xc,%esp
50b89b:	8b 47 04             	mov    0x4(%edi),%eax
50b89e:	85 c0                	test   %eax,%eax
50b8a0:	74 28                	je     0x50b8ca
50b8a2:	85 f6                	test   %esi,%esi
50b8a4:	74 24                	je     0x50b8ca
50b8a6:	ff 37                	push   (%edi)
50b8a8:	50                   	push   %eax
50b8a9:	56                   	push   %esi
50b8aa:	e8 21 75 0c 00       	call   0x5d2dd0
50b8af:	6a 42                	push   $0x42
50b8b1:	68 98 ae 62 00       	push   $0x62ae98
50b8b6:	ff 37                	push   (%edi)
50b8b8:	ff 77 04             	push   0x4(%edi)
50b8bb:	e8 30 88 fd ff       	call   0x4e40f0
50b8c0:	83 c4 1c             	add    $0x1c,%esp
50b8c3:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
50b8ca:	5f                   	pop    %edi
50b8cb:	8b c6                	mov    %esi,%eax
50b8cd:	5e                   	pop    %esi
50b8ce:	c3                   	ret
50b8cf:	cc                   	int3
50b8d0:	53                   	push   %ebx
50b8d1:	56                   	push   %esi
50b8d2:	8b 74 24 0c          	mov    0xc(%esp),%esi
50b8d6:	57                   	push   %edi
50b8d7:	85 f6                	test   %esi,%esi
50b8d9:	74 3e                	je     0x50b919
50b8db:	8b 7c 24 14          	mov    0x14(%esp),%edi
50b8df:	8b c7                	mov    %edi,%eax
50b8e1:	99                   	cltd
50b8e2:	83 e2 07             	and    $0x7,%edx
50b8e5:	8d 1c 02             	lea    (%edx,%eax,1),%ebx
50b8e8:	c1 fb 03             	sar    $0x3,%ebx
50b8eb:	8d 4b 01             	lea    0x1(%ebx),%ecx
50b8ee:	39 0e                	cmp    %ecx,(%esi)
50b8f0:	7c 27                	jl     0x50b919
50b8f2:	8b 56 08             	mov    0x8(%esi),%edx
50b8f5:	85 d2                	test   %edx,%edx
50b8f7:	74 20                	je     0x50b919
50b8f9:	83 e7 07             	and    $0x7,%edi
50b8fc:	b9 07 00 00 00       	mov    $0x7,%ecx
50b901:	2b cf                	sub    %edi,%ecx
50b903:	b8 01 00 00 00       	mov    $0x1,%eax
50b908:	d3 e0                	shl    %cl,%eax
50b90a:	84 04 1a             	test   %al,(%edx,%ebx,1)
50b90d:	b8 00 00 00 00       	mov    $0x0,%eax
50b912:	5f                   	pop    %edi
50b913:	5e                   	pop    %esi
50b914:	0f 95 c0             	setne  %al
50b917:	5b                   	pop    %ebx
50b918:	c3                   	ret
50b919:	5f                   	pop    %edi