// File: emr4378[P]FAT-File-System/Shell.cpp
// Function: Shell::isCommandSupported(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool Shell::isCommandSupported(string cmd) {
	string cmds[] = {"ls", "touch", "cp", "mv", "rm", "df", "cat"};
	int i;
	bool ret = false;
	for (i = 0; i < 7 && ret == false; i++) {
		if (cmd == cmds[i]) {
			ret = true;
		}
	}

	return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rsi, -0x148(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb $0x1, -0x123(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x140(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x3540
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rdx
leaq 0x1b18(%rip), %rsi      # 0xc036
callq 0x6e60
jmp 0xa525
leaq -0xe0(%rbp), %rax
movq %rax, -0x158(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x11d(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x3540
movq -0x158(%rbp), %rdi
movq -0x150(%rbp), %rdx
leaq 0x1ce5(%rip), %rsi      # 0xc247
callq 0x6e60
jmp 0xa569
leaq -0xc0(%rbp), %rax
movq %rax, -0x168(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x11e(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x3540
movq -0x168(%rbp), %rdi
movq -0x160(%rbp), %rdx
leaq 0x1ca7(%rip), %rsi      # 0xc24d
callq 0x6e60
jmp 0xa5ad
leaq -0xa0(%rbp), %rax
movq %rax, -0x178(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x11f(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x3540
movq -0x178(%rbp), %rdi
movq -0x170(%rbp), %rdx
leaq 0x1c66(%rip), %rsi      # 0xc250
callq 0x6e60
jmp 0xa5f1
leaq -0x80(%rbp), %rax
movq %rax, -0x188(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x120(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x3540
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rdx
leaq 0x1c28(%rip), %rsi      # 0xc253
callq 0x6e60
jmp 0xa632
leaq -0x60(%rbp), %rax
movq %rax, -0x198(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x3540
movq -0x198(%rbp), %rdi
movq -0x190(%rbp), %rdx
leaq 0x1bea(%rip), %rsi      # 0xc256
callq 0x6e60
jmp 0xa673
leaq -0x40(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq %rax, -0x108(%rbp)
leaq -0x122(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x3540
movq -0x1a8(%rbp), %rdi
movq -0x1a0(%rbp), %rdx
leaq 0x1bac(%rip), %rsi      # 0xc259
callq 0x6e60
jmp 0xa6b4
movb $0x0, -0x123(%rbp)
leaq -0x122(%rbp), %rdi
callq 0x3300
leaq -0x121(%rbp), %rdi
callq 0x3300
leaq -0x120(%rbp), %rdi
callq 0x3300
leaq -0x11f(%rbp), %rdi
callq 0x3300
leaq -0x11e(%rbp), %rdi
callq 0x3300
leaq -0x11d(%rbp), %rdi
callq 0x3300
leaq -0x109(%rbp), %rdi
callq 0x3300
movb $0x0, -0x129(%rbp)
movl $0x0, -0x128(%rbp)
xorl %eax, %eax
cmpl $0x7, -0x128(%rbp)
movb %al, -0x1a9(%rbp)
jge 0xa748
movb -0x129(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
sete %al
movb %al, -0x1a9(%rbp)
movb -0x1a9(%rbp), %al
testb $0x1, %al
jne 0xa757
jmp 0xa8e1
movq -0x148(%rbp), %rdi
movslq -0x128(%rbp), %rax
leaq -0x100(%rbp), %rsi
shlq $0x5, %rax
addq %rax, %rsi
callq 0x6bd0
testb $0x1, %al
jne 0xa781
jmp 0xa8cb
movb $0x1, -0x129(%rbp)
jmp 0xa8cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa865
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa859
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa84d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa841
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa835
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0xa829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
leaq -0x122(%rbp), %rdi
callq 0x3300
leaq -0x121(%rbp), %rdi
callq 0x3300
leaq -0x120(%rbp), %rdi
callq 0x3300
leaq -0x11f(%rbp), %rdi
callq 0x3300
leaq -0x11e(%rbp), %rdi
callq 0x3300
leaq -0x11d(%rbp), %rdi
callq 0x3300
leaq -0x109(%rbp), %rdi
callq 0x3300
testb $0x1, -0x123(%rbp)
jne 0xa87c
jmp 0xa8c9
movq -0x108(%rbp), %rax
leaq -0x100(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1b8(%rbp)
je 0xa8c7
movq -0x1b8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1c0(%rbp)
callq 0x3180
movq -0x1c0(%rbp), %rax
leaq -0x100(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1b8(%rbp)
jne 0xa896
jmp 0xa8c9
jmp 0xa946
jmp 0xa8cd
movl -0x128(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0xa720
movb -0x129(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x1d0(%rbp)
addq $0xe0, %rax
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x3180
movq -0x1d0(%rbp), %rcx
movq -0x1d8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1c8(%rbp)
jne 0xa907
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x118(%rbp), %rdi
callq 0x3530
nopw %cs:(%rax,%rax)