// File: 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
movq %rsp, %rbp
subq $0x2b0, %rsp            # imm = 0x2B0
movq %rdi, -0x190(%rbp)
movq %rdi, %rax
movq %rax, -0x188(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x180(%rbp)
movb $0x0, -0x21(%rbp)
callq 0x5240
movl $0x1, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x5afa
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x1a0(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x33f0
movq -0x198(%rbp), %rdx
movb $0x0, -0x82(%rbp)
movb $0x0, -0x83(%rbp)
leaq 0x3dd8(%rip), %rsi      # 0x90c9
leaq -0x48(%rbp), %rdi
callq 0x38c0
jmp 0x52fc
movq -0x1a0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x6660
movb %al, -0x1a1(%rbp)
jmp 0x5314
movb -0x1a1(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a2(%rbp)
jne 0x539c
jmp 0x5329
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x1b8(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x33f0
movq -0x1b0(%rbp), %rdx
movb $0x1, -0x82(%rbp)
leaq 0x3d77(%rip), %rsi      # 0x90db
leaq -0x80(%rbp), %rdi
callq 0x38c0
jmp 0x536f
movq -0x1b8(%rbp), %rdi
movb $0x1, -0x83(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x6660
movb %al, -0x1b9(%rbp)
jmp 0x538e
movb -0x1b9(%rbp), %al
movb %al, -0x1a2(%rbp)
jmp 0x539c
movb -0x1a2(%rbp), %al
movb %al, -0x1ba(%rbp)
testb $0x1, -0x83(%rbp)
jne 0x53b3
jmp 0x53bc
leaq -0x80(%rbp), %rdi
callq 0x3160
testb $0x1, -0x82(%rbp)
jne 0x53c7
jmp 0x53d3
leaq -0x81(%rbp), %rdi
callq 0x3290
leaq -0x48(%rbp), %rdi
callq 0x3160
leaq -0x49(%rbp), %rdi
callq 0x3290
movb -0x1ba(%rbp), %al
testb $0x1, %al
jne 0x53f4
jmp 0x5515
callq 0x39a0
movq %rax, -0x1c8(%rbp)
jmp 0x5402
movq -0x1c8(%rbp), %rdi
movq 0x8bb8(%rip), %rsi      # 0xdfc8
callq 0x6690
jmp 0x5417
movq 0x8baa(%rip), %rdi      # 0xdfc8
movq 0x8bab(%rip), %rsi      # 0xdfd0
callq 0x3270
jmp 0x542c
movl $0x10, %edi
callq 0x3110
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1d0(%rbp)
xorl %esi, %esi
callq 0x6720
jmp 0x544c
movq -0x1d0(%rbp), %rdi
leaq 0x88f6(%rip), %rsi      # 0xdd50
leaq 0x12ff(%rip), %rdx      # 0x6760
callq 0x33b0
jmp 0x5be4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x54d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x54d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x54b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x83(%rbp)
jne 0x54ac
jmp 0x54b5
leaq -0x80(%rbp), %rdi
callq 0x3160
jmp 0x54b7
testb $0x1, -0x82(%rbp)
jne 0x54c2
jmp 0x54ce
leaq -0x81(%rbp), %rdi
callq 0x3290
jmp 0x54d0
leaq -0x48(%rbp), %rdi
callq 0x3160
leaq -0x49(%rbp), %rdi
callq 0x3290
jmp 0x5bcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5bcf
movq -0x1d0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
callq 0x31b0
jmp 0x5bcf
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x1e0(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x33f0
movq -0x1d8(%rbp), %rdx
movb $0x0, -0xd2(%rbp)
movb $0x0, -0xd3(%rbp)
leaq 0x3b87(%rip), %rsi      # 0x90de
leaq -0xa8(%rbp), %rdi
callq 0x38c0
jmp 0x5565
movq -0x1e0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x6660
movb %al, -0x1e1(%rbp)
jmp 0x5580
movb -0x1e1(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1e2(%rbp)
jne 0x560e
jmp 0x5595
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x1f8(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x33f0
movq -0x1f0(%rbp), %rdx
movb $0x1, -0xd2(%rbp)
leaq 0x3b16(%rip), %rsi      # 0x90e6
leaq -0xd0(%rbp), %rdi
callq 0x38c0
jmp 0x55de
movq -0x1f8(%rbp), %rdi
movb $0x1, -0xd3(%rbp)
leaq -0xd0(%rbp), %rsi
callq 0x6660
movb %al, -0x1f9(%rbp)
jmp 0x5600
movb -0x1f9(%rbp), %al
movb %al, -0x1e2(%rbp)
jmp 0x560e
movb -0x1e2(%rbp), %al
movb %al, -0x1fa(%rbp)
testb $0x1, -0xd3(%rbp)
jne 0x5625
jmp 0x5631
leaq -0xd0(%rbp), %rdi
callq 0x3160
testb $0x1, -0xd2(%rbp)
jne 0x563c
jmp 0x5648
leaq -0xd1(%rbp), %rdi
callq 0x3290
leaq -0xa8(%rbp), %rdi
callq 0x3160
leaq -0xa9(%rbp), %rdi
callq 0x3290
movb -0x1fa(%rbp), %al
testb $0x1, %al
jne 0x566f
jmp 0x5715
callq 0x39a0
movq %rax, -0x208(%rbp)
jmp 0x567d
movq -0x208(%rbp), %rdi
callq 0x6780
jmp 0x568b
jmp 0x5ae8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5704
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x56f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x56df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0xd3(%rbp)
jne 0x56d1
jmp 0x56dd
leaq -0xd0(%rbp), %rdi
callq 0x3160
jmp 0x56df
testb $0x1, -0xd2(%rbp)
jne 0x56ea
jmp 0x56f6
leaq -0xd1(%rbp), %rdi
callq 0x3290
jmp 0x56f8
leaq -0xa8(%rbp), %rdi
callq 0x3160
leaq -0xa9(%rbp), %rdi
callq 0x3290
jmp 0x5bcf
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x218(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x33f0
movq -0x210(%rbp), %rdx
movb $0x0, -0x122(%rbp)
movb $0x0, -0x123(%rbp)
leaq 0x3992(%rip), %rsi      # 0x90e9
leaq -0xf8(%rbp), %rdi
callq 0x38c0
jmp 0x5765
movq -0x218(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x6660
movb %al, -0x219(%rbp)
jmp 0x5780
movb -0x219(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x21a(%rbp)
jne 0x580e
jmp 0x5795
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x230(%rbp)
leaq -0x121(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x33f0
movq -0x228(%rbp), %rdx
movb $0x1, -0x122(%rbp)
leaq 0x3920(%rip), %rsi      # 0x90f0
leaq -0x120(%rbp), %rdi
callq 0x38c0
jmp 0x57de
movq -0x230(%rbp), %rdi
movb $0x1, -0x123(%rbp)
leaq -0x120(%rbp), %rsi
callq 0x6660
movb %al, -0x231(%rbp)
jmp 0x5800
movb -0x231(%rbp), %al
movb %al, -0x21a(%rbp)
jmp 0x580e
movb -0x21a(%rbp), %al
movb %al, -0x232(%rbp)
testb $0x1, -0x123(%rbp)
jne 0x5825
jmp 0x5831
leaq -0x120(%rbp), %rdi
callq 0x3160
testb $0x1, -0x122(%rbp)
jne 0x583c
jmp 0x5848
leaq -0x121(%rbp), %rdi
callq 0x3290
leaq -0xf8(%rbp), %rdi
callq 0x3160
leaq -0xf9(%rbp), %rdi
callq 0x3290
movb -0x232(%rbp), %al
testb $0x1, %al
jne 0x586f
jmp 0x5a3e
movq 0x8752(%rip), %rdi      # 0xdfc8
leaq 0x3876(%rip), %rsi      # 0x90f3
callq 0x3220
movq %rax, -0x240(%rbp)
jmp 0x588b
movq -0x240(%rbp), %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rsi
callq 0x3220
movq %rax, -0x248(%rbp)
jmp 0x58a7
movq -0x248(%rbp), %rdi
leaq 0x3846(%rip), %rsi      # 0x90fb
callq 0x3220
jmp 0x58bc
movq 0x8705(%rip), %rdi      # 0xdfc8
leaq 0x3854(%rip), %rsi      # 0x911e
callq 0x3220
movq %rax, -0x250(%rbp)
jmp 0x58d8
movq -0x250(%rbp), %rdi
leaq 0x384d(%rip), %rsi      # 0x9133
callq 0x3220
movq %rax, -0x258(%rbp)
jmp 0x58f4
movq -0x258(%rbp), %rdi
leaq 0x3860(%rip), %rsi      # 0x9162
callq 0x3220
movq %rax, -0x260(%rbp)
jmp 0x5910
movq -0x260(%rbp), %rdi
leaq 0x3893(%rip), %rsi      # 0x91b1
callq 0x3220
movq %rax, -0x268(%rbp)
jmp 0x592c
movq -0x268(%rbp), %rdi
leaq 0x38af(%rip), %rsi      # 0x91e9
callq 0x3220
movq %rax, -0x270(%rbp)
jmp 0x5948
movq -0x270(%rbp), %rdi
movq 0x8652(%rip), %rsi      # 0xdfa8
callq 0x3270
jmp 0x595d
movl $0x10, %edi
callq 0x3110
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x278(%rbp)
xorl %esi, %esi
callq 0x6720
jmp 0x597d
movq -0x278(%rbp), %rdi
leaq 0x83c5(%rip), %rsi      # 0xdd50
leaq 0xdce(%rip), %rdx       # 0x6760
callq 0x33b0
jmp 0x5be4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5a10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5a04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x59eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
testb $0x1, -0x123(%rbp)
jne 0x59dd
jmp 0x59e9
leaq -0x120(%rbp), %rdi
callq 0x3160
jmp 0x59eb
testb $0x1, -0x122(%rbp)
jne 0x59f6
jmp 0x5a02
leaq -0x121(%rbp), %rdi
callq 0x3290
jmp 0x5a04
leaq -0xf8(%rbp), %rdi
callq 0x3160
leaq -0xf9(%rbp), %rdi
callq 0x3290
jmp 0x5bcf
movq -0x278(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
callq 0x31b0
jmp 0x5bcf
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x288(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x280(%rbp)
callq 0x33f0
movq -0x288(%rbp), %rsi
movq -0x280(%rbp), %rdx
leaq -0x148(%rbp), %rdi
callq 0x38c0
jmp 0x5a80
movq -0x190(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x67a0
jmp 0x5a95
leaq -0x148(%rbp), %rdi
callq 0x3160
leaq -0x149(%rbp), %rdi
callq 0x3290
jmp 0x5ae6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5ad5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x3160
leaq -0x149(%rbp), %rdi
callq 0x3290
jmp 0x5bcf
jmp 0x5ae8
jmp 0x5aea
jmp 0x5aec
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x52a6
movq -0x190(%rbp), %rdi
callq 0x67d0
testb $0x1, %al
jne 0x5b0f
jmp 0x5ba9
movq -0x180(%rbp), %rdi
callq 0x6920
movq %rax, -0x290(%rbp)
jmp 0x5b24
movq -0x180(%rbp), %rdi
movq -0x290(%rbp), %rax
movq %rax, -0x158(%rbp)
callq 0x5d70
movq %rax, -0x298(%rbp)
jmp 0x5b47
movq -0x190(%rbp), %rdi
movq -0x298(%rbp), %rax
movq %rax, -0x160(%rbp)
callq 0x6950
movq %rax, -0x2a0(%rbp)
jmp 0x5b6a
movq -0x2a0(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x158(%rbp), %rdi
movq -0x160(%rbp), %rsi
movq -0x168(%rbp), %rdx
callq 0x6810
movq %rax, -0x2a8(%rbp)
jmp 0x5b9b
movq -0x2a8(%rbp), %rax
movq %rax, -0x178(%rbp)
movb $0x1, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x5bbf
movq -0x190(%rbp), %rdi
callq 0x5c20
movq -0x188(%rbp), %rax
addq $0x2b0, %rsp            # imm = 0x2B0
popq %rbp
retq
movq -0x190(%rbp), %rdi
callq 0x5c20
movq -0x58(%rbp), %rdi
callq 0x33e0
nopw %cs:(%rax,%rax)
nop