// File: /workspace/github_cpp_makefile_star2_O2/mh0fm4[P]SCDC/test/demos/multi/multi_hook.c
// Function: multidemo_dataset_cmd
scdcint_t multidemo_dataset_cmd(void *dataprov, void *dataset, const char *cmd, const char *params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result_t *result)
{
  MULTI_TRACE("dataset_cmd:");
  MULTI_TRACE("  dataprov: '%p'", dataprov);
  MULTI_TRACE("  dataset: '%p'", dataset);
  MULTI_TRACE("  cmd: '%s'", cmd);
  MULTI_TRACE("  params: '%s'", params);

  MULTI_TRACE("before:");
  MULTI_TRACE_N("  "); scdc_dataset_input_print(input); MULTI_TRACE_NL("");
  MULTI_TRACE("  input buf: '%.*s'", (int) SCDC_DATASET_INOUT_BUF_SIZE(input), (char *) SCDC_DATASET_INOUT_BUF_PTR(input));
  MULTI_TRACE_N("  "); scdc_dataset_output_print(output); MULTI_TRACE_NL("");

  SCDC_DATASET_INOUT_MBUF_INIT(output, output_buf_m, sizeof(output_buf_m));
  SCDC_DATASET_INOUT_MBUF_SET_C(output, 4);
  SCDC_DATASET_INOUT_MBUF_M_SET(output, 0, output_buf_0, sizeof(output_buf_0), strlen(output_buf_0));
  SCDC_DATASET_INOUT_MBUF_M_SET(output, 1, output_buf_1, sizeof(output_buf_1), strlen(output_buf_1));
  SCDC_DATASET_INOUT_MBUF_M_SET(output, 2, output_buf_2, sizeof(output_buf_2), strlen(output_buf_2));
  SCDC_DATASET_INOUT_MBUF_M_SET(output, 3, output_buf_3, sizeof(output_buf_3), strlen(output_buf_3));

  MULTI_TRACE("after:");
  MULTI_TRACE_N("  "); scdc_dataset_output_print(output); MULTI_TRACE_NL("");

  return SCDC_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r9, %rbx
movq %r8, %r15
movq %rcx, (%rsp)
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %r14
leaq 0x37d7b(%rip), %rdi     # 0x44140
xorl %eax, %eax
callq 0xb070
pushq $0xa
popq %rbp
movl %ebp, %edi
callq 0xb770
leaq 0x37d89(%rip), %rdi     # 0x44166
movq %r14, %rsi
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
leaq 0x37d9b(%rip), %rdi     # 0x44190
movq %r13, %rsi
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
leaq 0x37dac(%rip), %rdi     # 0x441b9
movq %r12, %rsi
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
leaq 0x37db9(%rip), %rdi     # 0x441de
movq (%rsp), %rsi
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
leaq 0x37dc8(%rip), %rdi     # 0x44206
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
leaq 0x37dd4(%rip), %r14     # 0x44227
movq %r14, %rdi
xorl %eax, %eax
callq 0xb070
movq %r15, %rdi
callq 0x19360
movl %ebp, %edi
callq 0xb770
movl 0x18(%r15), %esi
movq 0x10(%r15), %rdx
leaq 0x37dc8(%rip), %rdi     # 0x44243
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
movq %r14, %rdi
xorl %eax, %eax
callq 0xb070
movq %rbx, %rdi
callq 0x19486
movl %ebp, %edi
callq 0xb770
leaq 0x57107(%rip), %rax     # 0x635b0
movq %rax, 0x10(%rbx)
pushq $-0x4
popq %rax
movq %rax, 0x18(%rbx)
movq %rax, 0x20(%rbx)
leaq 0x570b1(%rip), %rdi     # 0x63570
movq %rdi, 0x570ea(%rip)     # 0x635b0
movq $0x5, 0x570e7(%rip) # 0x635b8
callq 0xb210
movq %rax, 0x570e3(%rip)     # 0x635c0
leaq 0x57091(%rip), %rdi     # 0x63575
movq %rdi, 0x570dd(%rip)     # 0x635c8
movq $0x4, 0x570da(%rip) # 0x635d0
callq 0xb210
movq %rax, 0x570d6(%rip)     # 0x635d8
leaq 0x57070(%rip), %rdi     # 0x63579
movq %rdi, 0x570d0(%rip)     # 0x635e0
movq $0x3, 0x570cd(%rip) # 0x635e8
callq 0xb210
movq %rax, 0x570c9(%rip)     # 0x635f0
leaq 0x5704e(%rip), %rdi     # 0x6357c
movq %rdi, 0x570c3(%rip)     # 0x635f8
movq $0x2, 0x570c0(%rip) # 0x63600
callq 0xb210
movq %rax, 0x570bc(%rip)     # 0x63608
leaq 0x37d1d(%rip), %rdi     # 0x44270
xorl %eax, %eax
callq 0xb070
movl %ebp, %edi
callq 0xb770
movq %r14, %rdi
xorl %eax, %eax
callq 0xb070
movq %rbx, %rdi
callq 0x19486
movl %ebp, %edi
callq 0xb770
pushq $0x1
popq %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq