50b476:	89 01                	mov    %eax,(%ecx)
50b478:	b8 01 00 00 00       	mov    $0x1,%eax
50b47d:	5e                   	pop    %esi
50b47e:	c3                   	ret
50b47f:	33 c0                	xor    %eax,%eax
50b481:	5e                   	pop    %esi
50b482:	c3                   	ret
50b483:	cc                   	int3
50b484:	cc                   	int3
50b485:	cc                   	int3
50b486:	cc                   	int3
50b487:	cc                   	int3
50b488:	cc                   	int3
50b489:	cc                   	int3
50b48a:	cc                   	int3
50b48b:	cc                   	int3
50b48c:	cc                   	int3
50b48d:	cc                   	int3
50b48e:	cc                   	int3
50b48f:	cc                   	int3
50b490:	8b 44 24 04          	mov    0x4(%esp),%eax
50b494:	56                   	push   %esi
50b495:	85 c0                	test   %eax,%eax
50b497:	0f 84 8e 00 00 00    	je     0x50b52b
50b49d:	8b 08                	mov    (%eax),%ecx
50b49f:	85 c9                	test   %ecx,%ecx
50b4a1:	0f 84 84 00 00 00    	je     0x50b52b
50b4a7:	8b 44 24 14          	mov    0x14(%esp),%eax
50b4ab:	8b 70 10             	mov    0x10(%eax),%esi
50b4ae:	85 f6                	test   %esi,%esi
50b4b0:	74 79                	je     0x50b52b
50b4b2:	f6 46 04 02          	testb  $0x2,0x4(%esi)
50b4b6:	74 73                	je     0x50b52b
50b4b8:	8b 76 14             	mov    0x14(%esi),%esi
50b4bb:	03 f1                	add    %ecx,%esi
50b4bd:	74 6c                	je     0x50b52b
50b4bf:	57                   	push   %edi
50b4c0:	68 92 00 00 00       	push   $0x92
50b4c5:	68 80 ae 62 00       	push   $0x62ae80
50b4ca:	ff 36                	push   (%esi)
50b4cc:	e8 af 52 fd ff       	call   0x4e0780
50b4d1:	8b 7c 24 20          	mov    0x20(%esp),%edi
50b4d5:	68 93 00 00 00       	push   $0x93
50b4da:	68 80 ae 62 00       	push   $0x62ae80
50b4df:	57                   	push   %edi
50b4e0:	e8 6b 52 fd ff       	call   0x4e0750
50b4e5:	83 c4 18             	add    $0x18,%esp
50b4e8:	89 06                	mov    %eax,(%esi)
50b4ea:	85 c0                	test   %eax,%eax
50b4ec:	75 1d                	jne    0x50b50b
50b4ee:	68 94 00 00 00       	push   $0x94
50b4f3:	68 80 ae 62 00       	push   $0x62ae80
50b4f8:	6a 41                	push   $0x41
50b4fa:	6a 73                	push   $0x73
50b4fc:	6a 0d                	push   $0xd
50b4fe:	e8 7d da fc ff       	call   0x4d8f80
50b503:	83 c4 14             	add    $0x14,%esp
50b506:	33 c0                	xor    %eax,%eax
50b508:	5f                   	pop    %edi
50b509:	5e                   	pop    %esi
50b50a:	c3                   	ret
50b50b:	57                   	push   %edi
50b50c:	ff 74 24 14          	push   0x14(%esp)
50b510:	50                   	push   %eax
50b511:	e8 ba 78 0c 00       	call   0x5d2dd0
50b516:	83 c4 0c             	add    $0xc,%esp
50b519:	89 7e 04             	mov    %edi,0x4(%esi)
50b51c:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
50b523:	b8 01 00 00 00       	mov    $0x1,%eax
50b528:	5f                   	pop    %edi
50b529:	5e                   	pop    %esi
50b52a:	c3                   	ret
50b52b:	b8 01 00 00 00       	mov    $0x1,%eax
50b530:	5e                   	pop    %esi
50b531:	c3                   	ret
50b532:	cc                   	int3
50b533:	cc                   	int3
50b534:	cc                   	int3
50b535:	cc                   	int3
50b536:	cc                   	int3
50b537:	cc                   	int3
50b538:	cc                   	int3
50b539:	cc                   	int3
50b53a:	cc                   	int3
50b53b:	cc                   	int3
50b53c:	cc                   	int3
50b53d:	cc                   	int3
50b53e:	cc                   	int3
50b53f:	cc                   	int3
50b540:	8b 44 24 08          	mov    0x8(%esp),%eax
50b544:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50b548:	8b 50 04             	mov    0x4(%eax),%edx
50b54b:	8b 01                	mov    (%ecx),%eax
50b54d:	8b 04 02             	mov    (%edx,%eax,1),%eax
50b550:	c3                   	ret
50b551:	cc                   	int3
50b552:	cc                   	int3
50b553:	cc                   	int3
50b554:	cc                   	int3
50b555:	cc                   	int3
50b556:	cc                   	int3
50b557:	cc                   	int3
50b558:	cc                   	int3
50b559:	cc                   	int3
50b55a:	cc                   	int3
50b55b:	cc                   	int3
50b55c:	cc                   	int3
50b55d:	cc                   	int3
50b55e:	cc                   	int3
50b55f:	cc                   	int3
50b560:	8b 44 24 08          	mov    0x8(%esp),%eax
50b564:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50b568:	8b 40 08             	mov    0x8(%eax),%eax
50b56b:	03 01                	add    (%ecx),%eax
50b56d:	c3                   	ret
50b56e:	cc                   	int3
50b56f:	cc                   	int3
50b570:	8b 44 24 0c          	mov    0xc(%esp),%eax
50b574:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50b578:	8b 50 04             	mov    0x4(%eax),%edx
50b57b:	8b 44 24 04          	mov    0x4(%esp),%eax
50b57f:	03 10                	add    (%eax),%edx
50b581:	8b 02                	mov    (%edx),%eax
50b583:	89 0a                	mov    %ecx,(%edx)
50b585:	c3                   	ret
50b586:	cc                   	int3
50b587:	cc                   	int3
50b588:	cc                   	int3
50b589:	cc                   	int3
50b58a:	cc                   	int3
50b58b:	cc                   	int3
50b58c:	cc                   	int3
50b58d:	cc                   	int3
50b58e:	cc                   	int3
50b58f:	cc                   	int3
50b590:	56                   	push   %esi
50b591:	8b 74 24 08          	mov    0x8(%esp),%esi
50b595:	85 f6                	test   %esi,%esi
50b597:	74 41                	je     0x50b5da
50b599:	8b 46 04             	mov    0x4(%esi),%eax
50b59c:	85 c0                	test   %eax,%eax
50b59e:	74 2a                	je     0x50b5ca
50b5a0:	f6 46 0c 01          	testb  $0x1,0xc(%esi)
50b5a4:	8b 4e 08             	mov    0x8(%esi),%ecx
50b5a7:	74 10                	je     0x50b5b9
50b5a9:	6a 31                	push   $0x31
50b5ab:	68 98 ae 62 00       	push   $0x62ae98
50b5b0:	51                   	push   %ecx
50b5b1:	50                   	push   %eax
50b5b2:	e8 39 8b fd ff       	call   0x4e40f0
50b5b7:	eb 0e                	jmp    0x50b5c7
50b5b9:	6a 33                	push   $0x33
50b5bb:	68 98 ae 62 00       	push   $0x62ae98
50b5c0:	51                   	push   %ecx
50b5c1:	50                   	push   %eax
50b5c2:	e8 79 52 fd ff       	call   0x4e0840
50b5c7:	83 c4 10             	add    $0x10,%esp
50b5ca:	6a 35                	push   $0x35
50b5cc:	68 98 ae 62 00       	push   $0x62ae98
50b5d1:	56                   	push   %esi
50b5d2:	e8 a9 51 fd ff       	call   0x4e0780
50b5d7:	83 c4 0c             	add    $0xc,%esp
50b5da:	5e                   	pop    %esi
50b5db:	c3                   	ret
50b5dc:	cc                   	int3
50b5dd:	cc                   	int3
50b5de:	cc                   	int3
50b5df:	cc                   	int3
50b5e0:	56                   	push   %esi
50b5e1:	8b 74 24 0c          	mov    0xc(%esp),%esi
50b5e5:	57                   	push   %edi
50b5e6:	8b 7c 24 0c          	mov    0xc(%esp),%edi
50b5ea:	8b 0f                	mov    (%edi),%ecx
50b5ec:	3b ce                	cmp    %esi,%ecx
50b5ee:	73 1f                	jae    0x50b60f
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