// File: Falldog[P]dcinja/src/include/inja/inja.hpp
// Function: inja::FunctionStorage::find_function(std::basic_string_view<char, std::char_traits<char>>, int) const
FunctionData find_function(nonstd::string_view name, int num_args) const {
    auto it = function_storage.find(std::make_pair(static_cast<std::string>(name), num_args));
    if (it != function_storage.end()) {
      return it->second;

    // Find variadic function
    } else if (num_args > 0) {
      it = function_storage.find(std::make_pair(static_cast<std::string>(name), VARIADIC));
      if (it != function_storage.end()) {
        return it->second;
      }
    }

    return FunctionData { Operation::None };
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x148(%rbp)
movq %rdi, %rax
movq %rax, -0x140(%rbp)
movq %rdi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x10(%rbp)
movq %rsi, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x138(%rbp)
addq $0x8, %rax
movq %rax, -0x130(%rbp)
leaq -0x79(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0xba70
movq -0x128(%rbp), %rdx
leaq -0x78(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x31e70
jmp 0x5e1dc
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x24(%rbp), %rdx
callq 0x64870
jmp 0x5e1ef
movq -0x130(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x64840
movq %rax, -0x150(%rbp)
jmp 0x5e208
movq -0x150(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x2d8a0
leaq -0x78(%rbp), %rdi
callq 0xbb98
leaq -0x79(%rbp), %rdi
callq 0xb600
movq -0x138(%rbp), %rdi
addq $0x8, %rdi
callq 0x648e0
movq %rax, -0x98(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x648b0
testb $0x1, %al
jne 0x5e25b
jmp 0x5e2d6
leaq -0x30(%rbp), %rdi
callq 0x64910
movq -0x148(%rbp), %rdi
movq %rax, %rsi
addq $0x28, %rsi
callq 0x2e8e0
jmp 0x5e4af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5e2c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5e2bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x2d8a0
leaq -0x78(%rbp), %rdi
callq 0xbb98
leaq -0x79(%rbp), %rdi
callq 0xb600
jmp 0x5e4bf
cmpl $0x0, -0x24(%rbp)
jle 0x5e446
movq -0x138(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x160(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0xba70
movq -0x158(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x31e70
jmp 0x5e31e
movq -0x138(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x64930
jmp 0x5e33a
movq -0x160(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x64840
movq %rax, -0x168(%rbp)
jmp 0x5e356
movq -0x168(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x2d8a0
leaq -0xe8(%rbp), %rdi
callq 0xbb98
leaq -0xe9(%rbp), %rdi
callq 0xb600
movq -0x138(%rbp), %rdi
addq $0x8, %rdi
callq 0x648e0
movq %rax, -0xf8(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x648b0
testb $0x1, %al
jne 0x5e3c3
jmp 0x5e444
leaq -0x30(%rbp), %rdi
callq 0x64910
movq -0x148(%rbp), %rdi
movq %rax, %rsi
addq $0x28, %rsi
callq 0x2e8e0
jmp 0x5e4af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5e436
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5e42a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x2d8a0
leaq -0xe8(%rbp), %rdi
callq 0xbb98
leaq -0xe9(%rbp), %rdi
callq 0xb600
jmp 0x5e4bf
jmp 0x5e446
jmp 0x5e448
movl $0x2e, -0xfc(%rbp)
leaq -0x120(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x2d260
movq -0x148(%rbp), %rdi
movq -0x170(%rbp), %rdx
leaq -0xfc(%rbp), %rsi
callq 0x2d2a0
jmp 0x5e481
leaq -0x120(%rbp), %rdi
callq 0x2d6a0
jmp 0x5e4af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x2d6a0
jmp 0x5e4bf
movq -0x140(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x88(%rbp), %rdi
callq 0xba60
nopl (%rax,%rax)