42b524:	56                   	push   %esi
42b525:	57                   	push   %edi
42b526:	8b f1                	mov    %ecx,%esi
42b528:	8b fa                	mov    %edx,%edi
42b52a:	8b 4d 08             	mov    0x8(%ebp),%ecx
42b52d:	89 75 fc             	mov    %esi,-0x4(%ebp)
42b530:	3b f9                	cmp    %ecx,%edi
42b532:	75 15                	jne    0x42b549
42b534:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
42b53a:	8b c6                	mov    %esi,%eax
42b53c:	5f                   	pop    %edi
42b53d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
42b544:	5e                   	pop    %esi
42b545:	8b e5                	mov    %ebp,%esp
42b547:	5d                   	pop    %ebp
42b548:	c3                   	ret
42b549:	8b 45 0c             	mov    0xc(%ebp),%eax
42b54c:	83 e8 00             	sub    $0x0,%eax
42b54f:	74 1d                	je     0x42b56e
42b551:	83 e8 01             	sub    $0x1,%eax
42b554:	74 3d                	je     0x42b593
42b556:	83 e8 01             	sub    $0x1,%eax
42b559:	75 d9                	jne    0x42b534
42b55b:	8b 41 f8             	mov    -0x8(%ecx),%eax
42b55e:	8b 49 fc             	mov    -0x4(%ecx),%ecx
42b561:	89 06                	mov    %eax,(%esi)
42b563:	8b c6                	mov    %esi,%eax
42b565:	5f                   	pop    %edi
42b566:	89 4e 04             	mov    %ecx,0x4(%esi)
42b569:	5e                   	pop    %esi
42b56a:	8b e5                	mov    %ebp,%esp
42b56c:	5d                   	pop    %ebp
42b56d:	c3                   	ret
42b56e:	53                   	push   %ebx
42b56f:	8d 5f 08             	lea    0x8(%edi),%ebx
42b572:	3b d9                	cmp    %ecx,%ebx
42b574:	74 1c                	je     0x42b592
42b576:	8b f1                	mov    %ecx,%esi
42b578:	57                   	push   %edi
42b579:	53                   	push   %ebx
42b57a:	e8 d1 f8 ff ff       	call   0x42ae50
42b57f:	84 c0                	test   %al,%al
42b581:	8b cb                	mov    %ebx,%ecx
42b583:	0f 44 cf             	cmove  %edi,%ecx
42b586:	83 c3 08             	add    $0x8,%ebx
42b589:	8b f9                	mov    %ecx,%edi
42b58b:	3b de                	cmp    %esi,%ebx
42b58d:	75 e9                	jne    0x42b578
42b58f:	8b 75 fc             	mov    -0x4(%ebp),%esi
42b592:	5b                   	pop    %ebx
42b593:	8b 07                	mov    (%edi),%eax
42b595:	8b 4f 04             	mov    0x4(%edi),%ecx
42b598:	89 06                	mov    %eax,(%esi)
42b59a:	8b c6                	mov    %esi,%eax
42b59c:	5f                   	pop    %edi
42b59d:	89 4e 04             	mov    %ecx,0x4(%esi)
42b5a0:	5e                   	pop    %esi
42b5a1:	8b e5                	mov    %ebp,%esp
42b5a3:	5d                   	pop    %ebp
42b5a4:	c3                   	ret
42b5a5:	cc                   	int3
42b5a6:	cc                   	int3
42b5a7:	cc                   	int3
42b5a8:	cc                   	int3
42b5a9:	cc                   	int3
42b5aa:	cc                   	int3
42b5ab:	cc                   	int3
42b5ac:	cc                   	int3
42b5ad:	cc                   	int3
42b5ae:	cc                   	int3
42b5af:	cc                   	int3
42b5b0:	55                   	push   %ebp
42b5b1:	8b ec                	mov    %esp,%ebp
42b5b3:	8b 45 08             	mov    0x8(%ebp),%eax
42b5b6:	83 ec 10             	sub    $0x10,%esp
42b5b9:	53                   	push   %ebx
42b5ba:	8b 5d 0c             	mov    0xc(%ebp),%ebx
42b5bd:	57                   	push   %edi
42b5be:	8b f9                	mov    %ecx,%edi
42b5c0:	3b c3                	cmp    %ebx,%eax
42b5c2:	0f 84 d9 00 00 00    	je     0x42b6a1
42b5c8:	8b 4f 08             	mov    0x8(%edi),%ecx
42b5cb:	2b d8                	sub    %eax,%ebx
42b5cd:	56                   	push   %esi
42b5ce:	8b 77 04             	mov    0x4(%edi),%esi
42b5d1:	8b d1                	mov    %ecx,%edx
42b5d3:	2b d6                	sub    %esi,%edx
42b5d5:	c1 fb 03             	sar    $0x3,%ebx
42b5d8:	c1 fa 03             	sar    $0x3,%edx
42b5db:	89 55 f8             	mov    %edx,-0x8(%ebp)
42b5de:	8b 57 0c             	mov    0xc(%edi),%edx
42b5e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b5e4:	2b d6                	sub    %esi,%edx
42b5e6:	03 c3                	add    %ebx,%eax
42b5e8:	c1 fa 03             	sar    $0x3,%edx
42b5eb:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b5ee:	3b c2                	cmp    %edx,%eax
42b5f0:	8b 45 08             	mov    0x8(%ebp),%eax
42b5f3:	0f 86 92 00 00 00    	jbe    0x42b68b
42b5f9:	8b 45 f4             	mov    -0xc(%ebp),%eax
42b5fc:	c1 e2 03             	shl    $0x3,%edx
42b5ff:	c1 e0 03             	shl    $0x3,%eax
42b602:	89 55 f0             	mov    %edx,-0x10(%ebp)
42b605:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b608:	85 f6                	test   %esi,%esi
42b60a:	74 16                	je     0x42b622
42b60c:	8b c8                	mov    %eax,%ecx
42b60e:	2b ca                	sub    %edx,%ecx
42b610:	8b 55 10             	mov    0x10(%ebp),%edx
42b613:	8b 02                	mov    (%edx),%eax
42b615:	03 4a 04             	add    0x4(%edx),%ecx
42b618:	3b 48 04             	cmp    0x4(%eax),%ecx
42b61b:	77 0a                	ja     0x42b627
42b61d:	89 4a 04             	mov    %ecx,0x4(%edx)
42b620:	eb 51                	jmp    0x42b673
42b622:	8b 55 10             	mov    0x10(%ebp),%edx
42b625:	eb 03                	jmp    0x42b62a
42b627:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b62a:	50                   	push   %eax
42b62b:	8b ca                	mov    %edx,%ecx
42b62d:	e8 de f0 ff ff       	call   0x42a710
42b632:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b635:	85 c0                	test   %eax,%eax
42b637:	74 67                	je     0x42b6a0
42b639:	85 f6                	test   %esi,%esi
42b63b:	74 34                	je     0x42b671
42b63d:	ff 75 f0             	push   -0x10(%ebp)
42b640:	56                   	push   %esi
42b641:	50                   	push   %eax
42b642:	e8 d9 ff 03 00       	call   0x46b620
42b647:	8b 45 10             	mov    0x10(%ebp),%eax
42b64a:	83 c4 0c             	add    $0xc,%esp
42b64d:	8b 00                	mov    (%eax),%eax
42b64f:	8b 08                	mov    (%eax),%ecx
42b651:	8d 41 08             	lea    0x8(%ecx),%eax
42b654:	3b c6                	cmp    %esi,%eax
42b656:	75 16                	jne    0x42b66e
42b658:	8b 31                	mov    (%ecx),%esi
42b65a:	85 f6                	test   %esi,%esi
42b65c:	74 10                	je     0x42b66e
42b65e:	51                   	push   %ecx
42b65f:	e8 1e e0 04 00       	call   0x479682
42b664:	8b 45 10             	mov    0x10(%ebp),%eax
42b667:	83 c4 04             	add    $0x4,%esp
42b66a:	8b 00                	mov    (%eax),%eax
42b66c:	89 30                	mov    %esi,(%eax)
42b66e:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b671:	8b f0                	mov    %eax,%esi
42b673:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b676:	89 77 04             	mov    %esi,0x4(%edi)
42b679:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
42b67c:	8b 45 f4             	mov    -0xc(%ebp),%eax
42b67f:	89 4f 08             	mov    %ecx,0x8(%edi)
42b682:	8d 04 c6             	lea    (%esi,%eax,8),%eax
42b685:	89 47 0c             	mov    %eax,0xc(%edi)
42b688:	8b 45 08             	mov    0x8(%ebp),%eax
42b68b:	8d 34 dd 00 00 00 00 	lea    0x0(,%ebx,8),%esi
42b692:	56                   	push   %esi
42b693:	50                   	push   %eax
42b694:	51                   	push   %ecx
42b695:	e8 86 ff 03 00       	call   0x46b620
42b69a:	83 c4 0c             	add    $0xc,%esp
42b69d:	01 77 08             	add    %esi,0x8(%edi)
42b6a0:	5e                   	pop    %esi
42b6a1:	5f                   	pop    %edi
42b6a2:	5b                   	pop    %ebx
42b6a3:	8b e5                	mov    %ebp,%esp
42b6a5:	5d                   	pop    %ebp
42b6a6:	c2 0c 00             	ret    $0xc
42b6a9:	cc                   	int3
42b6aa:	cc                   	int3
42b6ab:	cc                   	int3
42b6ac:	cc                   	int3
42b6ad:	cc                   	int3
42b6ae:	cc                   	int3
42b6af:	cc                   	int3
42b6b0:	55                   	push   %ebp
42b6b1:	8b ec                	mov    %esp,%ebp
42b6b3:	83 ec 28             	sub    $0x28,%esp
42b6b6:	83 39 00             	cmpl   $0x0,(%ecx)
42b6b9:	53                   	push   %ebx
42b6ba:	56                   	push   %esi
42b6bb:	57                   	push   %edi
42b6bc:	8d 79 08             	lea    0x8(%ecx),%edi
42b6bf:	89 7d f0             	mov    %edi,-0x10(%ebp)
42b6c2:	8d 71 04             	lea    0x4(%ecx),%esi
42b6c5:	0f 85 61 01 00 00    	jne    0x42b82c
42b6cb:	8b 0f                	mov    (%edi),%ecx
42b6cd:	2b 0e                	sub    (%esi),%ecx
42b6cf:	c1 f9 03             	sar    $0x3,%ecx
42b6d2:	83 f9 02             	cmp    $0x2,%ecx
42b6d5:	0f 8e 54 01 00 00    	jle    0x42b82f
42b6db:	8b 55 08             	mov    0x8(%ebp),%edx
42b6de:	8b c1                	mov    %ecx,%eax
42b6e0:	d1 e8                	shr    $1,%eax
42b6e2:	bf 01 00 00 00       	mov    $0x1,%edi
42b6e7:	03 c1                	add    %ecx,%eax
42b6e9:	89 7d f4             	mov    %edi,-0xc(%ebp)
42b6ec:	f3 0f 7e 02          	movq   (%edx),%xmm0
42b6f0:	66 0f d6 45 e0       	movq   %xmm0,-0x20(%ebp)
42b6f5:	3b c7                	cmp    %edi,%eax
42b6f7:	76 10                	jbe    0x42b709
42b6f9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
42b700:	03 ff                	add    %edi,%edi
42b702:	3b f8                	cmp    %eax,%edi
42b704:	72 fa                	jb     0x42b700
42b706:	89 7d f4             	mov    %edi,-0xc(%ebp)
42b709:	8d 1c bd 00 00 00 00 	lea    0x0(,%edi,4),%ebx
42b710:	8b ca                	mov    %edx,%ecx
42b712:	53                   	push   %ebx
42b713:	e8 f8 ef ff ff       	call   0x42a710
42b718:	89 45 ec             	mov    %eax,-0x14(%ebp)
42b71b:	85 c0                	test   %eax,%eax
42b71d:	75 33                	jne    0x42b752
42b71f:	8b 5d 08             	mov    0x8(%ebp),%ebx
42b722:	8b 7d e0             	mov    -0x20(%ebp),%edi
42b725:	8b 03                	mov    (%ebx),%eax
42b727:	3b c7                	cmp    %edi,%eax
42b729:	0f 84 d2 00 00 00    	je     0x42b801
42b72f:	90                   	nop
42b730:	8b 30                	mov    (%eax),%esi
42b732:	50                   	push   %eax
42b733:	e8 4a df 04 00       	call   0x479682
42b738:	83 c4 04             	add    $0x4,%esp
42b73b:	8b c6                	mov    %esi,%eax
42b73d:	3b f7                	cmp    %edi,%esi
42b73f:	75 ef                	jne    0x42b730
42b741:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42b744:	89 3b                	mov    %edi,(%ebx)
42b746:	89 43 04             	mov    %eax,0x4(%ebx)
42b749:	5f                   	pop    %edi
42b74a:	5e                   	pop    %esi
42b74b:	5b                   	pop    %ebx
42b74c:	8b e5                	mov    %ebp,%esp
42b74e:	5d                   	pop    %ebp
42b74f:	c2 04 00             	ret    $0x4
42b752:	53                   	push   %ebx
42b753:	6a 00                	push   $0x0
42b755:	50                   	push   %eax
42b756:	e8 55 04 04 00       	call   0x46bbb0
42b75b:	8b 45 f0             	mov    -0x10(%ebp),%eax
42b75e:	83 c4 0c             	add    $0xc,%esp
42b761:	8b 16                	mov    (%esi),%edx
42b763:	8b da                	mov    %edx,%ebx
42b765:	89 55 f8             	mov    %edx,-0x8(%ebp)
42b768:	3b 18                	cmp    (%eax),%ebx
42b76a:	74 71                	je     0x42b7dd
42b76c:	0f 1f 40 00          	nopl   0x0(%eax)
42b770:	8b 43 04             	mov    0x4(%ebx),%eax
42b773:	85 c0                	test   %eax,%eax
42b775:	74 04                	je     0x42b77b
42b777:	33 f6                	xor    %esi,%esi
42b779:	eb 02                	jmp    0x42b77d
42b77b:	8b 33                	mov    (%ebx),%esi
42b77d:	85 c0                	test   %eax,%eax
42b77f:	0f 45 f0             	cmovne %eax,%esi
42b782:	85 f6                	test   %esi,%esi
42b784:	74 4d                	je     0x42b7d3
42b786:	8b c6                	mov    %esi,%eax
42b788:	8d 57 ff             	lea    -0x1(%edi),%edx
42b78b:	c1 e8 10             	shr    $0x10,%eax
42b78e:	33 c6                	xor    %esi,%eax
42b790:	69 c8 6b ca eb 85    	imul   $0x85ebca6b,%eax,%ecx
42b796:	8b c1                	mov    %ecx,%eax
42b798:	c1 e8 0d             	shr    $0xd,%eax
42b79b:	33 c1                	xor    %ecx,%eax
42b79d:	69 c8 35 ae b2 c2    	imul   $0xc2b2ae35,%eax,%ecx
42b7a3:	8b c1                	mov    %ecx,%eax
42b7a5:	c1 e8 10             	shr    $0x10,%eax
42b7a8:	33 c1                	xor    %ecx,%eax
42b7aa:	23 c2                	and    %edx,%eax
42b7ac:	33 c9                	xor    %ecx,%ecx
42b7ae:	66 90                	xchg   %ax,%ax
42b7b0:	8b 55 ec             	mov    -0x14(%ebp),%edx
42b7b3:	8d 3c 82             	lea    (%edx,%eax,4),%edi
42b7b6:	8b 17                	mov    (%edi),%edx
42b7b8:	85 d2                	test   %edx,%edx
42b7ba:	74 56                	je     0x42b812
42b7bc:	8b 7d f4             	mov    -0xc(%ebp),%edi
42b7bf:	3b d6                	cmp    %esi,%edx
42b7c1:	74 0d                	je     0x42b7d0
42b7c3:	40                   	inc    %eax
42b7c4:	8d 57 ff             	lea    -0x1(%edi),%edx
42b7c7:	03 c1                	add    %ecx,%eax
42b7c9:	41                   	inc    %ecx
42b7ca:	23 c2                	and    %edx,%eax
42b7cc:	3b ca                	cmp    %edx,%ecx
42b7ce:	76 e0                	jbe    0x42b7b0
42b7d0:	8b 55 f8             	mov    -0x8(%ebp),%edx
42b7d3:	8b 45 f0             	mov    -0x10(%ebp),%eax
42b7d6:	83 c3 08             	add    $0x8,%ebx
42b7d9:	3b 18                	cmp    (%eax),%ebx
42b7db:	75 93                	jne    0x42b770
42b7dd:	8b 5d 08             	mov    0x8(%ebp),%ebx
42b7e0:	8b 7d e0             	mov    -0x20(%ebp),%edi
42b7e3:	89 10                	mov    %edx,(%eax)
42b7e5:	8b 03                	mov    (%ebx),%eax
42b7e7:	3b c7                	cmp    %edi,%eax
42b7e9:	74 16                	je     0x42b801
42b7eb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
42b7f0:	8b 30                	mov    (%eax),%esi
42b7f2:	50                   	push   %eax
42b7f3:	e8 8a de 04 00       	call   0x479682
42b7f8:	83 c4 04             	add    $0x4,%esp
42b7fb:	8b c6                	mov    %esi,%eax
42b7fd:	3b f7                	cmp    %edi,%esi
42b7ff:	75 ef                	jne    0x42b7f0
42b801:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42b804:	89 3b                	mov    %edi,(%ebx)
42b806:	89 43 04             	mov    %eax,0x4(%ebx)
42b809:	5f                   	pop    %edi
42b80a:	5e                   	pop    %esi
42b80b:	5b                   	pop    %ebx
42b80c:	8b e5                	mov    %ebp,%esp
42b80e:	5d                   	pop    %ebp
42b80f:	c2 04 00             	ret    $0x4
42b812:	8b 55 f8             	mov    -0x8(%ebp),%edx
42b815:	89 37                	mov    %esi,(%edi)
42b817:	8b 03                	mov    (%ebx),%eax
42b819:	8b 4b 04             	mov    0x4(%ebx),%ecx
42b81c:	8b 7d f4             	mov    -0xc(%ebp),%edi
42b81f:	89 02                	mov    %eax,(%edx)
42b821:	89 4a 04             	mov    %ecx,0x4(%edx)
42b824:	83 c2 08             	add    $0x8,%edx
42b827:	89 55 f8             	mov    %edx,-0x8(%ebp)
42b82a:	eb a7                	jmp    0x42b7d3
42b82c:	89 7d f0             	mov    %edi,-0x10(%ebp)
42b82f:	8b 1f                	mov    (%edi),%ebx
42b831:	8b d3                	mov    %ebx,%edx
42b833:	8b 0e                	mov    (%esi),%ecx
42b835:	2b d1                	sub    %ecx,%edx
42b837:	8b c2                	mov    %edx,%eax
42b839:	89 5d ec             	mov    %ebx,-0x14(%ebp)
42b83c:	83 e0 f8             	and    $0xfffffff8,%eax
42b83f:	83 f8 08             	cmp    $0x8,%eax
42b842:	7e 29                	jle    0x42b86d
42b844:	8b 19                	mov    (%ecx),%ebx
42b846:	8b 79 08             	mov    0x8(%ecx),%edi
42b849:	3b df                	cmp    %edi,%ebx
42b84b:	75 08                	jne    0x42b855
42b84d:	8b 41 04             	mov    0x4(%ecx),%eax
42b850:	3b 41 0c             	cmp    0xc(%ecx),%eax
42b853:	74 12                	je     0x42b867
42b855:	83 ea 08             	sub    $0x8,%edx
42b858:	83 c1 08             	add    $0x8,%ecx
42b85b:	8b c2                	mov    %edx,%eax
42b85d:	8b df                	mov    %edi,%ebx
42b85f:	83 e0 f8             	and    $0xfffffff8,%eax
42b862:	83 f8 08             	cmp    $0x8,%eax
42b865:	7f df                	jg     0x42b846