// File: ncbi[P]amr/common.cpp
// Function: Common_sp::Application::getKey(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const
Application::Key* Application::getKey (const string &keyName) const
{
  if (! contains (name2arg, keyName))
    throw runtime_error ("Unknown key: " + strQuote (keyName) + "\n\n" + getInstruction (false));
    
  Key* key = nullptr;
  if (const Arg* arg = findPtr (name2arg, keyName))  	
    key = var_cast (arg->asKey ());
  if (! key)
    throw runtime_error (strQuote (keyName) + " is not a key\n\n" + getInstruction (false));
    
  return key;
}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
movq %rdi, 0x170(%rsp)
movq %rsi, 0x168(%rsp)
movq 0x170(%rsp), %rdi
movq %rdi, 0x10(%rsp)
addq $0x100, %rdi            # imm = 0x100
movq 0x168(%rsp), %rsi
callq 0x76610
testb $0x1, %al
jne 0x64871
movb $0x1, 0xb7(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, 0x8(%rsp)
movq 0x168(%rsp), %rsi
leaq 0xe8(%rsp), %rdi
movl $0x22, %edx
callq 0x424f0
jmp 0x646e3
leaq 0x6ade3(%rip), %rsi     # 0xcf4cd
leaq 0x108(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
callq 0x2a340
jmp 0x64701
leaq 0x6b314(%rip), %rdx     # 0xcfa1c
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x2a2f0
jmp 0x6471f
movq 0x10(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
xorl %edx, %edx
callq 0x64a50
jmp 0x64735
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x2dde0
jmp 0x64754
movq 0x8(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xcbb0
jmp 0x64768
movq 0x8(%rsp), %rdi
movb $0x0, 0xb7(%rsp)
movq 0xa1874(%rip), %rsi     # 0x105ff0
movq 0xa17ed(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x64a45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64856
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64849
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x6483c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x6482f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64822
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
leaq 0x148(%rsp), %rdi
callq 0xce98
leaq 0xb8(%rsp), %rdi
callq 0xce98
leaq 0x128(%rsp), %rdi
callq 0xce98
leaq 0x108(%rsp), %rdi
callq 0xce98
leaq 0xe8(%rsp), %rdi
callq 0xce98
testb $0x1, 0xb7(%rsp)
jne 0x64862
jmp 0x6486c
movq 0x8(%rsp), %rdi
callq 0xc580
jmp 0x64a38
movq 0x10(%rsp), %rdi
movq $0x0, 0xa8(%rsp)
addq $0x100, %rdi            # imm = 0x100
movq 0x168(%rsp), %rsi
callq 0x76b60
movq %rax, 0xa0(%rsp)
cmpq $0x0, 0xa0(%rsp)
je 0x648c7
movq 0xa0(%rsp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq %rax, %rdi
callq 0x2c010
movq %rax, 0xa8(%rsp)
cmpq $0x0, 0xa8(%rsp)
jne 0x64a28
movb $0x1, 0x1f(%rsp)
movl $0x10, %edi
callq 0xc3b0
movq %rax, (%rsp)
movq 0x168(%rsp), %rsi
leaq 0x40(%rsp), %rdi
movl $0x22, %edx
callq 0x424f0
jmp 0x64902
leaq 0x6abd2(%rip), %rdx     # 0xcf4db
leaq 0x60(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x2a2f0
jmp 0x6491a
movq 0x10(%rsp), %rsi
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0x64a50
jmp 0x6492d
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x2dde0
jmp 0x64946
movq (%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0xcbb0
jmp 0x64959
movq (%rsp), %rdi
movb $0x0, 0x1f(%rsp)
movq 0xa1687(%rip), %rsi     # 0x105ff0
movq 0xa1600(%rip), %rdx     # 0x105f70
callq 0xcc80
jmp 0x64a45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64a14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x64a00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
jmp 0x649f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
leaq 0x80(%rsp), %rdi
callq 0xce98
leaq 0x20(%rsp), %rdi
callq 0xce98
leaq 0x60(%rsp), %rdi
callq 0xce98
leaq 0x40(%rsp), %rdi
callq 0xce98
testb $0x1, 0x1f(%rsp)
jne 0x64a1d
jmp 0x64a26
movq (%rsp), %rdi
callq 0xc580
jmp 0x64a38
movq 0xa8(%rsp), %rax
addq $0x178, %rsp            # imm = 0x178
retq
movq 0xe0(%rsp), %rdi
callq 0xccf0
nopw %cs:(%rax,%rax)