// File: /workspace/github_cpp_makefile_star2_O2/trapexit[P]bbf/src/options.cpp
// Function: Options::instr_from_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Options::Instruction
Options::instr_from_string(const std::string str)
{
  if(str == "info")
    return Options::INFO;
  if(str == "captcha")
    return Options::CAPTCHA;
  if(str == "scan")
    return Options::SCAN;
  if(str == "fix")
    return Options::FIX;
  if(str == "fix-file")
    return Options::FIX_FILE;
  if(str == "burnin")
    return Options::BURNIN;
  if(str == "find-files")
    return Options::FIND_FILES;
  if(str == "dump-files")
    return Options::DUMP_FILES;
  if(str == "file-blocks")
    return Options::FILE_BLOCKS;
  if(str == "write-pseudo-uncorrectable-wl")
    return Options::WRITE_PSEUDO_UNCORRECTABLE_WL;
  if(str == "write-pseudo-uncorrectable-wol")
    return Options::WRITE_PSEUDO_UNCORRECTABLE_WOL;
  if(str == "write-flagged-uncorrectable-wl")
    return Options::WRITE_FLAGGED_UNCORRECTABLE_WL;
  if(str == "write-flagged-uncorrectable-wol")
    return Options::WRITE_FLAGGED_UNCORRECTABLE_WOL;
  if(str == "security-erase")
    return Options::SECURITY_ERASE;
  if(str == "enhanced-security-erase")
    return Options::ENHANCED_SECURITY_ERASE;
  if(str == "fsthrash")
    return Options::FSTHRASH;
  if(str == "filethrash")
    return Options::FILETHRASH;

  return Options::_INVALID;
}

// Assembly:
pushq %rbx
movq %rsi, %rbx
leaq 0x6206(%rip), %rsi      # 0x12c7d
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xca87
pushq $0xa
jmp 0xcae1
leaq 0x61f4(%rip), %rsi      # 0x12c82
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xca9e
pushq $0x1
jmp 0xcae1
leaq 0x61e5(%rip), %rsi      # 0x12c8a
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcab5
pushq $0xb
jmp 0xcae1
leaq 0x61d3(%rip), %rsi      # 0x12c8f
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcacc
pushq $0x6
jmp 0xcae1
leaq 0x61c0(%rip), %rsi      # 0x12c93
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcae4
pushq $0x7
popq %rax
popq %rbx
retq
leaq 0x5662(%rip), %rsi      # 0x1214d
movq %rbx, %rdi
callq 0x4e48
movl %eax, %ecx
xorl %eax, %eax
testb %cl, %cl
jne 0xcae2
leaq 0x619a(%rip), %rsi      # 0x12c9c
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb12
pushq $0x5
jmp 0xcae1
leaq 0x618e(%rip), %rsi      # 0x12ca7
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb29
pushq $0x2
jmp 0xcae1
leaq 0x6182(%rip), %rsi      # 0x12cb2
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb40
pushq $0x4
jmp 0xcae1
leaq 0x6177(%rip), %rsi      # 0x12cbe
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb57
pushq $0xf
jmp 0xcae1
leaq 0x617e(%rip), %rsi      # 0x12cdc
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb71
pushq $0x10
jmp 0xcae1
leaq 0x6183(%rip), %rsi      # 0x12cfb
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcb8b
pushq $0xd
jmp 0xcae1
leaq 0x6188(%rip), %rsi      # 0x12d1a
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcba5
pushq $0xe
jmp 0xcae1
leaq 0x6197(%rip), %rsi      # 0x12d43
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcbbf
pushq $0xc
jmp 0xcae1
leaq 0x6174(%rip), %rsi      # 0x12d3a
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcbd9
pushq $0x3
jmp 0xcae1
leaq 0x6172(%rip), %rsi      # 0x12d52
movq %rbx, %rdi
callq 0x4e48
testb %al, %al
je 0xcbf3
pushq $0x9
jmp 0xcae1
leaq 0x6161(%rip), %rsi      # 0x12d5b
movq %rbx, %rdi
callq 0x4e48
movzbl %al, %eax
decl %eax
orl $0x8, %eax
jmp 0xcae2
nop