// File: /workspace/github_cpp_makefile_star2_O2/brandoncanaday[P]1730sh/1730sh.cpp
// Function: help_builtin(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>>>> const&)
int help_builtin(const vector<string> & args) {
  if(args.size() != 1) {
    cout << "Usage: help" << endl;
    return -1;
  } else {
    cout << "Here are some useful commands to make navigating the shell a bit easier:" << endl;
    cout << endl;
    cout << "bg JID – Resume the stopped job JID in the background, as if it had been started with &." << endl;
    cout << endl;
    cout << "cd [PATH] – Change the current directory to PATH. The environmental variable HOME is the default PATH." << endl;
    cout << endl;
    cout << "exit [N] – Cause the shell to exit with a status of N. If N is omitted, the exit status is that of the last job executed." << endl;
    cout << endl;
    cout << "export NAME[=WORD] – the variable NAME is automatically included in the environment of subsequently executed jobs." << endl;
    cout << endl;
    cout << "fg JID – Resume job JID in the foreground, and make it the current job." << endl;
    cout << endl;
    cout << "help – Display helpful information about builtin commands." << endl;
    cout << endl;
    cout << "jobs – List current jobs. Here is an example of the desired output:" << endl;
    cout << endl;
    cout << "          "; cout << "JID  STATUS      COMMAND" << endl;
    cout << "          "; cout << "1137 Stopped     less &" << endl;
    cout << "          "; cout << "2245 Running     cat /dev/urandom | less &" << endl;
    cout << "          "; cout << "2343 Running     ./jobcontrol &" << endl;
    cout << endl;
    cout << "kill [-s SIGNAL] PID – The kill utility sends the specified signal to the specified process or process group PID" << endl;
    cout << "(see kill(2)). If no signal is specified, the SIGTERM signal is sent. The SIGTERM signal will kill processes which do" << endl;
    cout << "not catch this signal. For other processes, it may be necessary to use the SIGKILL signal, since this signal cannot" << endl;
    cout << "be caught. If PID is positive, then the signal is sent to the process with the ID specified by PID. If PID equals 0," << endl;
    cout << "then the signal is sent to every process in the current process group. If PID equals -1, then the signal is sent to" << endl;
    cout << "every process for which the utility has permission to send signals to, except for process 1 (init). If PID is less than" << endl;
    cout << "-1, then the signal is sent to every process in the process group whose ID is -PID. When the -s SIGNAL option is" << endl;
    cout << "used, instead of sending SIGTERM, the specified signal is sent instead. SIGNAL can be provided as a signal number" << endl;
    cout << "or a constant (e.g., SIGTERM)." << endl;
    cout << endl;
    cout << "-- End help --" << endl;
    return 0;  
  } // if/else
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq 0x8(%rdi), %rax
subq (%rdi), %rax
cmpq $0x20, %rax
jne 0x6781
movq 0x9ab8(%rip), %rbx      # 0xffc8
leaq 0x4ca1(%rip), %rsi      # 0xb1b8
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4ccb(%rip), %rsi      # 0xb201
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4d07(%rip), %rsi      # 0xb25c
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4d51(%rip), %rsi      # 0xb2c5
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4dae(%rip), %rsi      # 0xb341
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4e04(%rip), %rsi      # 0xb3b6
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4e2f(%rip), %rsi      # 0xb400
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4e4d(%rip), %rsi      # 0xb43d
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x410a(%rip), %r14      # 0xa719
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3280
leaq 0x4e62(%rip), %rsi      # 0xb483
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3280
leaq 0x4e59(%rip), %rsi      # 0xb49c
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3280
leaq 0x4e4f(%rip), %rsi      # 0xb4b4
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3280
leaq 0x4e58(%rip), %rsi      # 0xb4df
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
leaq 0x4e59(%rip), %rsi      # 0xb4ff
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x4eb5(%rip), %rsi      # 0xb572
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x4f14(%rip), %rsi      # 0xb5e8
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x4f71(%rip), %rsi      # 0xb65c
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x4fcf(%rip), %rsi      # 0xb6d1
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x502c(%rip), %rsi      # 0xb745
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x508d(%rip), %rsi      # 0xb7bd
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x50e7(%rip), %rsi      # 0xb82e
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
leaq 0x5142(%rip), %rsi      # 0xb8a0
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3130
xorl %ebx, %ebx
leaq 0x5140(%rip), %rsi      # 0xb8bf
jmp 0x678b
pushq $-0x1
popq %rbx
leaq 0x4a21(%rip), %rsi      # 0xb1ac
movq 0x9836(%rip), %rdi      # 0xffc8
callq 0x3280
movq %rax, %rdi
callq 0x3130
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq