// File: /workspace/github_cpp_makefile_star2_O1/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 0x8459
movq 0xa233(%rip), %rbx      # 0x11fd0
leaq 0x6414(%rip), %rsi      # 0xe1b8
movl $0x48, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x63fb(%rip), %rsi      # 0xe201
movl $0x5a, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x63f4(%rip), %rsi      # 0xe25c
movl $0x68, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x63fb(%rip), %rsi      # 0xe2c5
movl $0x7b, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6415(%rip), %rsi      # 0xe341
movl $0x74, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6428(%rip), %rsi      # 0xe3b6
movl $0x49, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6410(%rip), %rsi      # 0xe400
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x63eb(%rip), %rsi      # 0xe43d
movl $0x45, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x5665(%rip), %r14      # 0xd719
movl $0xa, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3300
leaq 0x63b8(%rip), %rsi      # 0xe483
movl $0x18, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movl $0xa, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3300
leaq 0x6386(%rip), %rsi      # 0xe49c
movl $0x17, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movl $0xa, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3300
leaq 0x6353(%rip), %rsi      # 0xe4b4
movl $0x2a, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movl $0xa, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3300
leaq 0x6333(%rip), %rsi      # 0xe4df
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x62f1(%rip), %rsi      # 0xe4ff
movl $0x72, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6329(%rip), %rsi      # 0xe572
movl $0x75, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6364(%rip), %rsi      # 0xe5e8
movl $0x73, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x639d(%rip), %rsi      # 0xe65c
movl $0x74, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x63d7(%rip), %rsi      # 0xe6d1
movl $0x73, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6410(%rip), %rsi      # 0xe745
movl $0x77, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x644d(%rip), %rsi      # 0xe7bd
movl $0x70, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6483(%rip), %rsi      # 0xe82e
movl $0x71, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x64ba(%rip), %rsi      # 0xe8a0
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x3300
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
leaq 0x6477(%rip), %rsi      # 0xe8bf
movl $0xe, %edx
movq %rbx, %rdi
callq 0x3300
xorl %ebx, %ebx
jmp 0x8476
movq 0x9b70(%rip), %rdi      # 0x11fd0
leaq 0x5d45(%rip), %rsi      # 0xe1ac
movl $0xb, %edx
callq 0x3300
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq 0x9b53(%rip), %r14      # 0x11fd0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3290
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31b0
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq