// File: /workspace/github_cpp_makefile_star2_O2/FalconUA[P]vfs/./utility/help.h
// Function: virt::util::help::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::stringstream ss;
			if (param != ""){
				std::map<std::string, virt::os::utility*>::iterator it = 
					working_os->utilities.find(param);
				if (it != working_os->utilities.end())
					return working_os->utilities[param]->help_text + "\n";
			}
			
			for (std::map<std::string, virt::os::utility*>::iterator it = working_os->utilities.begin(); it != working_os->utilities.end(); it++){
				ss << std::endl << ">>>> " << it->first << std::endl;
			    ss << it->second->description;
			}

			ss << std::endl << ">>>> exit" << std::endl << "Выходит из текущего консоля." << std::endl << std::endl;

			return ss.str();
		}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0x8(%rsi), %r12
leaq 0xf23(%rip), %rsi       # 0x91ef
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x3e68
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x595a
testq %rax, %rax
je 0x83b5
leaq 0x7898(%rip), %rsi      # 0xfb90
leaq 0x78a1(%rip), %rdx      # 0xfba0
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x31f0
movq %rax, %r12
leaq 0x8(%rsp), %rdi
callq 0x30d0
testq %r12, %r12
je 0x83bf
pushq $0x1
popq %r12
movq (%r15), %rax
cmpb $0x20, (%rax)
jne 0x833a
movq %r15, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x3070
jmp 0x8323
pushq $0x1
popq %r12
movq 0x8(%r15), %rsi
cmpb $0x20, -0x1(%rax,%rsi)
jne 0x835c
decq %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x3070
movq (%r15), %rax
jmp 0x833e
leaq 0x28(%rsp), %rdi
callq 0x3130
leaq 0x1a60(%rip), %rsi      # 0x9dcd
movq %r15, %rdi
callq 0x3f0a
movq 0x8(%r14), %rdi
testb %al, %al
je 0x83d8
movq %r15, %rsi
callq 0x5af2
movq 0x8(%r14), %rdi
leaq 0x8(%rdi), %rcx
cmpq %rcx, %rax
je 0x83d8
movq %r15, %rsi
callq 0x5a28
movq (%rax), %rsi
addq $0x30, %rsi
leaq 0x1a24(%rip), %rdx      # 0x9dcc
movq %rbx, %rdi
callq 0x7864
jmp 0x8484
leaq 0x8(%rsp), %rdi
callq 0x30d0
leaq 0x17a8(%rip), %rsi      # 0x9b6e
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
callq 0x3e68
jmp 0x848e
movq 0x18(%rdi), %r13
leaq 0x38(%rsp), %r15
leaq 0x1e86(%rip), %r12      # 0xa26e
addq $0x8, %rdi
cmpq %rdi, %r13
je 0x8439
movq %r15, %rdi
callq 0x30e0
movq %rax, %rdi
movq %r12, %rsi
callq 0x31a0
leaq 0x20(%r13), %rsi
movq %rax, %rdi
callq 0x3190
movq %rax, %rdi
callq 0x30e0
movq 0x40(%r13), %rsi
addq $0x10, %rsi
movq %r15, %rdi
callq 0x3190
movq %r13, %rdi
callq 0x3120
movq %rax, %r13
movq 0x8(%r14), %rdi
jmp 0x83e8
movq %r15, %rdi
callq 0x30e0
leaq 0x1e2c(%rip), %rsi      # 0xa274
movq %rax, %rdi
callq 0x31a0
movq %rax, %rdi
callq 0x30e0
leaq 0x1e1f(%rip), %rsi      # 0xa27e
movq %rax, %rdi
callq 0x31a0
movq %rax, %rdi
callq 0x30e0
movq %rax, %rdi
callq 0x30e0
leaq 0x40(%rsp), %rsi
movq %rbx, %rdi
callq 0x3280
leaq 0x28(%rsp), %rdi
callq 0x3150
movq %rbx, %rax
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x84ba
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x30d0
jmp 0x84c7
movq %rax, %rbx
jmp 0x84c7
jmp 0x84ba
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3150
movq %rbx, %rdi
callq 0x32c0
nop