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
46b909:	cc                   	int3
46b90a:	cc                   	int3
46b90b:	cc                   	int3
46b90c:	cc                   	int3
46b90d:	cc                   	int3
46b90e:	cc                   	int3
46b90f:	cc                   	int3
46b910:	55                   	push   %ebp
46b911:	8b ec                	mov    %esp,%ebp
46b913:	8b 45 14             	mov    0x14(%ebp),%eax
46b916:	85 c0                	test   %eax,%eax
46b918:	75 05                	jne    0x46b91f
46b91a:	8b 45 10             	mov    0x10(%ebp),%eax
46b91d:	5d                   	pop    %ebp
46b91e:	c3                   	ret
46b91f:	8b 4d 18             	mov    0x18(%ebp),%ecx
46b922:	85 c9                	test   %ecx,%ecx
46b924:	75 05                	jne    0x46b92b
46b926:	8b 45 08             	mov    0x8(%ebp),%eax
46b929:	5d                   	pop    %ebp
46b92a:	c3                   	ret
46b92b:	8b 55 20             	mov    0x20(%ebp),%edx
46b92e:	53                   	push   %ebx
46b92f:	56                   	push   %esi
46b930:	57                   	push   %edi
46b931:	3b c1                	cmp    %ecx,%eax
46b933:	7f 42                	jg     0x46b977
46b935:	3b c2                	cmp    %edx,%eax
46b937:	7f 3e                	jg     0x46b977
46b939:	8b 7d 0c             	mov    0xc(%ebp),%edi
46b93c:	8b cf                	mov    %edi,%ecx
46b93e:	8b 45 08             	mov    0x8(%ebp),%eax
46b941:	2b c8                	sub    %eax,%ecx
46b943:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
46b946:	51                   	push   %ecx
46b947:	50                   	push   %eax
46b948:	53                   	push   %ebx
46b949:	89 4d 14             	mov    %ecx,0x14(%ebp)
46b94c:	e8 7f 74 16 00       	call   0x5d2dd0
46b951:	8b 75 10             	mov    0x10(%ebp),%esi
46b954:	2b f7                	sub    %edi,%esi
46b956:	56                   	push   %esi
46b957:	57                   	push   %edi
46b958:	8b 7d 08             	mov    0x8(%ebp),%edi
46b95b:	57                   	push   %edi
46b95c:	e8 6f 74 16 00       	call   0x5d2dd0
46b961:	ff 75 14             	push   0x14(%ebp)
46b964:	03 f7                	add    %edi,%esi
46b966:	53                   	push   %ebx
46b967:	56                   	push   %esi
46b968:	e8 63 74 16 00       	call   0x5d2dd0
46b96d:	83 c4 24             	add    $0x24,%esp
46b970:	8b c6                	mov    %esi,%eax
46b972:	5f                   	pop    %edi
46b973:	5e                   	pop    %esi
46b974:	5b                   	pop    %ebx
46b975:	5d                   	pop    %ebp
46b976:	c3                   	ret
46b977:	3b ca                	cmp    %edx,%ecx
46b979:	7f 3e                	jg     0x46b9b9
46b97b:	8b 45 10             	mov    0x10(%ebp),%eax
46b97e:	8b 7d 0c             	mov    0xc(%ebp),%edi
46b981:	2b c7                	sub    %edi,%eax
46b983:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
46b986:	50                   	push   %eax
46b987:	57                   	push   %edi
46b988:	53                   	push   %ebx
46b989:	89 45 14             	mov    %eax,0x14(%ebp)
46b98c:	e8 3f 74 16 00       	call   0x5d2dd0
46b991:	8b 75 08             	mov    0x8(%ebp),%esi
46b994:	2b fe                	sub    %esi,%edi
46b996:	8b 45 10             	mov    0x10(%ebp),%eax
46b999:	57                   	push   %edi
46b99a:	2b c7                	sub    %edi,%eax
46b99c:	56                   	push   %esi
46b99d:	50                   	push   %eax
46b99e:	e8 2d 74 16 00       	call   0x5d2dd0
46b9a3:	8b 7d 14             	mov    0x14(%ebp),%edi
46b9a6:	57                   	push   %edi
46b9a7:	53                   	push   %ebx
46b9a8:	56                   	push   %esi
46b9a9:	e8 22 74 16 00       	call   0x5d2dd0
46b9ae:	83 c4 24             	add    $0x24,%esp
46b9b1:	8d 04 37             	lea    (%edi,%esi,1),%eax
46b9b4:	5f                   	pop    %edi
46b9b5:	5e                   	pop    %esi
46b9b6:	5b                   	pop    %ebx
46b9b7:	5d                   	pop    %ebp
46b9b8:	c3                   	ret
46b9b9:	8b 75 08             	mov    0x8(%ebp),%esi
46b9bc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46b9bf:	3b f3                	cmp    %ebx,%esi
46b9c1:	75 0a                	jne    0x46b9cd
46b9c3:	8b 75 10             	mov    0x10(%ebp),%esi
46b9c6:	8b c6                	mov    %esi,%eax
46b9c8:	5f                   	pop    %edi
46b9c9:	5e                   	pop    %esi
46b9ca:	5b                   	pop    %ebx
46b9cb:	5d                   	pop    %ebp
46b9cc:	c3                   	ret
46b9cd:	8b 7d 10             	mov    0x10(%ebp),%edi
46b9d0:	3b df                	cmp    %edi,%ebx
46b9d2:	74 20                	je     0x46b9f4
46b9d4:	53                   	push   %ebx
46b9d5:	56                   	push   %esi
46b9d6:	e8 b5 54 16 00       	call   0x5d0e90
46b9db:	57                   	push   %edi
46b9dc:	53                   	push   %ebx
46b9dd:	e8 ae 54 16 00       	call   0x5d0e90
46b9e2:	57                   	push   %edi
46b9e3:	56                   	push   %esi
46b9e4:	e8 a7 54 16 00       	call   0x5d0e90
46b9e9:	2b fb                	sub    %ebx,%edi
46b9eb:	83 c4 18             	add    $0x18,%esp
46b9ee:	c1 ff 02             	sar    $0x2,%edi
46b9f1:	8d 34 be             	lea    (%esi,%edi,4),%esi
46b9f4:	5f                   	pop    %edi
46b9f5:	8b c6                	mov    %esi,%eax
46b9f7:	5e                   	pop    %esi
46b9f8:	5b                   	pop    %ebx
46b9f9:	5d                   	pop    %ebp
46b9fa:	c3                   	ret
46b9fb:	cc                   	int3
46b9fc:	cc                   	int3
46b9fd:	cc                   	int3
46b9fe:	cc                   	int3
46b9ff:	cc                   	int3
46ba00:	55                   	push   %ebp
46ba01:	8b ec                	mov    %esp,%ebp
46ba03:	8b 55 18             	mov    0x18(%ebp),%edx
46ba06:	83 ec 08             	sub    $0x8,%esp
46ba09:	53                   	push   %ebx
46ba0a:	8b 5d 10             	mov    0x10(%ebp),%ebx
46ba0d:	56                   	push   %esi
46ba0e:	8b 75 08             	mov    0x8(%ebp),%esi
46ba11:	57                   	push   %edi
46ba12:	8b 7d 14             	mov    0x14(%ebp),%edi
46ba15:	3b fa                	cmp    %edx,%edi
46ba17:	0f 8d 97 00 00 00    	jge    0x46bab4
46ba1d:	0f 1f 00             	nopl   (%eax)
46ba20:	2b d7                	sub    %edi,%edx
46ba22:	8d 0c be             	lea    (%esi,%edi,4),%ecx
46ba25:	3b d7                	cmp    %edi,%edx
46ba27:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46ba2a:	8b c7                	mov    %edi,%eax
46ba2c:	0f 4c c2             	cmovl  %edx,%eax
46ba2f:	2b d0                	sub    %eax,%edx
46ba31:	03 c7                	add    %edi,%eax
46ba33:	89 55 18             	mov    %edx,0x18(%ebp)
46ba36:	8b f9                	mov    %ecx,%edi
46ba38:	8d 04 86             	lea    (%esi,%eax,4),%eax
46ba3b:	89 45 08             	mov    %eax,0x8(%ebp)
46ba3e:	8b 45 1c             	mov    0x1c(%ebp),%eax
46ba41:	89 45 f8             	mov    %eax,-0x8(%ebp)
46ba44:	ff 36                	push   (%esi)
46ba46:	8d 43 04             	lea    0x4(%ebx),%eax
46ba49:	ff 37                	push   (%edi)
46ba4b:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46ba4e:	89 45 10             	mov    %eax,0x10(%ebp)
46ba51:	e8 6a 33 00 00       	call   0x46edc0
46ba56:	84 c0                	test   %al,%al
46ba58:	74 23                	je     0x46ba7d
46ba5a:	8b 07                	mov    (%edi),%eax
46ba5c:	83 c7 04             	add    $0x4,%edi
46ba5f:	89 03                	mov    %eax,(%ebx)
46ba61:	3b 7d 08             	cmp    0x8(%ebp),%edi
46ba64:	75 23                	jne    0x46ba89
46ba66:	8b 7d fc             	mov    -0x4(%ebp),%edi
46ba69:	8b 5d 10             	mov    0x10(%ebp),%ebx
46ba6c:	2b fe                	sub    %esi,%edi
46ba6e:	57                   	push   %edi
46ba6f:	56                   	push   %esi
46ba70:	53                   	push   %ebx
46ba71:	e8 5a 73 16 00       	call   0x5d2dd0
46ba76:	83 c4 0c             	add    $0xc,%esp