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
50f67b:	66 0f 5a c8          	cvtpd2ps %xmm0,%xmm1
50f67f:	66 0f 6e c0          	movd   %eax,%xmm0
50f683:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
50f687:	c1 e8 1f             	shr    $0x1f,%eax
50f68a:	f2 0f 58 04 c5 60 2d 	addsd  0xbd2d60(,%eax,8),%xmm0
50f691:	bd 00
50f693:	66 0f 5a c0          	cvtpd2ps %xmm0,%xmm0
50f697:	f3 0f 5e c8          	divss  %xmm0,%xmm1
50f69b:	f3 0f 11 0c 24       	movss  %xmm1,(%esp)
50f6a0:	d9 04 24             	flds   (%esp)
50f6a3:	59                   	pop    %ecx
50f6a4:	c3                   	ret
50f6a5:	cc                   	int3
50f6a6:	cc                   	int3
50f6a7:	cc                   	int3
50f6a8:	cc                   	int3
50f6a9:	cc                   	int3
50f6aa:	cc                   	int3
50f6ab:	cc                   	int3
50f6ac:	cc                   	int3
50f6ad:	cc                   	int3
50f6ae:	cc                   	int3
50f6af:	cc                   	int3
50f6b0:	cc                   	int3
50f6b1:	cc                   	int3
50f6b2:	cc                   	int3
50f6b3:	cc                   	int3
50f6b4:	cc                   	int3
50f6b5:	cc                   	int3
50f6b6:	cc                   	int3
50f6b7:	cc                   	int3
50f6b8:	cc                   	int3
50f6b9:	cc                   	int3
50f6ba:	cc                   	int3
50f6bb:	cc                   	int3
50f6bc:	cc                   	int3
50f6bd:	cc                   	int3
50f6be:	cc                   	int3
50f6bf:	cc                   	int3
50f6c0:	83 ec 0c             	sub    $0xc,%esp
50f6c3:	53                   	push   %ebx
50f6c4:	8b 5c 24 18          	mov    0x18(%esp),%ebx
50f6c8:	55                   	push   %ebp
50f6c9:	56                   	push   %esi
50f6ca:	57                   	push   %edi
50f6cb:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
50f6cf:	8b f9                	mov    %ecx,%edi
50f6d1:	8b 6b 10             	mov    0x10(%ebx),%ebp
50f6d4:	72 04                	jb     0x50f6da
50f6d6:	8b 33                	mov    (%ebx),%esi
50f6d8:	eb 02                	jmp    0x50f6dc
50f6da:	8b f3                	mov    %ebx,%esi
50f6dc:	33 c9                	xor    %ecx,%ecx
50f6de:	ba c5 9d 1c 81       	mov    $0x811c9dc5,%edx
50f6e3:	85 ed                	test   %ebp,%ebp
50f6e5:	74 11                	je     0x50f6f8
50f6e7:	0f b6 04 0e          	movzbl (%esi,%ecx,1),%eax
50f6eb:	41                   	inc    %ecx
50f6ec:	33 c2                	xor    %edx,%eax
50f6ee:	69 d0 93 01 00 01    	imul   $0x1000193,%eax,%edx
50f6f4:	3b cd                	cmp    %ebp,%ecx
50f6f6:	72 ef                	jb     0x50f6e7
50f6f8:	8b 4f 18             	mov    0x18(%edi),%ecx
50f6fb:	23 ca                	and    %edx,%ecx
50f6fd:	8b 57 0c             	mov    0xc(%edi),%edx
50f700:	8b 04 ca             	mov    (%edx,%ecx,8),%eax
50f703:	03 c9                	add    %ecx,%ecx
50f705:	8b 34 8a             	mov    (%edx,%ecx,4),%esi
50f708:	41                   	inc    %ecx
50f709:	89 74 24 10          	mov    %esi,0x10(%esp)
50f70d:	8b 77 04             	mov    0x4(%edi),%esi
50f710:	89 74 24 24          	mov    %esi,0x24(%esp)
50f714:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
50f717:	89 4c 24 18          	mov    %ecx,0x18(%esp)
50f71b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
50f720:	39 74 24 10          	cmp    %esi,0x10(%esp)
50f724:	75 04                	jne    0x50f72a
50f726:	8b ce                	mov    %esi,%ecx
50f728:	eb 04                	jmp    0x50f72e
50f72a:	8b 09                	mov    (%ecx),%ecx
50f72c:	8b 09                	mov    (%ecx),%ecx
50f72e:	3b c1                	cmp    %ecx,%eax
50f730:	0f 84 2d 01 00 00    	je     0x50f863
50f736:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
50f73a:	8d 50 08             	lea    0x8(%eax),%edx
50f73d:	72 04                	jb     0x50f743
50f73f:	8b 3b                	mov    (%ebx),%edi
50f741:	eb 02                	jmp    0x50f745
50f743:	8b fb                	mov    %ebx,%edi
50f745:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
50f749:	8d 4a 10             	lea    0x10(%edx),%ecx
50f74c:	72 02                	jb     0x50f750
50f74e:	8b 12                	mov    (%edx),%edx
50f750:	8b 09                	mov    (%ecx),%ecx
50f752:	8b f5                	mov    %ebp,%esi
50f754:	3b cd                	cmp    %ebp,%ecx
50f756:	89 4c 24 14          	mov    %ecx,0x14(%esp)
50f75a:	0f 42 f1             	cmovb  %ecx,%esi
50f75d:	85 f6                	test   %esi,%esi
50f75f:	74 59                	je     0x50f7ba
50f761:	83 ee 04             	sub    $0x4,%esi
50f764:	72 11                	jb     0x50f777
50f766:	8b 0a                	mov    (%edx),%ecx
50f768:	3b 0f                	cmp    (%edi),%ecx
50f76a:	75 10                	jne    0x50f77c
50f76c:	83 c2 04             	add    $0x4,%edx
50f76f:	83 c7 04             	add    $0x4,%edi
50f772:	83 ee 04             	sub    $0x4,%esi
50f775:	73 ef                	jae    0x50f766
50f777:	83 fe fc             	cmp    $0xfffffffc,%esi
50f77a:	74 34                	je     0x50f7b0
50f77c:	8a 0a                	mov    (%edx),%cl
50f77e:	3a 0f                	cmp    (%edi),%cl
50f780:	75 27                	jne    0x50f7a9
50f782:	83 fe fd             	cmp    $0xfffffffd,%esi
50f785:	74 29                	je     0x50f7b0
50f787:	8a 4a 01             	mov    0x1(%edx),%cl
50f78a:	3a 4f 01             	cmp    0x1(%edi),%cl
50f78d:	75 1a                	jne    0x50f7a9
50f78f:	83 fe fe             	cmp    $0xfffffffe,%esi
50f792:	74 1c                	je     0x50f7b0
50f794:	8a 4a 02             	mov    0x2(%edx),%cl
50f797:	3a 4f 02             	cmp    0x2(%edi),%cl
50f79a:	75 0d                	jne    0x50f7a9
50f79c:	83 fe ff             	cmp    $0xffffffff,%esi
50f79f:	74 0f                	je     0x50f7b0
50f7a1:	8a 4a 03             	mov    0x3(%edx),%cl
50f7a4:	3a 4f 03             	cmp    0x3(%edi),%cl
50f7a7:	74 07                	je     0x50f7b0
50f7a9:	1b c9                	sbb    %ecx,%ecx
50f7ab:	83 c9 01             	or     $0x1,%ecx
50f7ae:	eb 02                	jmp    0x50f7b2
50f7b0:	33 c9                	xor    %ecx,%ecx
50f7b2:	85 c9                	test   %ecx,%ecx
50f7b4:	75 0a                	jne    0x50f7c0
50f7b6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
50f7ba:	3b cd                	cmp    %ebp,%ecx
50f7bc:	72 02                	jb     0x50f7c0
50f7be:	76 0f                	jbe    0x50f7cf
50f7c0:	8b 00                	mov    (%eax),%eax
50f7c2:	8b 74 24 24          	mov    0x24(%esp),%esi
50f7c6:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50f7ca:	e9 51 ff ff ff       	jmp    0x50f720
50f7cf:	83 78 1c 10          	cmpl   $0x10,0x1c(%eax)
50f7d3:	8d 50 08             	lea    0x8(%eax),%edx
50f7d6:	8d 7a 10             	lea    0x10(%edx),%edi
50f7d9:	72 02                	jb     0x50f7dd
50f7db:	8b 12                	mov    (%edx),%edx
50f7dd:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
50f7e1:	72 02                	jb     0x50f7e5
50f7e3:	8b 1b                	mov    (%ebx),%ebx
50f7e5:	8b 3f                	mov    (%edi),%edi
50f7e7:	3b ef                	cmp    %edi,%ebp
50f7e9:	8b f7                	mov    %edi,%esi
50f7eb:	0f 42 f5             	cmovb  %ebp,%esi
50f7ee:	85 f6                	test   %esi,%esi
50f7f0:	74 55                	je     0x50f847
50f7f2:	83 ee 04             	sub    $0x4,%esi
50f7f5:	72 11                	jb     0x50f808
50f7f7:	8b 0b                	mov    (%ebx),%ecx
50f7f9:	3b 0a                	cmp    (%edx),%ecx
50f7fb:	75 10                	jne    0x50f80d
50f7fd:	83 c3 04             	add    $0x4,%ebx
50f800:	83 c2 04             	add    $0x4,%edx
50f803:	83 ee 04             	sub    $0x4,%esi
50f806:	73 ef                	jae    0x50f7f7
50f808:	83 fe fc             	cmp    $0xfffffffc,%esi
50f80b:	74 34                	je     0x50f841
50f80d:	8a 0b                	mov    (%ebx),%cl
50f80f:	3a 0a                	cmp    (%edx),%cl
50f811:	75 27                	jne    0x50f83a
50f813:	83 fe fd             	cmp    $0xfffffffd,%esi
50f816:	74 29                	je     0x50f841
50f818:	8a 4b 01             	mov    0x1(%ebx),%cl
50f81b:	3a 4a 01             	cmp    0x1(%edx),%cl