// File: FalconUA[P]vfs/./utility/mv.h
// Function: virt::util::mv::launch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::string launch(std::string param){
			virt::util::shell* sh;
			if ((sh = dynamic_cast<virt::util::shell*>(working_os->app("shell"))) == NULL)
				return "ERROR: No module named \"shell\" found!";

			while (param[0] == ' ')
				param.erase(0, 1);
			while (param[param.length()-1] == ' ')
				param.erase(param.length()-1, 1);

			std::size_t p = std::min(param.find(' '), param.length());	
			std::string first_path = param.substr(0, p);

			if (first_path.find(' ') != std::string::npos || first_path.find('/') != std::string::npos
					|| first_path == "" || first_path == "." || first_path == "..")
				return "Invalid second file name. Please see 'help mv' for more information.\n";
			param.erase(0, p+1);

			virt::filesystem::dir_iterator it_dest(sh->shell_iterator);
			it_dest.move_to(param);

			bool b = virt::fs::move_subdir(first_path, sh->shell_iterator.get_working_dir(), it_dest.get_working_dir());
			if (!b)
				return "Cannot move this directory. See 'help mv' for more information.\n";
			return "";
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdx, -0x128(%rbp)
movq %rdi, -0x120(%rbp)
movq %rdi, %rax
movq %rax, -0x118(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x110(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x3400
movq -0x108(%rbp), %rdx
leaq 0x1c23(%rip), %rsi      # 0x131ef
leaq -0x40(%rbp), %rdi
callq 0x4980
jmp 0x115d7
movq -0x110(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0xac80
movq %rax, -0x130(%rbp)
jmp 0x115f0
movq -0x130(%rbp), %rax
cmpq $0x0, %rax
je 0x1164c
movq -0x130(%rbp), %rdi
leaq 0xa57d(%rip), %rsi      # 0x1bb88
leaq 0xa586(%rip), %rdx      # 0x1bb98
xorl %eax, %eax
movl %eax, %ecx
callq 0x32e0
movq %rax, -0x138(%rbp)
jmp 0x11657
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x116c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3160
jmp 0x116c2
xorl %eax, %eax
movq %rax, -0x138(%rbp)
jmp 0x11657
movq -0x138(%rbp), %rax
movq %rax, -0x140(%rbp)
movq %rax, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x3160
leaq -0x41(%rbp), %rdi
callq 0x32b0
movq -0x140(%rbp), %rax
cmpq $0x0, %rax
jne 0x116ea
leaq -0x55(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3400
movq -0x120(%rbp), %rdi
movq -0x148(%rbp), %rdx
leaq 0x24c1(%rip), %rsi      # 0x13b6e
callq 0x4980
jmp 0x116b4
leaq -0x55(%rbp), %rdi
callq 0x32b0
jmp 0x11ab9
leaq -0x41(%rbp), %rdi
callq 0x32b0
jmp 0x11ac9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x55(%rbp), %rdi
callq 0x32b0
jmp 0x11ac9
jmp 0x116ec
movq -0x128(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3460
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0x1171b
movq -0x128(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x3090
jmp 0x116ec
jmp 0x1171d
movq -0x128(%rbp), %rdi
callq 0x3380
movq -0x128(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x3460
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0x1176a
movq -0x128(%rbp), %rdi
callq 0x3380
movq -0x128(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
movl $0x1, %edx
callq 0x3090
jmp 0x1171d
movq -0x128(%rbp), %rdi
movl $0x20, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
movq -0x128(%rbp), %rdi
movq %rax, -0x68(%rbp)
callq 0x3380
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x7f90
movq -0x128(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rcx
leaq -0x90(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3270
leaq -0x90(%rbp), %rdi
movl $0x20, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
cmpq $-0x1, %rax
jne 0x1183f
leaq -0x90(%rbp), %rdi
movl $0x2f, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
cmpq $-0x1, %rax
jne 0x1183f
leaq -0x90(%rbp), %rdi
leaq 0x25c7(%rip), %rsi      # 0x13dcd
callq 0x5200
testb $0x1, %al
jne 0x1183f
leaq -0x90(%rbp), %rdi
leaq 0x17e8(%rip), %rsi      # 0x13005
callq 0x5200
testb $0x1, %al
jne 0x1183f
leaq -0x90(%rbp), %rdi
leaq 0x17d0(%rip), %rsi      # 0x13004
callq 0x5200
testb $0x1, %al
jne 0x1183f
jmp 0x118a6
leaq -0x91(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x3400
movq -0x120(%rbp), %rdi
movq -0x150(%rbp), %rdx
leaq 0x3155(%rip), %rsi      # 0x149bc
callq 0x4980
jmp 0x1186e
leaq -0x91(%rbp), %rdi
callq 0x32b0
movl $0x1, -0x98(%rbp)
jmp 0x11a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x32b0
jmp 0x11aab
movq -0x128(%rbp), %rdi
movq -0x60(%rbp), %rdx
incq %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x3090
jmp 0x118bf
movq -0x128(%rbp), %rsi
movq -0x20(%rbp), %rax
movups 0x50(%rax), %xmm0
movaps %xmm0, -0xb0(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x30f0
jmp 0x118e3
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xa780
jmp 0x118f8
leaq -0xd0(%rbp), %rdi
callq 0x3160
leaq -0xf8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x30f0
jmp 0x11919
movq -0x20(%rbp), %rdi
addq $0x50, %rdi
callq 0xaa90
movq %rax, -0x158(%rbp)
jmp 0x1192f
leaq -0xb0(%rbp), %rdi
callq 0xaa90
movq %rax, -0x160(%rbp)
jmp 0x11944
movq -0x160(%rbp), %rdx
movq -0x158(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x4780
movb %al, -0x161(%rbp)
jmp 0x11966
leaq -0xf8(%rbp), %rdi
callq 0x3160
movb -0x161(%rbp), %al
andb $0x1, %al
movb %al, -0xd1(%rbp)
testb $0x1, -0xd1(%rbp)
jne 0x11a3c
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x3400
movq -0x120(%rbp), %rdi
movq -0x170(%rbp), %rdx
leaq 0x304d(%rip), %rsi      # 0x14a02
callq 0x4980
jmp 0x119bc
leaq -0xf9(%rbp), %rdi
callq 0x32b0
movl $0x1, -0x98(%rbp)
jmp 0x11a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x11aab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3160
jmp 0x11aab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x3160
jmp 0x11aab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xf9(%rbp), %rdi
callq 0x32b0
jmp 0x11aab
leaq -0xfa(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x3400
movq -0x120(%rbp), %rdi
movq -0x178(%rbp), %rdx
leaq 0x2369(%rip), %rsi      # 0x13dcd
callq 0x4980
jmp 0x11a6b
leaq -0xfa(%rbp), %rdi
callq 0x32b0
movl $0x1, -0x98(%rbp)
jmp 0x11a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xfa(%rbp), %rdi
callq 0x32b0
jmp 0x11aab
leaq -0x90(%rbp), %rdi
callq 0x3160
jmp 0x11ab9
leaq -0x90(%rbp), %rdi
callq 0x3160
jmp 0x11ac9
movq -0x118(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x33f0
nopw %cs:(%rax,%rax)
nopl (%rax)