// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov.cc
// Function: scdc_dataprov::config_do_cmd(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::config_do_cmd(const std::string &cmd, const std::string &params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
{
  SCDC_TRACE("config_do_cmd: cmd: '" << cmd << "', params: '" << params << "', input: '" << input << "', output: '" << output << "'");

  stringlist pvsl(',', params);

  scdc_config_result res;
  bool done = false;

  if (pvsl.size() > 0)
  {
    string pv;

    while (pvsl.front_pop(pv))
    {
      SCDC_TRACE("config_do_cmd: parameter (and value): '" << pv << "'");

      stringlist pvl(' ', pv);
      string p = pvl.front_pop();

      if (p == "*")
      {
        scdc_config_result ast;
        config_do_cmd_param("ls", "", string(""), ast, done);

        if (ast.size() > 0)
        {
          if (pvsl.size() > 0) ast += "," + pvsl.conflate();
          pvsl = stringlist(',', ast);
        }

      } else
      {
        if (!config_do_cmd_param_base(cmd, p.c_str(), pvl.conflate(), res, done))
        {
          result = "config command for parameter '" + p + "' failed: " + res;
          SCDC_FAIL(__func__ << ": " << result);
          return false;
        }
      }
    }

  } else
  {
    if (!config_do_cmd_param_base(cmd, "", string(""), res, done))
    {
      result = "config command '" + cmd + "' failed";
      SCDC_FAIL(__func__ << ": " << result);
      return false;
    }
  }

  SCDC_TRACE("config_do_cmd: result: '" << res << "'");

  result = res;

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x490, %rsp            # imm = 0x490
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, -0x3a8(%rbp)
jmp 0x5eb70
movq -0x20(%rbp), %rsi
leaq -0x80(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0xc270
movq -0x3b0(%rbp), %rdx
leaq -0x60(%rbp), %rdi
movl $0x2c, %esi
callq 0x5ff80
jmp 0x5eb9b
leaq -0x80(%rbp), %rdi
callq 0xc3e0
leaq -0xb0(%rbp), %rdi
callq 0x278d0
jmp 0x5ebb2
movb $0x0, -0xb1(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x25ae0
movq %rax, -0x3b8(%rbp)
jmp 0x5ebcb
movq -0x3b8(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5f430
leaq -0xd8(%rbp), %rdi
callq 0xc960
leaq -0x60(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x26730
movb %al, -0x3b9(%rbp)
jmp 0x5ec00
movb -0x3b9(%rbp), %al
testb $0x1, %al
jne 0x5ec0f
jmp 0x5f3f4
jmp 0x5ec11
jmp 0x5ec13
jmp 0x5ec15
leaq -0x120(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0xc270
jmp 0x5ec2a
leaq -0x100(%rbp), %rdi
movl $0x20, %esi
leaq -0x120(%rbp), %rdx
callq 0x5ff80
jmp 0x5ec44
leaq -0x120(%rbp), %rdi
callq 0xc3e0
leaq -0x140(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x25b00
jmp 0x5ec65
leaq 0x49132(%rip), %rsi     # 0xa7d9e
leaq -0x140(%rbp), %rdi
callq 0x25b80
movb %al, -0x3ba(%rbp)
jmp 0x5ec80
movb -0x3ba(%rbp), %al
testb $0x1, %al
jne 0x5ec8f
jmp 0x5f086
leaq -0x160(%rbp), %rdi
callq 0x278d0
jmp 0x5ec9d
leaq -0x181(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0xcbc0
movq -0x3c8(%rbp), %rdx
leaq 0x47e72(%rip), %rsi     # 0xa6b30
leaq -0x180(%rbp), %rdi
callq 0x27820
jmp 0x5eccc
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0xcbc0
movq -0x3d0(%rbp), %rdx
leaq 0x478b7(%rip), %rsi     # 0xa65a4
leaq -0x1a8(%rbp), %rdi
callq 0x27820
jmp 0x5ecfb
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0xcbc0
movq -0x3d8(%rbp), %rdx
leaq 0x47888(%rip), %rsi     # 0xa65a4
leaq -0x1d0(%rbp), %rdi
callq 0x27820
jmp 0x5ed2a
movq -0x3a8(%rbp), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
leaq -0x180(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
leaq -0x1d0(%rbp), %rcx
leaq -0x160(%rbp), %r8
leaq -0xb1(%rbp), %r9
callq *%rax
jmp 0x5ed5f
leaq -0x1d0(%rbp), %rdi
callq 0xc3e0
leaq -0x1d1(%rbp), %rdi
callq 0xc730
leaq -0x1a8(%rbp), %rdi
callq 0xc3e0
leaq -0x1a9(%rbp), %rdi
callq 0xc730
leaq -0x180(%rbp), %rdi
callq 0xc3e0
leaq -0x181(%rbp), %rdi
callq 0xc730
leaq -0x160(%rbp), %rdi
callq 0xc460
cmpq $0x0, %rax
jbe 0x5f064
leaq -0x60(%rbp), %rdi
callq 0x25ae0
movq %rax, -0x3e0(%rbp)
jmp 0x5edcf
movq -0x3e0(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5efeb
leaq -0x218(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x2e970
jmp 0x5edf2
leaq 0x47a70(%rip), %rsi     # 0xa6869
leaq -0x1f8(%rbp), %rdi
leaq -0x218(%rbp), %rdx
callq 0x3b040
jmp 0x5ee0e
leaq -0x160(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0xc8a0
jmp 0x5ee23
leaq -0x1f8(%rbp), %rdi
callq 0xc3e0
leaq -0x218(%rbp), %rdi
callq 0xc3e0
jmp 0x5efeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0xc3e0
jmp 0x5f780
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f777
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f76b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f41f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0xc3e0
jmp 0x5f41f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f3e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f3da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5ef80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5ef68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5ef50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0xc3e0
leaq -0x1d1(%rbp), %rdi
callq 0xc730
leaq -0x1a8(%rbp), %rdi
callq 0xc3e0
leaq -0x1a9(%rbp), %rdi
callq 0xc730
leaq -0x180(%rbp), %rdi
callq 0xc3e0
leaq -0x181(%rbp), %rdi
callq 0xc730
jmp 0x5f075
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f075
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5efda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xc3e0
leaq -0x218(%rbp), %rdi
callq 0xc3e0
jmp 0x5f075
leaq -0x260(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0xc270
jmp 0x5f000
leaq -0x240(%rbp), %rdi
movl $0x2c, %esi
leaq -0x260(%rbp), %rdx
callq 0x5ff80
jmp 0x5f01a
leaq -0x60(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x600b0
leaq -0x240(%rbp), %rdi
callq 0x25c90
leaq -0x260(%rbp), %rdi
callq 0xc3e0
jmp 0x5f064
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0xc3e0
jmp 0x5f075
leaq -0x160(%rbp), %rdi
callq 0x27ae0
jmp 0x5f3a7
leaq -0x160(%rbp), %rdi
callq 0x27ae0
jmp 0x5f3da
movq -0x18(%rbp), %rax
movq %rax, -0x3f8(%rbp)
leaq -0x140(%rbp), %rdi
callq 0xc260
movq %rax, -0x3f0(%rbp)
leaq -0x281(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0xcbc0
movq -0x3f0(%rbp), %rsi
movq -0x3e8(%rbp), %rdx
leaq -0x280(%rbp), %rdi
callq 0x27820
jmp 0x5f0d3
leaq -0x2a8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x2e970
jmp 0x5f0e8
movq -0x3f8(%rbp), %rsi
movq -0x3a8(%rbp), %rdi
leaq -0x280(%rbp), %rdx
leaq -0x2a8(%rbp), %rcx
leaq -0xb0(%rbp), %r8
leaq -0xb1(%rbp), %r9
callq 0x5f790
movb %al, -0x3f9(%rbp)
jmp 0x5f11f
movb -0x3f9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x3fa(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0xc3e0
leaq -0x280(%rbp), %rdi
callq 0xc3e0
leaq -0x281(%rbp), %rdi
callq 0xc730
movb -0x3fa(%rbp), %al
testb $0x1, %al
jne 0x5f160
jmp 0x5f3a5
leaq 0x48c39(%rip), %rsi     # 0xa7da0
leaq -0x308(%rbp), %rdi
leaq -0x140(%rbp), %rdx
callq 0x25900
jmp 0x5f17c
leaq 0x47845(%rip), %rdx     # 0xa69c8
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x2eef0
jmp 0x5f198
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x34a30
jmp 0x5f1b4
movq -0x38(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xc850
leaq -0x2c8(%rbp), %rdi
callq 0xc3e0
leaq -0x2e8(%rbp), %rdi
callq 0xc3e0
leaq -0x308(%rbp), %rdi
callq 0xc3e0
leaq 0x754b9(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x408(%rbp)
jmp 0x5f200
movq -0x408(%rbp), %rax
cmpq $0x0, %rax
je 0x5f391
leaq 0x75490(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x5f222
leaq 0x7547f(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x410(%rbp)
jmp 0x5f23a
movq -0x410(%rbp), %rdi
leaq 0x46f68(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0x418(%rbp)
jmp 0x5f256
movq -0x418(%rbp), %rdi
leaq 0x48a38(%rip), %rsi     # 0xa7c9c
callq 0xc670
movq %rax, -0x420(%rbp)
jmp 0x5f272
movq -0x420(%rbp), %rdi
leaq 0x48b3f(%rip), %rsi     # 0xa7dbf
callq 0xc670
movq %rax, -0x428(%rbp)
jmp 0x5f28e
movq -0x428(%rbp), %rdi
leaq 0x4a84f(%rip), %rsi     # 0xa9aeb
callq 0xc670
movq %rax, -0x430(%rbp)
jmp 0x5f2aa
movq -0x430(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x438(%rbp)
jmp 0x5f2c3
movq -0x438(%rbp), %rdi
movq 0x74cef(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x5f2d8
leaq 0x753c9(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x5f2e9
jmp 0x5f391
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f340
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f334
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0xc3e0
leaq -0x280(%rbp), %rdi
callq 0xc3e0
leaq -0x281(%rbp), %rdi
callq 0xc730
jmp 0x5f3da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f383
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0xc3e0
leaq -0x308(%rbp), %rdi
callq 0xc3e0
jmp 0x5f3da
jmp 0x5f393
jmp 0x5f395
movb $0x0, -0x1(%rbp)
movl $0x1, -0x30c(%rbp)
jmp 0x5f3b1
jmp 0x5f3a7
movl $0x0, -0x30c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0xc3e0
leaq -0x100(%rbp), %rdi
callq 0x25c90
movl -0x30c(%rbp), %eax
testl %eax, %eax
jne 0x5f3fe
jmp 0x5f3d5
jmp 0x5ebe8
leaq -0x140(%rbp), %rdi
callq 0xc3e0
leaq -0x100(%rbp), %rdi
callq 0x25c90
jmp 0x5f41f
movl $0x0, -0x30c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xc3e0
movl -0x30c(%rbp), %eax
testl %eax, %eax
jne 0x5f748
jmp 0x5f41a
jmp 0x5f722
leaq -0xd8(%rbp), %rdi
callq 0xc3e0
jmp 0x5f76b
movq -0x18(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x331(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0xcbc0
movq -0x440(%rbp), %rdx
leaq 0x47148(%rip), %rsi     # 0xa65a4
leaq -0x330(%rbp), %rdi
callq 0x27820
jmp 0x5f46a
leaq -0x359(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0xcbc0
movq -0x450(%rbp), %rdx
leaq 0x47119(%rip), %rsi     # 0xa65a4
leaq -0x358(%rbp), %rdi
callq 0x27820
jmp 0x5f499
movq -0x448(%rbp), %rsi
movq -0x3a8(%rbp), %rdi
leaq -0x330(%rbp), %rdx
leaq -0x358(%rbp), %rcx
leaq -0xb0(%rbp), %r8
leaq -0xb1(%rbp), %r9
callq 0x5f790
movb %al, -0x451(%rbp)
jmp 0x5f4d0
movb -0x451(%rbp), %al
xorb $-0x1, %al
movb %al, -0x452(%rbp)
leaq -0x358(%rbp), %rdi
callq 0xc3e0
leaq -0x359(%rbp), %rdi
callq 0xc730
leaq -0x330(%rbp), %rdi
callq 0xc3e0
leaq -0x331(%rbp), %rdi
callq 0xc730
movb -0x452(%rbp), %al
testb $0x1, %al
jne 0x5f51d
jmp 0x5f720
movq -0x18(%rbp), %rdx
leaq 0x488a5(%rip), %rsi     # 0xa7dcd
leaq -0x3a0(%rbp), %rdi
callq 0x25900
jmp 0x5f536
leaq 0x489cf(%rip), %rdx     # 0xa7f0c
leaq -0x380(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x2eef0
jmp 0x5f552
movq -0x38(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0xc850
leaq -0x380(%rbp), %rdi
callq 0xc3e0
leaq -0x3a0(%rbp), %rdi
callq 0xc3e0
leaq 0x75127(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x460(%rbp)
jmp 0x5f592
movq -0x460(%rbp), %rax
cmpq $0x0, %rax
je 0x5f70c
leaq 0x750fe(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x5f5b4
leaq 0x750ed(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x468(%rbp)
jmp 0x5f5cc
movq -0x468(%rbp), %rdi
leaq 0x46bd6(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0x470(%rbp)
jmp 0x5f5e8
movq -0x470(%rbp), %rdi
leaq 0x486a6(%rip), %rsi     # 0xa7c9c
callq 0xc670
movq %rax, -0x478(%rbp)
jmp 0x5f604
movq -0x478(%rbp), %rdi
leaq 0x487ad(%rip), %rsi     # 0xa7dbf
callq 0xc670
movq %rax, -0x480(%rbp)
jmp 0x5f620
movq -0x480(%rbp), %rdi
leaq 0x4a4bd(%rip), %rsi     # 0xa9aeb
callq 0xc670
movq %rax, -0x488(%rbp)
jmp 0x5f63c
movq -0x488(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x490(%rbp)
jmp 0x5f655
movq -0x490(%rbp), %rdi
movq 0x7495d(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x5f66a
leaq 0x75037(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x5f67b
jmp 0x5f70c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f6de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x5f6c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x358(%rbp), %rdi
callq 0xc3e0
leaq -0x359(%rbp), %rdi
callq 0xc730
leaq -0x330(%rbp), %rdi
callq 0xc3e0
leaq -0x331(%rbp), %rdi
callq 0xc730
jmp 0x5f76b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0xc3e0
jmp 0x5f76b
jmp 0x5f70e
jmp 0x5f710
movb $0x0, -0x1(%rbp)
movl $0x1, -0x30c(%rbp)
jmp 0x5f748
jmp 0x5f722
jmp 0x5f724
jmp 0x5f726
jmp 0x5f728
movq -0x38(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xc070
jmp 0x5f73a
movb $0x1, -0x1(%rbp)
movl $0x1, -0x30c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x27ae0
leaq -0x60(%rbp), %rdi
callq 0x25c90
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x490, %rsp            # imm = 0x490
popq %rbp
retq
leaq -0xb0(%rbp), %rdi
callq 0x27ae0
leaq -0x60(%rbp), %rdi
callq 0x25c90
movq -0x88(%rbp), %rdi
callq 0xcba0
nopl (%rax)