// File: mukul-mehta[P]meta/builtins.cc
// Function: metash_help(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>)
int metash_help(vector<string> tokens) {
    printf("%s+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%s\n",
           PURPLE, NORM);
    printf("%s++++++%s /\\        %sHi there. There are \033[4mfive%s %sbuiltin commands%s     /\\ "
           " %s++++++%s\n",
           PURPLE, NORM, CYAN, NORM, CYAN, NORM, PURPLE, NORM);
    printf("%s++++++%s cd%s:       Changes working directory to the one specified    %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s pwd%s:      Shows current working directory                   %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s help%s:     Shows this help text                              %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s exit%s:     Cleanly exits the shell                           %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s fetch%s:    Show system information                           %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s history%s:  Show all commands executed on the shell           %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s getenv%s:   Set an environment variable to specified value    %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s setenv%s:   Fetch the value of the given environment variable %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s unsetenv%s: Unset the given environment variable              %s++++++%s\n",
           PURPLE, YELLOW, NORM, PURPLE, NORM);
    printf("%s++++++%s Anything else is considered as an executable, and should    %s++++++%s\n",
           PURPLE, BLUE, PURPLE, NORM);
    printf("%s++++++%s be present in your PATH. \033[1;3;34mEnjoy!%s                             "
           "%s++++++%s\n",
           PURPLE, BLUE, NORM, PURPLE, NORM);
    printf("%s+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%s\n",
           PURPLE, NORM);

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x2624(%rip), %rdi      # 0xb377
leaq 0x266c(%rip), %rsi      # 0xb3c6
leaq 0x2451(%rip), %rdx      # 0xb1b2
movb $0x0, %al
callq 0x3040
leaq 0x265d(%rip), %rdi      # 0xb3cc
leaq 0x2650(%rip), %r10      # 0xb3c6
leaq 0x2435(%rip), %rax      # 0xb1b2
leaq 0x2439(%rip), %r9       # 0xb1bd
movq %r10, %rsi
movq %rax, %rdx
movq %r9, %rcx
movq %rax, %r8
movq %rax, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x3040
leaq 0x267f(%rip), %rdi      # 0xb42b
leaq 0x2613(%rip), %r8       # 0xb3c6
leaq 0x2434(%rip), %rdx      # 0xb1ee
leaq 0x23f1(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x26ab(%rip), %rdi      # 0xb480
leaq 0x25ea(%rip), %r8       # 0xb3c6
leaq 0x240b(%rip), %rdx      # 0xb1ee
leaq 0x23c8(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x26d7(%rip), %rdi      # 0xb4d5
leaq 0x25c1(%rip), %r8       # 0xb3c6
leaq 0x23e2(%rip), %rdx      # 0xb1ee
leaq 0x239f(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x2703(%rip), %rdi      # 0xb52a
leaq 0x2598(%rip), %r8       # 0xb3c6
leaq 0x23b9(%rip), %rdx      # 0xb1ee
leaq 0x2376(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x272f(%rip), %rdi      # 0xb57f
leaq 0x256f(%rip), %r8       # 0xb3c6
leaq 0x2390(%rip), %rdx      # 0xb1ee
leaq 0x234d(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x275b(%rip), %rdi      # 0xb5d4
leaq 0x2546(%rip), %r8       # 0xb3c6
leaq 0x2367(%rip), %rdx      # 0xb1ee
leaq 0x2324(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x2787(%rip), %rdi      # 0xb629
leaq 0x251d(%rip), %r8       # 0xb3c6
leaq 0x233e(%rip), %rdx      # 0xb1ee
leaq 0x22fb(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x27b3(%rip), %rdi      # 0xb67e
leaq 0x24f4(%rip), %r8       # 0xb3c6
leaq 0x2315(%rip), %rdx      # 0xb1ee
leaq 0x22d2(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x27df(%rip), %rdi      # 0xb6d3
leaq 0x24cb(%rip), %r8       # 0xb3c6
leaq 0x22ec(%rip), %rdx      # 0xb1ee
leaq 0x22a9(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x280b(%rip), %rdi      # 0xb728
leaq 0x24a2(%rip), %rcx      # 0xb3c6
leaq 0x2850(%rip), %rdx      # 0xb77b
leaq 0x2280(%rip), %r8       # 0xb1b2
movq %rcx, %rsi
movb $0x0, %al
callq 0x3040
leaq 0x283e(%rip), %rdi      # 0xb781
leaq 0x247c(%rip), %r8       # 0xb3c6
leaq 0x282a(%rip), %rdx      # 0xb77b
leaq 0x225a(%rip), %r9       # 0xb1b2
movq %r8, %rsi
movq %r9, %rcx
movb $0x0, %al
callq 0x3040
leaq 0x240b(%rip), %rdi      # 0xb377
leaq 0x2453(%rip), %rsi      # 0xb3c6
leaq 0x2238(%rip), %rdx      # 0xb1b2
movb $0x0, %al
callq 0x3040
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)