// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov.cc
// Function: scdc_dataprov::dataset_cmds_do_cmd(scdc_dataset*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, _scdc_dataset_inout_t*, _scdc_dataset_inout_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov::dataset_cmds_do_cmd(scdc_dataset *dataset, const std::string &cmd, const std::string &params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
{
  SCDC_TRACE("dataset_cmds_do_cmd: cmd: '" << cmd << "', params: '" << params << "'");

  dataset_cmds_t::iterator i = dataset_cmds.find(string(cmd));

  if (i == dataset_cmds.end())
  {
    result = "command '" + cmd + "' not implemented";
    SCDC_FAIL(__func__ << ": " << result);
    return false;
  }

  dataset_cmds_do_cmd_f do_cmd = i->second;

  bool ret = (dataset->*do_cmd)(params, input, output, result);

  SCDC_TRACE("dataset_cmds_do_cmd: return: '" << ret << "'");

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x5fc64
movq -0xd8(%rbp), %rax
addq $0x28, %rax
movq %rax, -0xf0(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x60(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0xc270
movq -0xf0(%rbp), %rdi
movq -0xe8(%rbp), %rsi
callq 0x60130
movq %rax, -0xe0(%rbp)
jmp 0x5fca6
movq -0xe0(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xc3e0
movq -0xd8(%rbp), %rdi
addq $0x28, %rdi
callq 0x60160
movq %rax, -0x78(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x3c820
testb $0x1, %al
jne 0x5fce4
jmp 0x5fe27
movq -0x20(%rbp), %rdx
leaq 0x48f3a(%rip), %rsi     # 0xa8c29
leaq -0xb8(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x25900
movq -0xf8(%rbp), %rsi
leaq 0x480ed(%rip), %rdx     # 0xa7dfd
leaq -0x98(%rbp), %rdi
callq 0x2eef0
jmp 0x5fd1e
movq 0x10(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xc850
leaq -0x98(%rbp), %rdi
callq 0xc3e0
leaq -0xb8(%rbp), %rdi
callq 0xc3e0
leaq 0x7495b(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x5fe1c
leaq 0x74942(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x74933(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x46429(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x47f06(%rip), %rsi     # 0xa7c9c
callq 0xc670
movq %rax, %rdi
leaq 0x4806a(%rip), %rsi     # 0xa7e0f
callq 0xc670
movq %rax, %rdi
leaq 0x49d37(%rip), %rsi     # 0xa9aeb
callq 0xc670
movq %rax, %rdi
movq 0x10(%rbp), %rsi
callq 0xc5b0
movq %rax, %rdi
movq 0x741f1(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x748cd(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x5fe1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xc3e0
jmp 0x5fee9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0xc3e0
jmp 0x5fee9
jmp 0x5fe1e
movb $0x0, -0x1(%rbp)
jmp 0x5fedb
leaq -0x40(%rbp), %rdi
callq 0x60190
movq %rax, %rcx
movq 0x20(%rcx), %rax
movq 0x28(%rcx), %rcx
movq %rcx, -0xc0(%rbp)
movq %rax, -0xc8(%rbp)
movq -0x18(%rbp), %rcx
movq -0xc8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0xc0(%rbp), %rdx
addq %rdx, %rcx
movq %rcx, -0x100(%rbp)
andq $0x1, %rax
cmpq $0x0, %rax
je 0x5fe98
movq -0x108(%rbp), %rcx
movq -0x100(%rbp), %rax
movq (%rax), %rax
subq $0x1, %rcx
movq (%rax,%rcx), %rax
movq %rax, -0x110(%rbp)
jmp 0x5fea6
movq -0x108(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x100(%rbp), %rdi
movq -0x110(%rbp), %rax
movq -0x28(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq 0x10(%rbp), %r8
callq *%rax
andb $0x1, %al
movb %al, -0xc9(%rbp)
jmp 0x5fed0
movb -0xc9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nopl (%rax)