// File: /workspace/github_cpp_makefile_star2_O1/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, %r14
movq %rdx, %r12
movq %rsi, %r13
movq %rdi, %rbp
leaq 0x4eaf4(%rip), %rdi     # 0x5b140
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb02(%rip), %rdi     # 0x5b166
movq %rbp, %rsi
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb11(%rip), %rdi     # 0x5b190
movq %r13, %rsi
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb1f(%rip), %rdi     # 0x5b1b9
movq %r12, %rsi
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb29(%rip), %rdi     # 0x5b1de
movq %r14, %rsi
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb36(%rip), %rdi     # 0x5b206
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
leaq 0x4eb3f(%rip), %r14     # 0x5b227
movq %r14, %rdi
xorl %eax, %eax
callq 0xb080
movq %r15, %rdi
callq 0x1e4ac
movl $0xa, %edi
callq 0xb740
movl 0x18(%r15), %esi
movq 0x10(%r15), %rdx
leaq 0x4eb30(%rip), %rdi     # 0x5b243
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
movq %r14, %rdi
xorl %eax, %eax
callq 0xb080
movq %rbx, %rdi
callq 0x1e5e0
movl $0xa, %edi
callq 0xb740
leaq 0x6be59(%rip), %rax     # 0x785a0
movq %rax, 0x10(%rbx)
movq $-0x4, %rax
movq %rax, 0x18(%rbx)
movq %rax, 0x20(%rbx)
leaq 0x6bdff(%rip), %rdi     # 0x78560
movq %rdi, 0x6be38(%rip)     # 0x785a0
movq $0x5, 0x6be35(%rip) # 0x785a8
callq 0xb200
movq %rax, 0x6be31(%rip)     # 0x785b0
leaq 0x6bddf(%rip), %rdi     # 0x78565
movq %rdi, 0x6be2b(%rip)     # 0x785b8
movq $0x4, 0x6be28(%rip) # 0x785c0
callq 0xb200
movq %rax, 0x6be24(%rip)     # 0x785c8
leaq 0x6bdbe(%rip), %rdi     # 0x78569
movq %rdi, 0x6be1e(%rip)     # 0x785d0
movq $0x3, 0x6be1b(%rip) # 0x785d8
callq 0xb200
movq %rax, 0x6be17(%rip)     # 0x785e0
leaq 0x6bd9c(%rip), %rdi     # 0x7856c
movq %rdi, 0x6be11(%rip)     # 0x785e8
movq $0x2, 0x6be0e(%rip) # 0x785f0
callq 0xb200
movq %rax, 0x6be0a(%rip)     # 0x785f8
leaq 0x4ea7b(%rip), %rdi     # 0x5b270
xorl %eax, %eax
callq 0xb080
movl $0xa, %edi
callq 0xb740
movq %r14, %rdi
xorl %eax, %eax
callq 0xb080
movq %rbx, %rdi
callq 0x1e5e0
movl $0xa, %edi
callq 0xb740
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop