46b5e5:	e8 e6 77 16 00       	call   0x5d2dd0
46b5ea:	8b 45 1c             	mov    0x1c(%ebp),%eax
46b5ed:	83 c4 0c             	add    $0xc,%esp
46b5f0:	03 c6                	add    %esi,%eax
46b5f2:	8d 73 04             	lea    0x4(%ebx),%esi
46b5f5:	89 45 14             	mov    %eax,0x14(%ebp)
46b5f8:	8b 03                	mov    (%ebx),%eax
46b5fa:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
46b5fd:	89 07                	mov    %eax,(%edi)
46b5ff:	83 c7 04             	add    $0x4,%edi
46b602:	ff 33                	push   (%ebx)
46b604:	8d 47 04             	lea    0x4(%edi),%eax
46b607:	ff 36                	push   (%esi)
46b609:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46b60c:	89 45 18             	mov    %eax,0x18(%ebp)
46b60f:	e8 ac 37 00 00       	call   0x46edc0
46b614:	84 c0                	test   %al,%al
46b616:	74 26                	je     0x46b63e
46b618:	8b 06                	mov    (%esi),%eax
46b61a:	83 c6 04             	add    $0x4,%esi
46b61d:	89 07                	mov    %eax,(%edi)
46b61f:	3b 75 10             	cmp    0x10(%ebp),%esi
46b622:	75 2b                	jne    0x46b64f
46b624:	8b 45 14             	mov    0x14(%ebp),%eax
46b627:	8b 7d 18             	mov    0x18(%ebp),%edi
46b62a:	2b c3                	sub    %ebx,%eax
46b62c:	50                   	push   %eax
46b62d:	53                   	push   %ebx
46b62e:	57                   	push   %edi
46b62f:	e8 9c 77 16 00       	call   0x5d2dd0
46b634:	83 c4 0c             	add    $0xc,%esp
46b637:	5f                   	pop    %edi
46b638:	5e                   	pop    %esi
46b639:	5b                   	pop    %ebx
46b63a:	8b e5                	mov    %ebp,%esp
46b63c:	5d                   	pop    %ebp
46b63d:	c3                   	ret
46b63e:	8b 03                	mov    (%ebx),%eax
46b640:	83 c3 04             	add    $0x4,%ebx
46b643:	89 07                	mov    %eax,(%edi)
46b645:	8b 45 14             	mov    0x14(%ebp),%eax
46b648:	83 c0 fc             	add    $0xfffffffc,%eax
46b64b:	3b d8                	cmp    %eax,%ebx
46b64d:	74 05                	je     0x46b654
46b64f:	8b 7d 18             	mov    0x18(%ebp),%edi
46b652:	eb ae                	jmp    0x46b602
46b654:	8b 5d 10             	mov    0x10(%ebp),%ebx
46b657:	8b 7d 18             	mov    0x18(%ebp),%edi
46b65a:	2b de                	sub    %esi,%ebx
46b65c:	53                   	push   %ebx
46b65d:	56                   	push   %esi
46b65e:	57                   	push   %edi
46b65f:	e8 6c 77 16 00       	call   0x5d2dd0
46b664:	8b 4d 14             	mov    0x14(%ebp),%ecx
46b667:	83 c4 0c             	add    $0xc,%esp
46b66a:	8b 41 fc             	mov    -0x4(%ecx),%eax
46b66d:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
46b670:	5f                   	pop    %edi
46b671:	5e                   	pop    %esi
46b672:	5b                   	pop    %ebx
46b673:	8b e5                	mov    %ebp,%esp
46b675:	5d                   	pop    %ebp
46b676:	c3                   	ret
46b677:	3b ca                	cmp    %edx,%ecx
46b679:	0f 8f af 00 00 00    	jg     0x46b72e
46b67f:	8b 7d 10             	mov    0x10(%ebp),%edi
46b682:	8b df                	mov    %edi,%ebx
46b684:	8b 75 0c             	mov    0xc(%ebp),%esi
46b687:	2b de                	sub    %esi,%ebx
46b689:	8b 45 24             	mov    0x24(%ebp),%eax
46b68c:	53                   	push   %ebx
46b68d:	56                   	push   %esi
46b68e:	ff 75 1c             	push   0x1c(%ebp)
46b691:	89 45 18             	mov    %eax,0x18(%ebp)
46b694:	e8 37 77 16 00       	call   0x5d2dd0
46b699:	8b 46 fc             	mov    -0x4(%esi),%eax
46b69c:	8d 4f fc             	lea    -0x4(%edi),%ecx
46b69f:	89 01                	mov    %eax,(%ecx)
46b6a1:	83 c4 0c             	add    $0xc,%esp
46b6a4:	8b 45 1c             	mov    0x1c(%ebp),%eax
46b6a7:	83 c0 fc             	add    $0xfffffffc,%eax
46b6aa:	03 d8                	add    %eax,%ebx
46b6ac:	83 ee 08             	sub    $0x8,%esi
46b6af:	90                   	nop
46b6b0:	ff 36                	push   (%esi)
46b6b2:	8d 79 fc             	lea    -0x4(%ecx),%edi
46b6b5:	ff 33                	push   (%ebx)
46b6b7:	8d 4d 18             	lea    0x18(%ebp),%ecx
46b6ba:	89 7d 14             	mov    %edi,0x14(%ebp)
46b6bd:	e8 fe 36 00 00       	call   0x46edc0
46b6c2:	84 c0                	test   %al,%al
46b6c4:	74 10                	je     0x46b6d6
46b6c6:	8b 06                	mov    (%esi),%eax
46b6c8:	89 07                	mov    %eax,(%edi)
46b6ca:	39 75 08             	cmp    %esi,0x8(%ebp)
46b6cd:	74 18                	je     0x46b6e7
46b6cf:	83 ee 04             	sub    $0x4,%esi
46b6d2:	8b cf                	mov    %edi,%ecx
46b6d4:	eb da                	jmp    0x46b6b0
46b6d6:	8b 03                	mov    (%ebx),%eax
46b6d8:	83 eb 04             	sub    $0x4,%ebx
46b6db:	89 07                	mov    %eax,(%edi)
46b6dd:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
46b6e0:	74 25                	je     0x46b707
46b6e2:	8b 4d 14             	mov    0x14(%ebp),%ecx
46b6e5:	eb c9                	jmp    0x46b6b0
46b6e7:	8b 03                	mov    (%ebx),%eax
46b6e9:	83 ef 04             	sub    $0x4,%edi
46b6ec:	89 07                	mov    %eax,(%edi)
46b6ee:	8b 45 1c             	mov    0x1c(%ebp),%eax
46b6f1:	2b d8                	sub    %eax,%ebx
46b6f3:	53                   	push   %ebx
46b6f4:	50                   	push   %eax
46b6f5:	2b fb                	sub    %ebx,%edi
46b6f7:	57                   	push   %edi
46b6f8:	e8 d3 76 16 00       	call   0x5d2dd0
46b6fd:	83 c4 0c             	add    $0xc,%esp
46b700:	5f                   	pop    %edi
46b701:	5e                   	pop    %esi
46b702:	5b                   	pop    %ebx
46b703:	8b e5                	mov    %ebp,%esp
46b705:	5d                   	pop    %ebp
46b706:	c3                   	ret
46b707:	8b 06                	mov    (%esi),%eax
46b709:	83 ef 04             	sub    $0x4,%edi
46b70c:	8b 5d 08             	mov    0x8(%ebp),%ebx
46b70f:	2b f3                	sub    %ebx,%esi
46b711:	56                   	push   %esi
46b712:	53                   	push   %ebx
46b713:	89 07                	mov    %eax,(%edi)
46b715:	2b fe                	sub    %esi,%edi
46b717:	57                   	push   %edi
46b718:	e8 b3 76 16 00       	call   0x5d2dd0
46b71d:	8b 45 1c             	mov    0x1c(%ebp),%eax
46b720:	83 c4 0c             	add    $0xc,%esp
46b723:	8b 00                	mov    (%eax),%eax
46b725:	5f                   	pop    %edi
46b726:	5e                   	pop    %esi
46b727:	89 03                	mov    %eax,(%ebx)
46b729:	5b                   	pop    %ebx
46b72a:	8b e5                	mov    %ebp,%esp
46b72c:	5d                   	pop    %ebp
46b72d:	c3                   	ret
46b72e:	ff 75 24             	push   0x24(%ebp)
46b731:	3b c1                	cmp    %ecx,%eax
46b733:	7f 4a                	jg     0x46b77f
46b735:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46b738:	8b f8                	mov    %eax,%edi
46b73a:	8b 45 08             	mov    0x8(%ebp),%eax
46b73d:	d1 ff                	sar    $1,%edi
46b73f:	8d 34 b8             	lea    (%eax,%edi,4),%esi
46b742:	56                   	push   %esi
46b743:	ff 75 10             	push   0x10(%ebp)
46b746:	53                   	push   %ebx
46b747:	e8 e4 2e 00 00       	call   0x46e630
46b74c:	8b c8                	mov    %eax,%ecx
46b74e:	2b cb                	sub    %ebx,%ecx
46b750:	c1 f9 02             	sar    $0x2,%ecx
46b753:	51                   	push   %ecx
46b754:	57                   	push   %edi
46b755:	50                   	push   %eax
46b756:	8b 45 20             	mov    0x20(%ebp),%eax
46b759:	56                   	push   %esi
46b75a:	ff 75 24             	push   0x24(%ebp)
46b75d:	50                   	push   %eax
46b75e:	ff 75 1c             	push   0x1c(%ebp)
46b761:	8b 45 18             	mov    0x18(%ebp),%eax
46b764:	50                   	push   %eax
46b765:	8b 45 14             	mov    0x14(%ebp),%eax
46b768:	50                   	push   %eax
46b769:	ff 75 10             	push   0x10(%ebp)
46b76c:	53                   	push   %ebx
46b76d:	ff 75 08             	push   0x8(%ebp)
46b770:	e8 3b fc ff ff       	call   0x46b3b0
46b775:	83 c4 40             	add    $0x40,%esp
46b778:	5f                   	pop    %edi
46b779:	5e                   	pop    %esi
46b77a:	5b                   	pop    %ebx
46b77b:	8b e5                	mov    %ebp,%esp
46b77d:	5d                   	pop    %ebp
46b77e:	c3                   	ret
46b77f:	8b 45 0c             	mov    0xc(%ebp),%eax
46b782:	8b f1                	mov    %ecx,%esi
46b784:	8b 5d 08             	mov    0x8(%ebp),%ebx
46b787:	d1 fe                	sar    $1,%esi
46b789:	8d 3c b0             	lea    (%eax,%esi,4),%edi
46b78c:	57                   	push   %edi
46b78d:	50                   	push   %eax
46b78e:	53                   	push   %ebx
46b78f:	e8 cc 31 00 00       	call   0x46e960
46b794:	56                   	push   %esi
46b795:	8b c8                	mov    %eax,%ecx
46b797:	2b cb                	sub    %ebx,%ecx
46b799:	c1 f9 02             	sar    $0x2,%ecx
46b79c:	51                   	push   %ecx
46b79d:	57                   	push   %edi
46b79e:	50                   	push   %eax
46b79f:	ff 75 24             	push   0x24(%ebp)
46b7a2:	8b 45 20             	mov    0x20(%ebp),%eax
46b7a5:	50                   	push   %eax
46b7a6:	ff 75 1c             	push   0x1c(%ebp)
46b7a9:	8b 45 18             	mov    0x18(%ebp),%eax
46b7ac:	50                   	push   %eax
46b7ad:	8b 45 14             	mov    0x14(%ebp),%eax
46b7b0:	50                   	push   %eax
46b7b1:	ff 75 10             	push   0x10(%ebp)
46b7b4:	ff 75 0c             	push   0xc(%ebp)
46b7b7:	53                   	push   %ebx
46b7b8:	e8 f3 fb ff ff       	call   0x46b3b0
46b7bd:	83 c4 40             	add    $0x40,%esp
46b7c0:	5f                   	pop    %edi
46b7c1:	5e                   	pop    %esi
46b7c2:	5b                   	pop    %ebx
46b7c3:	8b e5                	mov    %ebp,%esp
46b7c5:	5d                   	pop    %ebp
46b7c6:	c3                   	ret
46b7c7:	cc                   	int3
46b7c8:	cc                   	int3
46b7c9:	cc                   	int3
46b7ca:	cc                   	int3
46b7cb:	cc                   	int3
46b7cc:	cc                   	int3
46b7cd:	cc                   	int3
46b7ce:	cc                   	int3
46b7cf:	cc                   	int3
46b7d0:	55                   	push   %ebp
46b7d1:	8b ec                	mov    %esp,%ebp
46b7d3:	83 ec 14             	sub    $0x14,%esp
46b7d6:	53                   	push   %ebx
46b7d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
46b7da:	56                   	push   %esi
46b7db:	ff 75 18             	push   0x18(%ebp)
46b7de:	8b 75 10             	mov    0x10(%ebp),%esi
46b7e1:	56                   	push   %esi
46b7e2:	ff 75 0c             	push   0xc(%ebp)
46b7e5:	53                   	push   %ebx
46b7e6:	e8 f5 06 00 00       	call   0x46bee0
46b7eb:	83 c4 10             	add    $0x10,%esp
46b7ee:	83 fe 20             	cmp    $0x20,%esi
46b7f1:	0f 8e 0b 01 00 00    	jle    0x46b902
46b7f7:	8b d6                	mov    %esi,%edx
46b7f9:	8b f3                	mov    %ebx,%esi
46b7fb:	8b 5d 14             	mov    0x14(%ebp),%ebx
46b7fe:	57                   	push   %edi
46b7ff:	90                   	nop
46b800:	83 c2 e0             	add    $0xffffffe0,%edx
46b803:	8d 8e 80 00 00 00    	lea    0x80(%esi),%ecx
46b809:	b8 20 00 00 00       	mov    $0x20,%eax
46b80e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46b811:	3b d0                	cmp    %eax,%edx
46b813:	8b f9                	mov    %ecx,%edi
46b815:	0f 4c c2             	cmovl  %edx,%eax
46b818:	2b d0                	sub    %eax,%edx
46b81a:	83 c0 20             	add    $0x20,%eax
46b81d:	89 55 ec             	mov    %edx,-0x14(%ebp)
46b820:	8d 04 86             	lea    (%esi,%eax,4),%eax
46b823:	89 45 f8             	mov    %eax,-0x8(%ebp)
46b826:	8b 45 18             	mov    0x18(%ebp),%eax
46b829:	89 45 f0             	mov    %eax,-0x10(%ebp)
46b82c:	0f 1f 40 00          	nopl   0x0(%eax)
46b830:	ff 36                	push   (%esi)
46b832:	8d 43 04             	lea    0x4(%ebx),%eax
46b835:	ff 37                	push   (%edi)
46b837:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46b83a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46b83d:	e8 7e 35 00 00       	call   0x46edc0
46b842:	84 c0                	test   %al,%al
46b844:	74 23                	je     0x46b869
46b846:	8b 07                	mov    (%edi),%eax
46b848:	83 c7 04             	add    $0x4,%edi
46b84b:	89 03                	mov    %eax,(%ebx)
46b84d:	3b 7d f8             	cmp    -0x8(%ebp),%edi
46b850:	75 23                	jne    0x46b875
46b852:	8b 7d f4             	mov    -0xc(%ebp),%edi
46b855:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46b858:	2b fe                	sub    %esi,%edi
46b85a:	57                   	push   %edi
46b85b:	56                   	push   %esi
46b85c:	53                   	push   %ebx
46b85d:	e8 6e 75 16 00       	call   0x5d2dd0
46b862:	83 c4 0c             	add    $0xc,%esp
46b865:	03 df                	add    %edi,%ebx
46b867:	eb 26                	jmp    0x46b88f
46b869:	8b 06                	mov    (%esi),%eax
46b86b:	83 c6 04             	add    $0x4,%esi
46b86e:	89 03                	mov    %eax,(%ebx)
46b870:	3b 75 f4             	cmp    -0xc(%ebp),%esi
46b873:	74 05                	je     0x46b87a
46b875:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46b878:	eb b6                	jmp    0x46b830
46b87a:	8b 75 f8             	mov    -0x8(%ebp),%esi
46b87d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46b880:	2b f7                	sub    %edi,%esi
46b882:	56                   	push   %esi
46b883:	57                   	push   %edi
46b884:	53                   	push   %ebx
46b885:	e8 46 75 16 00       	call   0x5d2dd0
46b88a:	83 c4 0c             	add    $0xc,%esp
46b88d:	03 de                	add    %esi,%ebx
46b88f:	8b 55 ec             	mov    -0x14(%ebp),%edx
46b892:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46b895:	8b f1                	mov    %ecx,%esi
46b897:	83 fa 20             	cmp    $0x20,%edx
46b89a:	0f 8f 60 ff ff ff    	jg     0x46b800
46b8a0:	8b 45 0c             	mov    0xc(%ebp),%eax
46b8a3:	2b c1                	sub    %ecx,%eax
46b8a5:	50                   	push   %eax
46b8a6:	51                   	push   %ecx
46b8a7:	53                   	push   %ebx
46b8a8:	e8 23 75 16 00       	call   0x5d2dd0
46b8ad:	ff 75 18             	push   0x18(%ebp)
46b8b0:	8b 5d 10             	mov    0x10(%ebp),%ebx
46b8b3:	8b 45 14             	mov    0x14(%ebp),%eax
46b8b6:	53                   	push   %ebx
46b8b7:	6a 40                	push   $0x40
46b8b9:	ff 75 08             	push   0x8(%ebp)
46b8bc:	8d 3c 98             	lea    (%eax,%ebx,4),%edi
46b8bf:	57                   	push   %edi
46b8c0:	50                   	push   %eax
46b8c1:	e8 3a 01 00 00       	call   0x46ba00
46b8c6:	be 80 00 00 00       	mov    $0x80,%esi
46b8cb:	83 c4 24             	add    $0x24,%esp
46b8ce:	3b de                	cmp    %esi,%ebx
46b8d0:	7e 2f                	jle    0x46b901
46b8d2:	ff 75 18             	push   0x18(%ebp)
46b8d5:	53                   	push   %ebx
46b8d6:	56                   	push   %esi
46b8d7:	ff 75 14             	push   0x14(%ebp)
46b8da:	ff 75 0c             	push   0xc(%ebp)
46b8dd:	ff 75 08             	push   0x8(%ebp)
46b8e0:	e8 1b 01 00 00       	call   0x46ba00
46b8e5:	ff 75 18             	push   0x18(%ebp)
46b8e8:	03 f6                	add    %esi,%esi
46b8ea:	53                   	push   %ebx
46b8eb:	56                   	push   %esi
46b8ec:	ff 75 08             	push   0x8(%ebp)
46b8ef:	57                   	push   %edi
46b8f0:	ff 75 14             	push   0x14(%ebp)
46b8f3:	e8 08 01 00 00       	call   0x46ba00
46b8f8:	03 f6                	add    %esi,%esi
46b8fa:	83 c4 30             	add    $0x30,%esp
46b8fd:	3b de                	cmp    %esi,%ebx
46b8ff:	7f d1                	jg     0x46b8d2
46b901:	5f                   	pop    %edi
46b902:	5e                   	pop    %esi
46b903:	5b                   	pop    %ebx
46b904:	8b e5                	mov    %ebp,%esp
46b906:	5d                   	pop    %ebp
46b907:	c3                   	ret
46b908:	cc                   	int3