// File: /workspace/github_cpp_makefile_star2_O3/eecs280staff[P]unit_test_framework/./unit_test_framework.hpp
// Function: unit_test_framework::TestSuite::get_test_names_to_run[abi:cxx11](int, char**)
std::vector<std::string> get_test_names_to_run(int argc, char** argv) {
      std::vector<std::string> test_names_to_run;
#if UNIT_TEST_ENABLE_REGEXP
      bool regexp_matching = false;
#endif
      for (auto i = 1; i < argc; ++i) {
        if (argv[i] == std::string("--show_test_names") or
            argv[i] == std::string("-n")) {

          TestSuite::get().print_test_names(std::cout);
          std::cout << std::flush;
          throw ExitSuite();
        }
        else if (argv[i] == std::string("--quiet") or
                 argv[i] == std::string("-q")) {
          TestSuite::get().enable_quiet_mode();
        }
#if UNIT_TEST_ENABLE_REGEXP
        else if (argv[i] == std::string("--regexp") or
                 argv[i] == std::string("-e")) {
          regexp_matching = true;
        }
#endif
        else if (argv[i] == std::string("--help") or
                 argv[i] == std::string("-h")) {
          std::cout << "usage: " << argv[0]
#if UNIT_TEST_ENABLE_REGEXP
                    << " [-h] [-e] [-n] [-q] [[TEST_NAME] ...]\n";
#else
          << " [-h] [-n] [-q] [[TEST_NAME] ...]\n";
#endif
          std::cout
            << "optional arguments:\n"
            << " -h, --help\t\t show this help message and exit\n"
#if UNIT_TEST_ENABLE_REGEXP
            << " -e, --regexp\t\t treat TEST_NAME as a regular expression\n"
#endif
            << " -n, --show_test_names\t print the names of all "
            "discovered test cases and exit\n"
            << " -q, --quiet\t\t print a reduced summary of test results\n"
            << " TEST_NAME ...\t\t run only the test cases whose names "
            "are "
            "listed here. Note: If no test names are specified, all "
            "discovered tests are run by default."
            << std::endl;

          throw ExitSuite();
        }
        else {
          test_names_to_run.push_back(argv[i]);
        }
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
cmpl $0x2, %edx
jl 0x36ea
movq %rcx, %r14
movq %rsi, 0x48(%rsp)
movq %rbx, 0x20(%rsp)
leaq 0x38(%rsp), %r15
movl %edx, %eax
movq %rax, 0x50(%rsp)
movl $0x1, %ebx
movq %rsp, %rbp
movq (%r14,%rbx,8), %r13
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x1c81(%rip), %rsi      # 0x510f
leaq 0x1c8b(%rip), %rdx      # 0x5120
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
je 0x34fd
movq (%r14,%rbx,8), %r13
movq %r15, %r12
movq %r15, 0x28(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1c5d(%rip), %rsi      # 0x5121
leaq 0x1c58(%rip), %rdx      # 0x5123
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
sete %r13b
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x34f8
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2210
movq %rsp, %rbp
jmp 0x3500
movb $0x1, %r13b
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x351b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
testb %r13b, %r13b
jne 0x370c
movq (%r14,%rbx,8), %r13
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x1be9(%rip), %rsi      # 0x5124
leaq 0x1be9(%rip), %rdx      # 0x512b
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
je 0x35aa
movq (%r14,%rbx,8), %r13
movq %r15, %r12
movq %r15, 0x28(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1bbb(%rip), %rsi      # 0x512c
leaq 0x1bb6(%rip), %rdx      # 0x512e
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
sete %r13b
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x35a5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2210
movq %rsp, %rbp
jmp 0x35ad
movb $0x1, %r13b
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x35c8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
testb %r13b, %r13b
je 0x35db
callq 0x26d4
movb $0x1, 0x30(%rax)
jmp 0x36c9
movq (%r14,%rbx,8), %r13
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x1b3d(%rip), %rsi      # 0x512f
leaq 0x1b3c(%rip), %rdx      # 0x5135
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
je 0x3666
movq (%r14,%rbx,8), %r13
movq %r15, %r12
movq %r15, 0x28(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1b0e(%rip), %rsi      # 0x5136
leaq 0x1b09(%rip), %rdx      # 0x5138
callq 0x489e
movq %rbp, %rdi
movq %r13, %rsi
callq 0x2080
testl %eax, %eax
sete %r13b
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x365c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2210
leaq 0x28(%rsp), %r12
movq %rsp, %rbp
jmp 0x366e
movb $0x1, %r13b
leaq 0x28(%rsp), %r12
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x3689
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
testb %r13b, %r13b
jne 0x375d
movq (%r14,%rbx,8), %rsi
movq %rbp, %rdi
movq %r12, %rdx
callq 0x2696
movq 0x20(%rsp), %rdi
movq %rbp, %rsi
callq 0x3ffc
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x36c9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
incq %rbx
cmpq %rbx, 0x50(%rsp)
jne 0x3477
movq 0x20(%rsp), %rbx
movq (%rbx), %rax
cmpq 0x8(%rbx), %rax
movq 0x48(%rsp), %rsi
jne 0x36fa
movq 0x18(%rsi), %rdi
addq $0x8, %rsi
movq %rbx, %rdx
callq 0x3e9c
movq %rbx, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x26d4
movq 0x48b0(%rip), %rsi      # 0x7fc8
movq %rax, %rdi
callq 0x3e38
movq 0x48a1(%rip), %rdi      # 0x7fc8
callq 0x2150
movl $0x10, %edi
callq 0x2100
leaq 0x4643(%rip), %rcx      # 0x7d80
movq %rcx, (%rax)
movl $0x0, 0x8(%rax)
leaq 0x460a(%rip), %rsi      # 0x7d58
movq 0x4883(%rip), %rdx      # 0x7fd8
movq %rax, %rdi
callq 0x2310
movq 0x4864(%rip), %rdi      # 0x7fc8
leaq 0x19ce(%rip), %rsi      # 0x5139
movl $0x7, %edx
callq 0x2230
movq (%r14), %rsi
movq 0x4849(%rip), %rdi      # 0x7fc8
callq 0x21f0
leaq 0x19b6(%rip), %rsi      # 0x5141
movl $0x22, %edx
movq %rax, %rdi
callq 0x2230
movq 0x4829(%rip), %rdi      # 0x7fc8
leaq 0x19be(%rip), %rsi      # 0x5164
movl $0x14, %edx
callq 0x2230
movq 0x4811(%rip), %rdi      # 0x7fc8
leaq 0x19bb(%rip), %rsi      # 0x5179
movl $0x2e, %edx
callq 0x2230
movq 0x47f9(%rip), %rdi      # 0x7fc8
leaq 0x19d2(%rip), %rsi      # 0x51a8
movl $0x4e, %edx
callq 0x2230
movq 0x47e1(%rip), %rdi      # 0x7fc8
leaq 0x1a09(%rip), %rsi      # 0x51f7
movl $0x37, %edx
callq 0x2230
movq 0x47c9(%rip), %rdi      # 0x7fc8
leaq 0x1a29(%rip), %rsi      # 0x522f
movl $0x94, %edx
callq 0x2230
movq 0x47b1(%rip), %rdi      # 0x7fc8
callq 0x20f0
jmp 0x372c
movq %rbx, 0x20(%rsp)
jmp 0x3858
jmp 0x3834
jmp 0x3858
jmp 0x3858
jmp 0x3834
jmp 0x3858
jmp 0x3834
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x385b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2210
jmp 0x385b
jmp 0x3858
jmp 0x3858
movq %rax, %rbx
movq 0x20(%rsp), %rdi
callq 0x386e
movq %rbx, %rdi
callq 0x2330
nop