50f406:	8b 44 24 08          	mov    0x8(%esp),%eax
50f40a:	89 50 04             	mov    %edx,0x4(%eax)
50f40d:	c2 0c 00             	ret    $0xc
50f410:	cc                   	int3
50f411:	cc                   	int3
50f412:	cc                   	int3
50f413:	cc                   	int3
50f414:	cc                   	int3
50f415:	cc                   	int3
50f416:	cc                   	int3
50f417:	cc                   	int3
50f418:	cc                   	int3
50f419:	cc                   	int3
50f41a:	cc                   	int3
50f41b:	cc                   	int3
50f41c:	cc                   	int3
50f41d:	cc                   	int3
50f41e:	cc                   	int3
50f41f:	cc                   	int3
50f420:	cc                   	int3
50f421:	cc                   	int3
50f422:	cc                   	int3
50f423:	cc                   	int3
50f424:	cc                   	int3
50f425:	cc                   	int3
50f426:	cc                   	int3
50f427:	cc                   	int3
50f428:	cc                   	int3
50f429:	cc                   	int3
50f42a:	cc                   	int3
50f42b:	cc                   	int3
50f42c:	cc                   	int3
50f42d:	cc                   	int3
50f42e:	cc                   	int3
50f42f:	cc                   	int3
50f430:	8b 44 24 04          	mov    0x4(%esp),%eax
50f434:	56                   	push   %esi
50f435:	8b 70 04             	mov    0x4(%eax),%esi
50f438:	8b 10                	mov    (%eax),%edx
50f43a:	89 16                	mov    %edx,(%esi)
50f43c:	8b 30                	mov    (%eax),%esi
50f43e:	8b 50 04             	mov    0x4(%eax),%edx
50f441:	89 56 04             	mov    %edx,0x4(%esi)
50f444:	ff 49 04             	decl   0x4(%ecx)
50f447:	5e                   	pop    %esi
50f448:	c2 04 00             	ret    $0x4
50f44b:	cc                   	int3
50f44c:	cc                   	int3
50f44d:	cc                   	int3
50f44e:	cc                   	int3
50f44f:	cc                   	int3
50f450:	cc                   	int3
50f451:	cc                   	int3
50f452:	cc                   	int3
50f453:	cc                   	int3
50f454:	cc                   	int3
50f455:	cc                   	int3
50f456:	cc                   	int3
50f457:	cc                   	int3
50f458:	cc                   	int3
50f459:	cc                   	int3
50f45a:	cc                   	int3
50f45b:	cc                   	int3
50f45c:	cc                   	int3
50f45d:	cc                   	int3
50f45e:	cc                   	int3
50f45f:	cc                   	int3
50f460:	8b 44 24 04          	mov    0x4(%esp),%eax
50f464:	8b 49 0c             	mov    0xc(%ecx),%ecx
50f467:	8d 04 c5 04 00 00 00 	lea    0x4(,%eax,8),%eax
50f46e:	03 c1                	add    %ecx,%eax
50f470:	c2 04 00             	ret    $0x4
50f473:	cc                   	int3
50f474:	cc                   	int3
50f475:	cc                   	int3
50f476:	cc                   	int3
50f477:	cc                   	int3
50f478:	cc                   	int3
50f479:	cc                   	int3
50f47a:	cc                   	int3
50f47b:	cc                   	int3
50f47c:	cc                   	int3
50f47d:	cc                   	int3
50f47e:	cc                   	int3
50f47f:	cc                   	int3
50f480:	8b 49 0c             	mov    0xc(%ecx),%ecx
50f483:	8b 44 24 04          	mov    0x4(%esp),%eax
50f487:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
50f48a:	c2 04 00             	ret    $0x4
50f48d:	cc                   	int3
50f48e:	cc                   	int3
50f48f:	cc                   	int3
50f490:	8b 01                	mov    (%ecx),%eax
50f492:	8b 08                	mov    (%eax),%ecx
50f494:	8b 44 24 04          	mov    0x4(%esp),%eax
50f498:	89 08                	mov    %ecx,(%eax)
50f49a:	c2 04 00             	ret    $0x4
50f49d:	cc                   	int3
50f49e:	cc                   	int3
50f49f:	cc                   	int3
50f4a0:	8b 44 24 04          	mov    0x4(%esp),%eax
50f4a4:	8b 09                	mov    (%ecx),%ecx
50f4a6:	89 08                	mov    %ecx,(%eax)
50f4a8:	c2 04 00             	ret    $0x4
50f4ab:	cc                   	int3
50f4ac:	cc                   	int3
50f4ad:	cc                   	int3
50f4ae:	cc                   	int3
50f4af:	cc                   	int3
50f4b0:	8b 41 1c             	mov    0x1c(%ecx),%eax
50f4b3:	c3                   	ret
50f4b4:	cc                   	int3
50f4b5:	cc                   	int3
50f4b6:	cc                   	int3
50f4b7:	cc                   	int3
50f4b8:	cc                   	int3
50f4b9:	cc                   	int3
50f4ba:	cc                   	int3
50f4bb:	cc                   	int3
50f4bc:	cc                   	int3
50f4bd:	cc                   	int3
50f4be:	cc                   	int3
50f4bf:	cc                   	int3
50f4c0:	8b 44 24 04          	mov    0x4(%esp),%eax
50f4c4:	8b 49 04             	mov    0x4(%ecx),%ecx
50f4c7:	89 08                	mov    %ecx,(%eax)
50f4c9:	c2 04 00             	ret    $0x4
50f4cc:	cc                   	int3
50f4cd:	cc                   	int3
50f4ce:	cc                   	int3
50f4cf:	cc                   	int3
50f4d0:	8b 44 24 04          	mov    0x4(%esp),%eax
50f4d4:	8b 09                	mov    (%ecx),%ecx
50f4d6:	89 08                	mov    %ecx,(%eax)
50f4d8:	c2 04 00             	ret    $0x4
50f4db:	cc                   	int3
50f4dc:	cc                   	int3
50f4dd:	cc                   	int3
50f4de:	cc                   	int3
50f4df:	cc                   	int3
50f4e0:	8b 44 24 04          	mov    0x4(%esp),%eax
50f4e4:	8b 49 04             	mov    0x4(%ecx),%ecx
50f4e7:	89 08                	mov    %ecx,(%eax)
50f4e9:	c2 04 00             	ret    $0x4
50f4ec:	cc                   	int3
50f4ed:	cc                   	int3
50f4ee:	cc                   	int3
50f4ef:	cc                   	int3
50f4f0:	8b 44 24 08          	mov    0x8(%esp),%eax
50f4f4:	83 78 1c 10          	cmpl   $0x10,0x1c(%eax)
50f4f8:	53                   	push   %ebx
50f4f9:	8b 58 18             	mov    0x18(%eax),%ebx
50f4fc:	55                   	push   %ebp
50f4fd:	56                   	push   %esi
50f4fe:	8d 70 08             	lea    0x8(%eax),%esi
50f501:	8b e9                	mov    %ecx,%ebp
50f503:	57                   	push   %edi
50f504:	72 02                	jb     0x50f508
50f506:	8b 36                	mov    (%esi),%esi
50f508:	33 d2                	xor    %edx,%edx
50f50a:	bf c5 9d 1c 81       	mov    $0x811c9dc5,%edi
50f50f:	85 db                	test   %ebx,%ebx
50f511:	74 11                	je     0x50f524
50f513:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
50f517:	42                   	inc    %edx
50f518:	33 cf                	xor    %edi,%ecx
50f51a:	69 f9 93 01 00 01    	imul   $0x1000193,%ecx,%edi
50f520:	3b d3                	cmp    %ebx,%edx
50f522:	72 ef                	jb     0x50f513
50f524:	8b 4d 18             	mov    0x18(%ebp),%ecx
50f527:	23 cf                	and    %edi,%ecx
50f529:	8d 14 cd 00 00 00 00 	lea    0x0(,%ecx,8),%edx
50f530:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50f533:	03 ca                	add    %edx,%ecx
50f535:	39 41 04             	cmp    %eax,0x4(%ecx)
50f538:	75 1d                	jne    0x50f557
50f53a:	39 01                	cmp    %eax,(%ecx)
50f53c:	75 11                	jne    0x50f54f
50f53e:	8b 45 04             	mov    0x4(%ebp),%eax
50f541:	89 01                	mov    %eax,(%ecx)
50f543:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50f546:	8b 45 04             	mov    0x4(%ebp),%eax
50f549:	89 44 11 04          	mov    %eax,0x4(%ecx,%edx,1)
50f54d:	eb 10                	jmp    0x50f55f
50f54f:	8b 40 04             	mov    0x4(%eax),%eax
50f552:	89 41 04             	mov    %eax,0x4(%ecx)
50f555:	eb 08                	jmp    0x50f55f
50f557:	39 01                	cmp    %eax,(%ecx)
50f559:	75 08                	jne    0x50f563
50f55b:	8b 00                	mov    (%eax),%eax
50f55d:	89 01                	mov    %eax,(%ecx)
50f55f:	8b 44 24 18          	mov    0x18(%esp),%eax
50f563:	8b 74 24 14          	mov    0x14(%esp),%esi
50f567:	8d 4d 04             	lea    0x4(%ebp),%ecx
50f56a:	50                   	push   %eax
50f56b:	56                   	push   %esi
50f56c:	e8 07 25 ef ff       	call   0x401a78
50f571:	5f                   	pop    %edi
50f572:	8b c6                	mov    %esi,%eax
50f574:	5e                   	pop    %esi
50f575:	5d                   	pop    %ebp
50f576:	5b                   	pop    %ebx
50f577:	c2 08 00             	ret    $0x8
50f57a:	cc                   	int3
50f57b:	cc                   	int3
50f57c:	cc                   	int3
50f57d:	cc                   	int3
50f57e:	cc                   	int3
50f57f:	cc                   	int3
50f580:	cc                   	int3
50f581:	cc                   	int3
50f582:	cc                   	int3
50f583:	cc                   	int3
50f584:	cc                   	int3
50f585:	cc                   	int3
50f586:	cc                   	int3
50f587:	cc                   	int3
50f588:	cc                   	int3
50f589:	cc                   	int3
50f58a:	cc                   	int3
50f58b:	cc                   	int3
50f58c:	cc                   	int3
50f58d:	cc                   	int3
50f58e:	cc                   	int3
50f58f:	cc                   	int3
50f590:	cc                   	int3
50f591:	cc                   	int3
50f592:	cc                   	int3
50f593:	cc                   	int3
50f594:	cc                   	int3
50f595:	cc                   	int3
50f596:	cc                   	int3
50f597:	cc                   	int3
50f598:	cc                   	int3
50f599:	cc                   	int3
50f59a:	cc                   	int3
50f59b:	cc                   	int3
50f59c:	cc                   	int3
50f59d:	cc                   	int3
50f59e:	cc                   	int3
50f59f:	cc                   	int3
50f5a0:	56                   	push   %esi
50f5a1:	8b 74 24 0c          	mov    0xc(%esp),%esi
50f5a5:	57                   	push   %edi
50f5a6:	8b f9                	mov    %ecx,%edi
50f5a8:	8b 06                	mov    (%esi),%eax
50f5aa:	89 44 24 10          	mov    %eax,0x10(%esp)
50f5ae:	8b 56 04             	mov    0x4(%esi),%edx
50f5b1:	8b 06                	mov    (%esi),%eax
50f5b3:	89 02                	mov    %eax,(%edx)
50f5b5:	8b 0e                	mov    (%esi),%ecx
50f5b7:	8b 46 04             	mov    0x4(%esi),%eax
50f5ba:	89 41 04             	mov    %eax,0x4(%ecx)
50f5bd:	ff 4f 04             	decl   0x4(%edi)
50f5c0:	8d 7e 08             	lea    0x8(%esi),%edi
50f5c3:	8d 4f 18             	lea    0x18(%edi),%ecx
50f5c6:	e8 74 53 ef ff       	call   0x40493f
50f5cb:	8b 47 14             	mov    0x14(%edi),%eax
50f5ce:	83 f8 10             	cmp    $0x10,%eax
50f5d1:	72 0b                	jb     0x50f5de
50f5d3:	40                   	inc    %eax
50f5d4:	8b cf                	mov    %edi,%ecx
50f5d6:	50                   	push   %eax
50f5d7:	ff 37                	push   (%edi)
50f5d9:	e8 3e 50 f2 ff       	call   0x43461c
50f5de:	c7 47 14 0f 00 00 00 	movl   $0xf,0x14(%edi)
50f5e5:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
50f5e9:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
50f5f0:	72 02                	jb     0x50f5f4
50f5f2:	8b 3f                	mov    (%edi),%edi
50f5f4:	56                   	push   %esi
50f5f5:	c6 07 00             	movb   $0x0,(%edi)
50f5f8:	e8 92 21 ef ff       	call   0x40178f
50f5fd:	8b 44 24 10          	mov    0x10(%esp),%eax
50f601:	83 c4 04             	add    $0x4,%esp
50f604:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50f608:	5f                   	pop    %edi
50f609:	89 08                	mov    %ecx,(%eax)
50f60b:	5e                   	pop    %esi
50f60c:	c2 08 00             	ret    $0x8
50f60f:	cc                   	int3
50f610:	cc                   	int3
50f611:	cc                   	int3
50f612:	cc                   	int3
50f613:	cc                   	int3
50f614:	cc                   	int3
50f615:	cc                   	int3
50f616:	cc                   	int3
50f617:	cc                   	int3
50f618:	cc                   	int3
50f619:	cc                   	int3
50f61a:	cc                   	int3
50f61b:	cc                   	int3
50f61c:	cc                   	int3
50f61d:	cc                   	int3
50f61e:	cc                   	int3
50f61f:	cc                   	int3
50f620:	cc                   	int3
50f621:	cc                   	int3
50f622:	cc                   	int3
50f623:	cc                   	int3
50f624:	cc                   	int3
50f625:	cc                   	int3
50f626:	cc                   	int3
50f627:	cc                   	int3
50f628:	cc                   	int3
50f629:	cc                   	int3
50f62a:	cc                   	int3
50f62b:	cc                   	int3
50f62c:	cc                   	int3
50f62d:	cc                   	int3
50f62e:	cc                   	int3
50f62f:	cc                   	int3
50f630:	ff 74 24 08          	push   0x8(%esp)
50f634:	ff 74 24 08          	push   0x8(%esp)
50f638:	e8 f8 8d f0 ff       	call   0x418435
50f63d:	8b 44 24 04          	mov    0x4(%esp),%eax
50f641:	c2 08 00             	ret    $0x8
50f644:	cc                   	int3
50f645:	cc                   	int3
50f646:	cc                   	int3
50f647:	cc                   	int3
50f648:	cc                   	int3
50f649:	cc                   	int3
50f64a:	cc                   	int3
50f64b:	cc                   	int3
50f64c:	cc                   	int3
50f64d:	cc                   	int3
50f64e:	cc                   	int3
50f64f:	cc                   	int3
50f650:	8b 01                	mov    (%ecx),%eax
50f652:	8b 00                	mov    (%eax),%eax
50f654:	83 c0 08             	add    $0x8,%eax
50f657:	c3                   	ret
50f658:	cc                   	int3
50f659:	cc                   	int3
50f65a:	cc                   	int3
50f65b:	cc                   	int3
50f65c:	cc                   	int3
50f65d:	cc                   	int3
50f65e:	cc                   	int3
50f65f:	cc                   	int3
50f660:	51                   	push   %ecx
50f661:	8b 41 08             	mov    0x8(%ecx),%eax
50f664:	66 0f 6e c0          	movd   %eax,%xmm0
50f668:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
50f66c:	c1 e8 1f             	shr    $0x1f,%eax
50f66f:	f2 0f 58 04 c5 60 2d 	addsd  0xbd2d60(,%eax,8),%xmm0
50f676:	bd 00
50f678:	8b 41 1c             	mov    0x1c(%ecx),%eax