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

      scdcint_t total_size;

      stringstream(params) >> total_size;

      SCDC_TRACE("dataset_bench: do_cmd_get: start get of size = " << total_size);

      output->total_size = total_size;
      output->total_size_given = SCDC_DATASET_INOUT_TOTAL_SIZE_GIVEN_EXACT;

      dataset_output_next_data_t *data = new dataset_output_next_data_t();

      data->total_size_left = total_size;
      data->format = format;
      data->content = content;

      if (mode == "file")
      {
        if (content == "zero") data->file = fopen("/dev/zero", "r");
        else if (content == "random") data->file = fopen("/dev/urandom", "r");
      }

      output->next = dataset_output_next;
      output->data = data;

      /* get first chunk of data */
      output->next(output, 0);

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
jmp 0x64afc
movq -0x10(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movl $0x10, %edi
movl $0x8, %esi
callq 0x356a0
movq -0x1e8(%rbp), %rsi
movl %eax, %edx
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0xcad0
movq -0x1e0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x64e40
jmp 0x64b44
leaq -0x1b8(%rbp), %rdi
callq 0xc4b0
jmp 0x64b52
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x20(%rbp), %rax
movb $0x78, 0x30(%rax)
movl $0x50, %edi
callq 0xc690
movq %rax, %rdi
movq %rdi, -0x1f0(%rbp)
xorl %esi, %esi
movl $0x50, %edx
callq 0xc350
movq -0x1f0(%rbp), %rdi
callq 0x64e70
movq -0x1f0(%rbp), %rax
movq -0x1d8(%rbp), %rsi
movq %rax, -0x1d0(%rbp)
movq -0x30(%rbp), %rcx
movq -0x1d0(%rbp), %rax
movq %rcx, (%rax)
addq $0x38, %rsi
movq -0x1d0(%rbp), %rdi
addq $0x8, %rdi
callq 0xc070
movq -0x1d8(%rbp), %rsi
addq $0x58, %rsi
movq -0x1d0(%rbp), %rdi
addq $0x28, %rdi
callq 0xc070
movq -0x1d8(%rbp), %rdi
addq $0x78, %rdi
leaq 0x42a45(%rip), %rsi     # 0xa763b
callq 0x25b80
testb $0x1, %al
jne 0x64c04
jmp 0x64ca6
movq -0x1d8(%rbp), %rdi
addq $0x58, %rdi
leaq 0x433f2(%rip), %rsi     # 0xa8008
callq 0x25b80
testb $0x1, %al
jne 0x64c21
jmp 0x64c64
leaq 0x433db(%rip), %rdi     # 0xa8003
leaq 0x40be0(%rip), %rsi     # 0xa580f
callq 0xc810
movq %rax, %rcx
movq -0x1d0(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x64ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0xc4b0
jmp 0x64ce3
movq -0x1d8(%rbp), %rdi
addq $0x58, %rdi
leaq 0x4339d(%rip), %rsi     # 0xa8013
callq 0x25b80
testb $0x1, %al
jne 0x64c81
jmp 0x64ca2
leaq 0x43385(%rip), %rdi     # 0xa800d
leaq 0x40b80(%rip), %rsi     # 0xa580f
callq 0xc810
movq %rax, %rcx
movq -0x1d0(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x64ca4
jmp 0x64ca6
movq -0x20(%rbp), %rax
leaq -0x7b1(%rip), %rcx      # 0x64500
movq %rcx, 0x38(%rax)
movq -0x1d0(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x20(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
movb $0x1, %al
andb $0x1, %al
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
movq -0x1c0(%rbp), %rdi
callq 0xcba0
nop