50a51f:	cc                   	int3
50a520:	cc                   	int3
50a521:	cc                   	int3
50a522:	cc                   	int3
50a523:	cc                   	int3
50a524:	cc                   	int3
50a525:	cc                   	int3
50a526:	cc                   	int3
50a527:	cc                   	int3
50a528:	cc                   	int3
50a529:	cc                   	int3
50a52a:	cc                   	int3
50a52b:	cc                   	int3
50a52c:	cc                   	int3
50a52d:	cc                   	int3
50a52e:	cc                   	int3
50a52f:	cc                   	int3
50a530:	8b 44 24 04          	mov    0x4(%esp),%eax
50a534:	c2 08 00             	ret    $0x8
50a537:	cc                   	int3
50a538:	cc                   	int3
50a539:	cc                   	int3
50a53a:	cc                   	int3
50a53b:	cc                   	int3
50a53c:	cc                   	int3
50a53d:	cc                   	int3
50a53e:	cc                   	int3
50a53f:	cc                   	int3
50a540:	8b 44 24 04          	mov    0x4(%esp),%eax
50a544:	c3                   	ret
50a545:	cc                   	int3
50a546:	cc                   	int3
50a547:	cc                   	int3
50a548:	cc                   	int3
50a549:	cc                   	int3
50a54a:	cc                   	int3
50a54b:	cc                   	int3
50a54c:	cc                   	int3
50a54d:	cc                   	int3
50a54e:	cc                   	int3
50a54f:	cc                   	int3
50a550:	8b 51 04             	mov    0x4(%ecx),%edx
50a553:	b8 4f ec c4 4e       	mov    $0x4ec4ec4f,%eax
50a558:	2b 11                	sub    (%ecx),%edx
50a55a:	f7 ea                	imul   %edx
50a55c:	c1 fa 04             	sar    $0x4,%edx
50a55f:	8b c2                	mov    %edx,%eax
50a561:	c1 e8 1f             	shr    $0x1f,%eax
50a564:	03 c2                	add    %edx,%eax
50a566:	c3                   	ret
50a567:	cc                   	int3
50a568:	cc                   	int3
50a569:	cc                   	int3
50a56a:	cc                   	int3
50a56b:	cc                   	int3
50a56c:	cc                   	int3
50a56d:	cc                   	int3
50a56e:	cc                   	int3
50a56f:	cc                   	int3
50a570:	51                   	push   %ecx
50a571:	8b 44 24 0c          	mov    0xc(%esp),%eax
50a575:	56                   	push   %esi
50a576:	8b f1                	mov    %ecx,%esi
50a578:	50                   	push   %eax
50a579:	89 74 24 08          	mov    %esi,0x8(%esp)
50a57d:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
50a584:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
50a58b:	c6 06 00             	movb   $0x0,(%esi)
50a58e:	e8 2f 6f f1 ff       	call   0x4214c2
50a593:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
50a59a:	8b c6                	mov    %esi,%eax
50a59c:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
50a5a3:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
50a5aa:	5e                   	pop    %esi
50a5ab:	59                   	pop    %ecx
50a5ac:	c2 0c 00             	ret    $0xc
50a5af:	cc                   	int3
50a5b0:	cc                   	int3
50a5b1:	cc                   	int3
50a5b2:	cc                   	int3
50a5b3:	cc                   	int3
50a5b4:	cc                   	int3
50a5b5:	cc                   	int3
50a5b6:	cc                   	int3
50a5b7:	cc                   	int3
50a5b8:	cc                   	int3
50a5b9:	cc                   	int3
50a5ba:	cc                   	int3
50a5bb:	cc                   	int3
50a5bc:	cc                   	int3
50a5bd:	cc                   	int3
50a5be:	cc                   	int3
50a5bf:	cc                   	int3
50a5c0:	8b 44 24 04          	mov    0x4(%esp),%eax
50a5c4:	8b 00                	mov    (%eax),%eax
50a5c6:	89 01                	mov    %eax,(%ecx)
50a5c8:	8b 44 24 08          	mov    0x8(%esp),%eax
50a5cc:	8a 00                	mov    (%eax),%al
50a5ce:	88 41 04             	mov    %al,0x4(%ecx)
50a5d1:	8b c1                	mov    %ecx,%eax
50a5d3:	c2 08 00             	ret    $0x8
50a5d6:	cc                   	int3
50a5d7:	cc                   	int3
50a5d8:	cc                   	int3
50a5d9:	cc                   	int3
50a5da:	cc                   	int3
50a5db:	cc                   	int3
50a5dc:	cc                   	int3
50a5dd:	cc                   	int3
50a5de:	cc                   	int3
50a5df:	cc                   	int3
50a5e0:	8b 44 24 04          	mov    0x4(%esp),%eax
50a5e4:	8b 00                	mov    (%eax),%eax
50a5e6:	89 01                	mov    %eax,(%ecx)
50a5e8:	8b 44 24 08          	mov    0x8(%esp),%eax
50a5ec:	8a 00                	mov    (%eax),%al
50a5ee:	88 41 04             	mov    %al,0x4(%ecx)
50a5f1:	8b c1                	mov    %ecx,%eax
50a5f3:	c2 08 00             	ret    $0x8
50a5f6:	cc                   	int3
50a5f7:	cc                   	int3
50a5f8:	cc                   	int3
50a5f9:	cc                   	int3
50a5fa:	cc                   	int3
50a5fb:	cc                   	int3
50a5fc:	cc                   	int3
50a5fd:	cc                   	int3
50a5fe:	cc                   	int3
50a5ff:	cc                   	int3
50a600:	8b 44 24 04          	mov    0x4(%esp),%eax
50a604:	89 01                	mov    %eax,(%ecx)
50a606:	8b c1                	mov    %ecx,%eax
50a608:	c2 04 00             	ret    $0x4
50a60b:	cc                   	int3
50a60c:	cc                   	int3
50a60d:	cc                   	int3
50a60e:	cc                   	int3
50a60f:	cc                   	int3
50a610:	8b 44 24 04          	mov    0x4(%esp),%eax
50a614:	89 01                	mov    %eax,(%ecx)
50a616:	8b c1                	mov    %ecx,%eax
50a618:	c2 04 00             	ret    $0x4
50a61b:	cc                   	int3
50a61c:	cc                   	int3
50a61d:	cc                   	int3
50a61e:	cc                   	int3
50a61f:	cc                   	int3
50a620:	51                   	push   %ecx
50a621:	8b 44 24 08          	mov    0x8(%esp),%eax
50a625:	56                   	push   %esi
50a626:	8b f1                	mov    %ecx,%esi
50a628:	89 74 24 04          	mov    %esi,0x4(%esp)
50a62c:	8b 00                	mov    (%eax),%eax
50a62e:	50                   	push   %eax
50a62f:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
50a636:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
50a63d:	c6 06 00             	movb   $0x0,(%esi)
50a640:	e8 7d 6e f1 ff       	call   0x4214c2
50a645:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
50a64c:	8b c6                	mov    %esi,%eax
50a64e:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
50a655:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
50a65c:	5e                   	pop    %esi
50a65d:	59                   	pop    %ecx
50a65e:	c2 10 00             	ret    $0x10
50a661:	cc                   	int3
50a662:	cc                   	int3
50a663:	cc                   	int3
50a664:	cc                   	int3
50a665:	cc                   	int3
50a666:	cc                   	int3
50a667:	cc                   	int3
50a668:	cc                   	int3
50a669:	cc                   	int3
50a66a:	cc                   	int3
50a66b:	cc                   	int3
50a66c:	cc                   	int3
50a66d:	cc                   	int3
50a66e:	cc                   	int3
50a66f:	cc                   	int3
50a670:	cc                   	int3
50a671:	cc                   	int3
50a672:	cc                   	int3
50a673:	cc                   	int3
50a674:	cc                   	int3
50a675:	cc                   	int3
50a676:	cc                   	int3
50a677:	cc                   	int3
50a678:	cc                   	int3
50a679:	cc                   	int3
50a67a:	cc                   	int3
50a67b:	cc                   	int3
50a67c:	cc                   	int3
50a67d:	cc                   	int3
50a67e:	cc                   	int3
50a67f:	cc                   	int3
50a680:	56                   	push   %esi
50a681:	57                   	push   %edi
50a682:	ff 74 24 10          	push   0x10(%esp)
50a686:	ff 74 24 10          	push   0x10(%esp)
50a68a:	e8 13 7c ef ff       	call   0x4022a2
50a68f:	8b f8                	mov    %eax,%edi
50a691:	8d 77 08             	lea    0x8(%edi),%esi
50a694:	85 f6                	test   %esi,%esi
50a696:	74 36                	je     0x50a6ce
50a698:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50a69c:	8b 09                	mov    (%ecx),%ecx
50a69e:	51                   	push   %ecx
50a69f:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
50a6a6:	8b ce                	mov    %esi,%ecx
50a6a8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
50a6af:	c6 06 00             	movb   $0x0,(%esi)
50a6b2:	e8 0b 6e f1 ff       	call   0x4214c2
50a6b7:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
50a6be:	8b c7                	mov    %edi,%eax
50a6c0:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
50a6c7:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
50a6ce:	5f                   	pop    %edi
50a6cf:	5e                   	pop    %esi
50a6d0:	c2 14 00             	ret    $0x14
50a6d3:	cc                   	int3
50a6d4:	cc                   	int3
50a6d5:	cc                   	int3
50a6d6:	cc                   	int3
50a6d7:	cc                   	int3
50a6d8:	cc                   	int3
50a6d9:	cc                   	int3
50a6da:	cc                   	int3
50a6db:	cc                   	int3
50a6dc:	cc                   	int3
50a6dd:	cc                   	int3
50a6de:	cc                   	int3
50a6df:	cc                   	int3
50a6e0:	cc                   	int3
50a6e1:	cc                   	int3
50a6e2:	cc                   	int3
50a6e3:	cc                   	int3
50a6e4:	cc                   	int3
50a6e5:	cc                   	int3
50a6e6:	cc                   	int3
50a6e7:	cc                   	int3
50a6e8:	cc                   	int3
50a6e9:	cc                   	int3
50a6ea:	cc                   	int3
50a6eb:	cc                   	int3
50a6ec:	cc                   	int3
50a6ed:	cc                   	int3
50a6ee:	cc                   	int3
50a6ef:	cc                   	int3
50a6f0:	8b 44 24 04          	mov    0x4(%esp),%eax
50a6f4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50a6f8:	89 08                	mov    %ecx,(%eax)
50a6fa:	c2 0c 00             	ret    $0xc
50a6fd:	cc                   	int3
50a6fe:	cc                   	int3
50a6ff:	cc                   	int3
50a700:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50a704:	b8 79 78 78 78       	mov    $0x78787879,%eax
50a709:	2b 4c 24 04          	sub    0x4(%esp),%ecx
50a70d:	f7 e9                	imul   %ecx
50a70f:	c1 fa 07             	sar    $0x7,%edx
50a712:	8b c2                	mov    %edx,%eax
50a714:	c1 e8 1f             	shr    $0x1f,%eax
50a717:	03 c2                	add    %edx,%eax
50a719:	c3                   	ret
50a71a:	cc                   	int3
50a71b:	cc                   	int3
50a71c:	cc                   	int3
50a71d:	cc                   	int3
50a71e:	cc                   	int3
50a71f:	cc                   	int3
50a720:	55                   	push   %ebp
50a721:	8b ec                	mov    %esp,%ebp
50a723:	6a ff                	push   $0xffffffff
50a725:	68 40 90 b4 00       	push   $0xb49040
50a72a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
50a730:	50                   	push   %eax
50a731:	83 ec 1c             	sub    $0x1c,%esp
50a734:	53                   	push   %ebx
50a735:	56                   	push   %esi
50a736:	57                   	push   %edi
50a737:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
50a73c:	33 c5                	xor    %ebp,%eax
50a73e:	50                   	push   %eax
50a73f:	8d 45 f4             	lea    -0xc(%ebp),%eax
50a742:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
50a748:	89 65 f0             	mov    %esp,-0x10(%ebp)
50a74b:	89 4d e8             	mov    %ecx,-0x18(%ebp)
50a74e:	8b 45 0c             	mov    0xc(%ebp),%eax
50a751:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
50a758:	8b 48 14             	mov    0x14(%eax),%ecx
50a75b:	8b 58 10             	mov    0x10(%eax),%ebx
50a75e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
50a761:	83 f9 10             	cmp    $0x10,%ecx
50a764:	72 04                	jb     0x50a76a
50a766:	8b 30                	mov    (%eax),%esi
50a768:	eb 02                	jmp    0x50a76c
50a76a:	8b f0                	mov    %eax,%esi
50a76c:	33 c9                	xor    %ecx,%ecx
50a76e:	ba c5 9d 1c 81       	mov    $0x811c9dc5,%edx
50a773:	85 db                	test   %ebx,%ebx
50a775:	74 11                	je     0x50a788
50a777:	0f b6 04 0e          	movzbl (%esi,%ecx,1),%eax
50a77b:	41                   	inc    %ecx
50a77c:	33 c2                	xor    %edx,%eax
50a77e:	69 d0 93 01 00 01    	imul   $0x1000193,%eax,%edx
50a784:	3b cb                	cmp    %ebx,%ecx
50a786:	72 ef                	jb     0x50a777
50a788:	8b 5d e8             	mov    -0x18(%ebp),%ebx
50a78b:	8d 4b 04             	lea    0x4(%ebx),%ecx
50a78e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
50a791:	8b 43 18             	mov    0x18(%ebx),%eax
50a794:	8b 7b 0c             	mov    0xc(%ebx),%edi
50a797:	23 c2                	and    %edx,%eax
50a799:	8d 14 c5 00 00 00 00 	lea    0x0(,%eax,8),%edx
50a7a0:	8b 04 17             	mov    (%edi,%edx,1),%eax
50a7a3:	89 55 ec             	mov    %edx,-0x14(%ebp)
50a7a6:	89 45 e0             	mov    %eax,-0x20(%ebp)
50a7a9:	3b 01                	cmp    (%ecx),%eax
50a7ab:	75 04                	jne    0x50a7b1
50a7ad:	8b 39                	mov    (%ecx),%edi
50a7af:	eb 06                	jmp    0x50a7b7
50a7b1:	8b 7c 17 04          	mov    0x4(%edi,%edx,1),%edi
50a7b5:	8b 3f                	mov    (%edi),%edi
50a7b7:	3b f8                	cmp    %eax,%edi
50a7b9:	0f 84 ab 00 00 00    	je     0x50a86a
50a7bf:	90                   	nop
50a7c0:	8b 7f 04             	mov    0x4(%edi),%edi
50a7c3:	83 7f 1c 10          	cmpl   $0x10,0x1c(%edi)
50a7c7:	8d 4f 08             	lea    0x8(%edi),%ecx
50a7ca:	8d 51 10             	lea    0x10(%ecx),%edx
50a7cd:	72 02                	jb     0x50a7d1
50a7cf:	8b 09                	mov    (%ecx),%ecx
50a7d1:	83 7d e4 10          	cmpl   $0x10,-0x1c(%ebp)
50a7d5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
50a7d8:	72 02                	jb     0x50a7dc
50a7da:	8b 1b                	mov    (%ebx),%ebx
50a7dc:	8b 45 0c             	mov    0xc(%ebp),%eax
50a7df:	8b 12                	mov    (%edx),%edx
50a7e1:	8b f2                	mov    %edx,%esi
50a7e3:	89 55 dc             	mov    %edx,-0x24(%ebp)
50a7e6:	39 50 10             	cmp    %edx,0x10(%eax)
50a7e9:	0f 42 70 10          	cmovb  0x10(%eax),%esi
50a7ed:	8b 45 e0             	mov    -0x20(%ebp),%eax
50a7f0:	85 f6                	test   %esi,%esi
50a7f2:	74 5f                	je     0x50a853
50a7f4:	83 ee 04             	sub    $0x4,%esi
50a7f7:	72 18                	jb     0x50a811
50a7f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
50a800:	8b 13                	mov    (%ebx),%edx