LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_open(void*, char const*, bool, bool, bool)
scdc_dataprov_store_stub_handler::entry_t scdc_dataprov_store_stub_handler::entry_open(store_t store, const char *path, bool read, bool write, bool create)
{
  SCDC_TRACE_F("path: '" << path << "', read: " << read << ", write: " << write << ", create: " << create);

  entry_t entry = entry_valid;

  SCDC_TRACE_F("return: " << entry);

  return entry;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %r8d, -0x40(%rbp)
movl %ecx, %eax
movl -0x40(%rbp), %ecx
movl %eax, -0x3c(%rbp)
movq %rdx, %rax
movl -0x3c(%rbp), %edx
movq %rax, -0x38(%rbp)
movq %rsi, %rax
movq -0x38(%rbp), %rsi
movq %rax, -0x30(%rbp)
movq %rdi, %r8
movq -0x30(%rbp), %rdi
movb %r9b, %al
movq %r8, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %dl
movb %dl, -0x19(%rbp)
andb $0x1, %cl
movb %cl, -0x1a(%rbp)
andb $0x1, %al
movb %al, -0x1b(%rbp)
jmp 0x41dce
movl $0x1, %eax
movq %rax, -0x28(%rbp)
jmp 0x41dd9
movq -0x28(%rbp), %rax
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_reopen(void*, char const*, bool, bool, bool, void*)
scdc_dataprov_store_stub_handler::entry_t scdc_dataprov_store_stub_handler::entry_reopen(store_t store, const char *path, bool read, bool write, bool create, entry_t entry)
{
  SCDC_TRACE_F("path: '" << path << "', read: " << read << ", write: " << write << ", create: " << create << ", entry: " << entry);

  entry = entry_valid;

  SCDC_TRACE_F("return: " << entry);

  return entry;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %r8d, -0x38(%rbp)
movl %ecx, %eax
movl -0x38(%rbp), %ecx
movl %eax, -0x34(%rbp)
movq %rdx, %rax
movl -0x34(%rbp), %edx
movq %rax, -0x30(%rbp)
movq %rsi, %rax
movq -0x30(%rbp), %rsi
movq %rax, -0x28(%rbp)
movq %rdi, %r8
movq -0x28(%rbp), %rdi
movb %r9b, %al
movq 0x10(%rbp), %r9
movq %r8, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %dl
movb %dl, -0x19(%rbp)
andb $0x1, %cl
movb %cl, -0x1a(%rbp)
andb $0x1, %al
movb %al, -0x1b(%rbp)
jmp 0x41e32
movl $0x1, %eax
movq %rax, 0x10(%rbp)
jmp 0x41e3d
movq 0x10(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_match(void*, void*, char const*)
bool scdc_dataprov_store_stub_handler::entry_match(store_t store, entry_t entry, const char *path)
{
  SCDC_TRACE_F("path: '" << path << "', entry: '" << entry << "'");

  bool ret = false;

  SCDC_TRACE_F("return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
jmp 0x41e86
movb $0x0, -0x21(%rbp)
jmp 0x41e8c
movb -0x21(%rbp), %al
andb $0x1, %al
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_read_access_at(void*, void*, long long, long long, _scdc_buf_t&)
bool scdc_dataprov_store_stub_handler::entry_read_access_at(store_t store, entry_t entry, scdcint_t size, scdcint_t pos, scdc_buf_t &buf)
{
  SCDC_TRACE_F("store: '" << store << "', entry: '" << entry << "', size: " << size << ", pos: " << pos);

  bool ret = false;

  SCDC_TRACE_F("return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
jmp 0x41ebe
movb $0x0, -0x31(%rbp)
jmp 0x41ec4
movb -0x31(%rbp), %al
andb $0x1, %al
popq %rbp
retq
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_read_at(void*, void*, void*, long long, long long)
scdcint_t scdc_dataprov_store_stub_handler::entry_read_at(store_t store, entry_t entry, void *ptr, scdcint_t size, scdcint_t pos)
{
  SCDC_TRACE_F("store: '" << store << "', entry: '" << entry << "', ptr: " << ptr << ", size: " << size << ", pos: " << pos);

  scdcint_t ret = 0;

  SCDC_TRACE_F("return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
jmp 0x41eee
movq $0x0, -0x38(%rbp)
jmp 0x41ef8
movq -0x38(%rbp), %rax
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_store_stub_handler.cc
// Function: scdc_dataprov_store_stub_handler::entry_write_at(void*, void*, void const*, long long, long long)
scdcint_t scdc_dataprov_store_stub_handler::entry_write_at(store_t store, entry_t entry, const void *ptr, scdcint_t size, scdcint_t pos)
{
  SCDC_TRACE_F("store: '" << store << "', entry: '" << entry << "', ptr: " << ptr << ", size: " << size << ", pos: " << pos);

  scdcint_t ret = max(scdcint_const(0), size);

  SCDC_TRACE_F("return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
jmp 0x41f22
movq $0x0, -0x40(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x41f50
movq (%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x41f40
movq -0x38(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/../include/log.hh
// Function: scdc_log_timestamp[abi:cxx11]()
static inline std::string scdc_log_timestamp()
{
  time_t now = time(0);
  struct tm *timeinfo = localtime(&now);
  char s[256];
  sprintf(s, "%.2d.%.2d.%.4d %.2d:%.2d:%.2d: ", timeinfo->tm_mday, timeinfo->tm_mon + 1, timeinfo->tm_year + 1900, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
  return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x150(%rbp)
movq %rdi, %rax
movq %rax, -0x160(%rbp)
movq %rdi, -0x8(%rbp)
xorl %eax, %eax
movl %eax, -0x154(%rbp)
movl %eax, %edi
callq 0xc600
movq %rax, -0x10(%rbp)
leaq -0x10(%rbp), %rdi
callq 0xc4a0
movq %rax, %rcx
movl -0x154(%rbp), %eax
movq %rcx, -0x18(%rbp)
movq -0x18(%rbp), %rsi
movl 0xc(%rsi), %edx
movl 0x10(%rsi), %ecx
incl %ecx
movl 0x14(%rsi), %r8d
addl $0x76c, %r8d            # imm = 0x76C
movl 0x8(%rsi), %r9d
movl (%rsi), %r10d
movl 0x4(%rsi), %edi
movq %rsp, %rsi
movl %r10d, 0x8(%rsi)
movl %edi, (%rsi)
leaq 0x641c9(%rip), %rsi     # 0xa6f53
leaq -0x120(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0xc0f0
leaq -0x121(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0xcbc0
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x140(%rbp), %rdx
callq 0x27820
jmp 0x42dcc
leaq -0x121(%rbp), %rdi
callq 0xc730
movq -0x160(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x130(%rbp)
movl %eax, -0x134(%rbp)
leaq -0x121(%rbp), %rdi
callq 0xc730
movq -0x130(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_printf
void scdc_dataset_output_printf(int append, scdc_dataset_output_t *output, const char *fmt, ...)
{
  if (!output || !SCDC_DATASET_INOUT_BUF_PTR(output)) return;

  strncpy(output->format, "text", SCDC_FORMAT_MAX_SIZE);

  if (!append)
  {
    SCDC_DATASET_INOUT_BUF_CURRENT(output) = 0;
    output->total_size = 0;
  }

  char *buf = static_cast<char *>(SCDC_DATASET_INOUT_BUF_PTR(output));
  buf += SCDC_DATASET_INOUT_BUF_CURRENT(output);

  scdcint_t buf_size = SCDC_DATASET_INOUT_BUF_SIZE(output) - SCDC_DATASET_INOUT_BUF_CURRENT(output);

  va_list argptr;
  va_start(argptr, fmt);
  scdcint_t n = vsnprintf(buf, buf_size, fmt, argptr);
  va_end(argptr);

  n = min(buf_size, n);

  SCDC_DATASET_INOUT_BUF_CURRENT(output) += n;
  output->total_size += n;

  output->total_size_given = SCDC_DATASET_INOUT_TOTAL_SIZE_GIVEN_EXACT;

  output->next = 0;
  output->data = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x42eee
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %r8, -0xe0(%rbp)
movq %rcx, -0xe8(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x42f20
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x42f25
jmp 0x4301f
movq -0x10(%rbp), %rdi
leaq 0x64100(%rip), %rsi     # 0xa7030
movl $0x10, %edx
callq 0xc320
cmpl $0x0, -0x4(%rbp)
jne 0x42f58
movq -0x10(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x10(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
subq 0x20(%rcx), %rax
movq %rax, -0x28(%rbp)
leaq -0x40(%rbp), %rax
leaq -0x100(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x18, (%rax)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x40(%rbp), %rcx
callq 0xc400
cltq
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rax
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x2b080
movq (%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
movq -0x48(%rbp), %rcx
movq -0x10(%rbp), %rax
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movb $0x78, 0x30(%rax)
movq -0x10(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x10(%rbp), %rax
movq $0x0, 0x40(%rax)
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_inout_unset
void scdc_dataset_inout_unset(scdc_dataset_inout_t *inout)
{
  if (!inout) return;

  inout->format[0] = '\0';

  SCDC_DATASET_INOUT_BUF_PTR(inout) = 0;
  SCDC_DATASET_INOUT_BUF_SIZE(inout) = 0;
  SCDC_DATASET_INOUT_BUF_CURRENT(inout) = 0;

  inout->total_size = 0;
  inout->total_size_given = SCDC_DATASET_INOUT_TOTAL_SIZE_GIVEN_NONE;

  inout->data = 0;
  inout->next = 0;

  inout->intern = 0;
  inout->intern_data = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x432f1
jmp 0x43360
movq -0x8(%rbp), %rax
movb $0x0, (%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x8(%rbp), %rax
movb $0x6e, 0x30(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x48(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x50(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: inout_FX_data_t<int>::get_size_left()
scdcint_t inout_FX_data_t<int>::get_size_left()
{
  scdcint_t pos = lseek(fx, 0, SEEK_CUR);

  if (pos < 0) return -1;

  scdcint_t size = lseek(fx, 0, SEEK_END);

  if (size < 0) return -1;

  size -= pos;

  lseek(fx, pos, SEEK_SET);

  return size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movl (%rax), %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0xcc50
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jge 0x435a9
movq $-0x1, -0x8(%rbp)
jmp 0x435fa
movq -0x28(%rbp), %rax
movl (%rax), %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0xcc50
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jge 0x435d2
movq $-0x1, -0x8(%rbp)
jmp 0x435fa
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
subq %rdx, %rcx
movq %rcx, -0x20(%rbp)
movl (%rax), %edi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0xcc50
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: inout_FX_data_t<_IO_FILE*>::get_size_left()
scdcint_t inout_FX_data_t<FILE *>::get_size_left()
{
  scdcint_t pos = ftello(fx);

  if (pos < 0 || fseeko(fx, 0, SEEK_END) < 0) return -1;

  scdcint_t size = ftello(fx);

  if (size < 0) return -1;

  size -= pos;

  fseeko(fx, pos, SEEK_SET);

  return size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq (%rax), %rdi
callq 0xc870
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jl 0x437b1
movq -0x28(%rbp), %rax
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0xc3c0
cmpl $0x0, %eax
jge 0x437bb
movq $-0x1, -0x8(%rbp)
jmp 0x43805
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0xc870
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jge 0x437dc
movq $-0x1, -0x8(%rbp)
jmp 0x43805
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
subq %rdx, %rcx
movq %rcx, -0x20(%rbp)
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0xc3c0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_buffer_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_input_t *scdc_dataset_input_buffer_create(scdc_dataset_input_t *input, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  scdc_args_buf_t buffer;
  xargs.get<scdc_args_buf_t>(SCDC_ARGS_TYPE_BUF, &buffer);

  if (!scdc_dataset_inout_alloc(input, 0, 0)) return 0;

  input->intern->type = SCDC_DATASET_INOUT_TYPE_BUFFER;
  input->intern->destroy = scdc_dataset_input_buffer_destroy;

  SCDC_DATASET_INOUT_BUF_PTR(input) = buffer.buf;
  SCDC_DATASET_INOUT_BUF_SIZE(input) = buffer.buf_size;

  strcpy(input->format, "data");

  SCDC_DATASET_INOUT_BUF_CURRENT(input) = SCDC_DATASET_INOUT_BUF_SIZE(input);
  input->total_size = SCDC_DATASET_INOUT_BUF_SIZE(input);
  input->total_size_given = SCDC_DATASET_INOUT_TOTAL_SIZE_GIVEN_EXACT;

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x25660
movq -0x80(%rbp), %rdi
movl $0x8, %esi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d400
jmp 0x4405e
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x47500
testb $0x1, %al
jne 0x440a0
movq $0x0, -0x8(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0x44122
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x44138
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x3, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x35a1(%rip), %rcx      # 0x47660
movq %rcx, 0x20(%rax)
movq -0x68(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rdi
leaq 0x63156(%rip), %rsi     # 0xa723c
callq 0xc610
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movb $0x78, 0x30(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x78(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_fd_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_inout_t *scdc_dataset_input_fd_create(scdc_dataset_input_t *input, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  int fd;
  xargs.get<int>(SCDC_ARGS_TYPE_INT, &fd);

  if (!input) return 0;

  input = scdc_dataset_input_FX_create<int>(input, conf, args, fd);

  if (!input) return 0;

  input->intern->type = SCDC_DATASET_INOUT_TYPE_FD;
  input->intern->destroy = scdc_dataset_input_fd_destroy;

#if INPUT_CREATE_NEXT
  input->next(input, 0);
#endif

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x25660
movq -0x78(%rbp), %rdi
movl $0x1, %esi
leaq -0x5c(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d490
jmp 0x4418e
cmpq $0x0, -0x10(%rbp)
jne 0x441c3
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4423f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x44255
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movl -0x5c(%rbp), %ecx
callq 0x47690
movq %rax, -0x80(%rbp)
jmp 0x441dd
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x441fd
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4423f
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x4, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x40f4(%rip), %rcx      # 0x48310
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rdi
movq 0x38(%rdi), %rax
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
jmp 0x44230
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_fddup_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_inout_t *scdc_dataset_input_fddup_create(scdc_dataset_input_t *input, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  int fd;
  xargs.get<int>(SCDC_ARGS_TYPE_INT, &fd);

  if (!input) return 0;

  int fddup = dup(fd);

  input = scdc_dataset_input_FX_create<int>(input, conf, args, fddup);

  if (!input) return 0;

  input->intern->type = SCDC_DATASET_INOUT_TYPE_FDDUP;
  input->intern->destroy = scdc_dataset_input_fddup_destroy;

#if INPUT_CREATE_NEXT
  input->next(input, 0);
#endif

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x25660
movq -0x80(%rbp), %rdi
movl $0x1, %esi
leaq -0x5c(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d490
jmp 0x4429e
cmpq $0x0, -0x10(%rbp)
jne 0x442d3
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x44360
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x44376
movl -0x5c(%rbp), %edi
callq 0xca40
movl %eax, -0x74(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movl -0x74(%rbp), %ecx
callq 0x47690
movq %rax, -0x88(%rbp)
jmp 0x442fb
movq -0x88(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4431e
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x44360
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x5, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x4173(%rip), %rcx      # 0x484b0
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rdi
movq 0x38(%rdi), %rax
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
jmp 0x44351
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_stream_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_inout_t *scdc_dataset_input_stream_create(scdc_dataset_input_t *input, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  FILE *stream = 0;
  xargs.get<FILE *>(SCDC_ARGS_TYPE_IN_STREAM, &stream);

  if (!stream) stream = stdin;

  if (!input) return 0;

  input = scdc_dataset_input_FX_create<FILE *>(input, conf, args, stream);

  if (!input) return 0;

  input->intern->type = SCDC_DATASET_INOUT_TYPE_STREAM;
  input->intern->destroy = scdc_dataset_input_stream_destroy;

#if INPUT_CREATE_NEXT
  input->next(input, 0);
#endif

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x25660
movq -0x78(%rbp), %rdi
movq $0x0, -0x60(%rbp)
movl $0x6, %esi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d630
jmp 0x443c6
cmpq $0x0, -0x60(%rbp)
jne 0x443f7
movq 0x8fbfc(%rip), %rax     # 0xd3fd0
movq (%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x443f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x444a2
cmpq $0x0, -0x10(%rbp)
jne 0x4440f
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4448c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x60(%rbp), %rcx
callq 0x484e0
movq %rax, -0x80(%rbp)
jmp 0x4442a
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4444a
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4448c
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x6, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x4d07(%rip), %rcx      # 0x49170
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rdi
movq 0x38(%rdi), %rax
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
jmp 0x4447d
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_streamdup_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_inout_t *scdc_dataset_input_streamdup_create(scdc_dataset_input_t *input, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  FILE *stream = 0;
  xargs.get<FILE *>(SCDC_ARGS_TYPE_IN_STREAM, &stream);

  if (!stream) stream = stdin;

  if (!input) return 0;

  scdcint_t pos = ftello(stream);

  /* we use a duplicated fd, because using only a newly opened stream (with fdopen) leads to empty reads if the original stream is closed */
  int fddup = dup(fileno(stream));
  stream = fdopen(fddup, "r");

  if (!stream) return 0;

  if (pos >= 0) fseeko(stream, pos, SEEK_SET);

  input = scdc_dataset_input_FX_create<FILE *>(input, conf, args, stream);

  if (!input) return 0;

  input->intern->type = SCDC_DATASET_INOUT_TYPE_STREAMDUP;
  input->intern->destroy = scdc_dataset_input_streamdup_destroy;

#if INPUT_CREATE_NEXT
  input->next(input, 0);
#endif

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x25660
movq -0x88(%rbp), %rdi
movq $0x0, -0x60(%rbp)
movl $0x6, %esi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d630
jmp 0x444fc
cmpq $0x0, -0x60(%rbp)
jne 0x4452d
movq 0x8fac6(%rip), %rax     # 0xd3fd0
movq (%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x4452d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x44659
cmpq $0x0, -0x10(%rbp)
jne 0x44548
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x44643
movq -0x60(%rbp), %rdi
callq 0xc870
movq %rax, -0x90(%rbp)
jmp 0x4455a
movq -0x90(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc6f0
movl %eax, %edi
callq 0xca40
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %edi
leaq 0x6128d(%rip), %rsi     # 0xa580f
callq 0xc700
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0x445a6
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x44643
cmpq $0x0, -0x78(%rbp)
jl 0x445c0
movq -0x60(%rbp), %rdi
movq -0x78(%rbp), %rsi
xorl %edx, %edx
callq 0xc3c0
jmp 0x445be
jmp 0x445c0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x60(%rbp), %rcx
callq 0x484e0
movq %rax, -0x98(%rbp)
jmp 0x445de
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x44601
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x44643
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x7, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x4d00(%rip), %rcx      # 0x49320
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rdi
movq 0x38(%rdi), %rax
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
jmp 0x44634
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_create
scdc_dataset_input_t *scdc_dataset_input_create(scdc_dataset_input_t *input, const char *conf, ...)
{
  va_list ap;
  va_start(ap, conf);

  scdc_args_t args;

  scdc_args_va_init(&args, &ap);

  input = scdc_dataset_input_create_intern(input, conf, &args);

  scdc_args_va_release(&args);
  va_end(ap);

  return input;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
testb %al, %al
je 0x454fe
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %r8, -0xe0(%rbp)
movq %rcx, -0xe8(%rbp)
movq %rdx, -0xf0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x30, -0x2c(%rbp)
movl $0x10, -0x30(%rbp)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x108(%rbp)
leaq -0x30(%rbp), %rsi
callq 0x45590
movq -0x108(%rbp), %rdx
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x43810
movq -0x108(%rbp), %rdi
movq %rax, -0x8(%rbp)
callq 0x45600
movq -0x8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_args_va_init(_scdc_args_t*, __va_list_tag (*) [1])
static void scdc_args_va_init(scdc_args_t *args, va_list *ap)
{
  scdc_args_data_va_t *data_va;


  data_va = new scdc_args_data_va_t;

  data_va->arg = 0;
  data_va->ap = ap;

  args->data = data_va;
  args->get = scdc_args_get_va;
  args->set = scdc_args_set_va;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x10, %edi
callq 0xc690
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
leaq 0x4f55(%rip), %rcx      # 0x4a530
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
leaq 0x5326(%rip), %rcx      # 0x4a910
movq %rcx, 0x10(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_input_destroy
void scdc_dataset_input_destroy(scdc_dataset_input_t *input)
{
  SCDC_TRACE_DATASET_INPUT(input, "scdc_dataset_input_destroy: input: ");

  if (!input)
  {
    SCDC_FAIL("scdc_dataset_input_destroy: no input given");
    return;
  }

  if (!input->intern) return;

  INOUT_INTERN_RESTORE(input);

  if (input->intern->destroy) input->intern->destroy(input);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
jmp 0x4564e
cmpq $0x0, -0x8(%rbp)
jne 0x456dd
jmp 0x4565b
leaq 0x8f046(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x456d9
leaq 0x8f031(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x8f022(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x60b18(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x619d5(%rip), %rsi     # 0xa707c
callq 0xc670
movq %rax, %rdi
leaq 0x619eb(%rip), %rsi     # 0xa70a1
callq 0xc670
movq %rax, %rdi
movq 0x8e8fb(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x8efd7(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x456db
jmp 0x45742
movq -0x8(%rbp), %rax
cmpq $0x0, 0x48(%rax)
jne 0x456ea
jmp 0x45742
jmp 0x456ec
movq -0x8(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x4571f
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0x45721
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x45742
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x20(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_copy_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_copy_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  if (!output) return 0;

  scdc_args xargs(args);

  xargs.get<scdc_dataset_output_t>(SCDC_ARGS_TYPE_DATASET_OUTPUT, output);

  if (output->intern)
  {
    output->intern->type = SCDC_DATASET_INOUT_TYPE_COPY;
    output->intern->destroy = 0;
  }

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x45f55
movq $0x0, -0x8(%rbp)
jmp 0x45fd1
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x25660
movq -0x70(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0xa, %esi
xorl %ecx, %ecx
callq 0x4d750
jmp 0x45f7c
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x45fc0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x1, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x0, 0x20(%rax)
jmp 0x45fc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x45fdb
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_alloc_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_alloc_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  output = scdc_dataset_inout_alloc_create(output, conf, args);

  if (!output) return 0;

  output->intern->destroy = scdc_dataset_output_alloc_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x47300
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4602a
movq $0x0, -0x8(%rbp)
jmp 0x46045
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x48f7(%rip), %rcx      # 0x4a930
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_buffer_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_buffer_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  scdc_args_buf_t v;
  xargs.get<scdc_args_buf_t>(SCDC_ARGS_TYPE_BUF, &v);

  if (!scdc_dataset_inout_alloc(output, 0, 0)) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_BUFFER;
  output->intern->destroy = scdc_dataset_output_buffer_destroy;

  SCDC_DATASET_INOUT_BUF_PTR(output) = v.buf;
  SCDC_DATASET_INOUT_BUF_SIZE(output) = v.buf_size;

  strcpy(output->format, "data");

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x25660
movq -0x80(%rbp), %rdi
movl $0x8, %esi
leaq -0x68(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d400
jmp 0x4608e
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x47500
testb $0x1, %al
jne 0x460ca
movq $0x0, -0x8(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0x46124
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x4613a
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x3, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x4877(%rip), %rcx      # 0x4a960
movq %rcx, 0x20(%rax)
movq -0x68(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rdi
leaq 0x6112c(%rip), %rsi     # 0xa723c
callq 0xc610
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x78(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_fd_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_fd_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  int fd;
  xargs.get<int>(SCDC_ARGS_TYPE_INT, &fd);

  if (!output) return 0;

  output = scdc_dataset_output_FX_create<int>(output, conf, args, fd);

  if (!output) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_STREAM;
  output->intern->destroy = scdc_dataset_output_fd_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x25660
movq -0x78(%rbp), %rdi
movl $0x1, %esi
leaq -0x5c(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d490
jmp 0x4618e
cmpq $0x0, -0x10(%rbp)
jne 0x461c3
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4622f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x46245
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movl -0x5c(%rbp), %ecx
callq 0x4a990
movq %rax, -0x80(%rbp)
jmp 0x461dd
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x461fd
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4622f
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x6, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x5434(%rip), %rcx      # 0x4b650
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_fddup_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_fddup_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  int fd;
  xargs.get<int>(SCDC_ARGS_TYPE_INT, &fd);

  if (!output) return 0;

  int fddup = dup(fd);

  output = scdc_dataset_output_FX_create<int>(output, conf, args, fddup);

  if (!output) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_STREAM;
  output->intern->destroy = scdc_dataset_output_fddup_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x25660
movq -0x80(%rbp), %rdi
movl $0x1, %esi
leaq -0x5c(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d490
jmp 0x4628e
cmpq $0x0, -0x10(%rbp)
jne 0x462c3
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x46340
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x46356
movl -0x5c(%rbp), %edi
callq 0xca40
movl %eax, -0x74(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movl -0x74(%rbp), %ecx
callq 0x4a990
movq %rax, -0x88(%rbp)
jmp 0x462eb
movq -0x88(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4630e
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x46340
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x6, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x5483(%rip), %rcx      # 0x4b7b0
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_stream_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_stream_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  FILE *stream = 0;
  xargs.get<FILE *>(SCDC_ARGS_TYPE_OUT_STREAM, &stream);

  if (!stream) stream = stdout;

  if (!output) return 0;

  output = scdc_dataset_output_FX_create<FILE *>(output, conf, args, stream);

  if (!output) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_STREAM;
  output->intern->destroy = scdc_dataset_output_stream_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x25660
movq -0x78(%rbp), %rdi
movq $0x0, -0x60(%rbp)
movl $0x7, %esi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d630
jmp 0x463a6
cmpq $0x0, -0x60(%rbp)
jne 0x463d7
movq 0x8dbfc(%rip), %rax     # 0xd3fb0
movq (%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x463d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x46472
cmpq $0x0, -0x10(%rbp)
jne 0x463ef
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4645c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x60(%rbp), %rcx
callq 0x4b7e0
movq %rax, -0x80(%rbp)
jmp 0x4640a
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4642a
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4645c
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x6, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x6067(%rip), %rcx      # 0x4c4b0
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_streamdup_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_streamdup_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  FILE *stream = 0;
  xargs.get<FILE *>(SCDC_ARGS_TYPE_OUT_STREAM, &stream);

  if (!stream) stream = stdout;

  if (!output) return 0;

  scdcint_t pos = ftello(stream);

  /* we use a duplicated fd, because using only a newly opened stream (with fdopen) leads to empty reads if the original stream is closed */
  int fddup = dup(fileno(stream));
  stream = fdopen(fddup, "r+");  /* try opening an existing file */
  if (!stream) stream = fdopen(fddup, "w");  /* create a new file is necessary */

  if (!stream) return 0;

  if (pos >= 0) fseeko(stream, pos, SEEK_SET);

  output = scdc_dataset_output_FX_create<FILE *>(output, conf, args, stream);

  if (!output) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_STREAM;
  output->intern->destroy = scdc_dataset_output_streamdup_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x25660
movq -0x88(%rbp), %rdi
movq $0x0, -0x60(%rbp)
movl $0x7, %esi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d630
jmp 0x464cc
cmpq $0x0, -0x60(%rbp)
jne 0x464fd
movq 0x8dad6(%rip), %rax     # 0xd3fb0
movq (%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x464fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x46633
cmpq $0x0, -0x10(%rbp)
jne 0x46518
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4661d
movq -0x60(%rbp), %rdi
callq 0xc870
movq %rax, -0x90(%rbp)
jmp 0x4652a
movq -0x90(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc6f0
movl %eax, %edi
callq 0xca40
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %edi
leaq 0x6111d(%rip), %rsi     # 0xa766f
callq 0xc700
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0x46575
movl -0x7c(%rbp), %edi
leaq 0x61106(%rip), %rsi     # 0xa7672
callq 0xc700
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0x46590
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4661d
cmpq $0x0, -0x78(%rbp)
jl 0x465aa
movq -0x60(%rbp), %rdi
movq -0x78(%rbp), %rsi
xorl %edx, %edx
callq 0xc3c0
jmp 0x465a8
jmp 0x465aa
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x60(%rbp), %rcx
callq 0x4b7e0
movq %rax, -0x98(%rbp)
jmp 0x465c8
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x465eb
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x4661d
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x6, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x6016(%rip), %rcx      # 0x4c620
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_file_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_file_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  scdc_args xargs(args);

  const char *filename;
  xargs.get<const char *>(SCDC_ARGS_TYPE_CSTR, &filename);

  SCDC_TRACE("scdc_dataset_output_file_create: filename: '" << filename << "'");

  if (!output) return 0;

  FILE *file = fopen(filename, (z_fs_exists(filename))?"r+":"w");

  if (!file)
  {
    SCDC_TRACE("scdc_dataset_output_file_create: file '" << filename << "' failed!");
    return 0;
  }

  output = scdc_dataset_output_FX_create<FILE *>(output, conf, args, file);

  if (!output)
  {
    fclose(file);
    return 0;
  }

  output->intern->type = SCDC_DATASET_INOUT_TYPE_FILE;
  output->intern->destroy = scdc_dataset_output_file_destroy;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x25660
movq -0x80(%rbp), %rdi
movl $0x4, %esi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d6c0
jmp 0x4667e
jmp 0x46680
jmp 0x46682
jmp 0x46684
cmpq $0x0, -0x10(%rbp)
jne 0x466b9
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x467aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
jmp 0x467c0
movq -0x60(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x5d420
movq %rax, -0x88(%rbp)
jmp 0x466d2
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rax
testq %rax, %rax
leaq 0x60f85(%rip), %rax     # 0xa766f
leaq 0x60f81(%rip), %rsi     # 0xa7672
cmovneq %rax, %rsi
callq 0xc810
movq %rax, -0x98(%rbp)
jmp 0x46703
movq -0x98(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jne 0x4672c
jmp 0x46717
jmp 0x46719
jmp 0x4671b
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x467aa
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x78(%rbp), %rcx
callq 0x4b7e0
movq %rax, -0xa0(%rbp)
jmp 0x4674a
movq -0xa0(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x46778
movq -0x78(%rbp), %rdi
callq 0xc680
jmp 0x46767
movq $0x0, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x467aa
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x8, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x5ed9(%rip), %rcx      # 0x4c670
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x256b0
movq -0x8(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xcba0
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_consume_create(_scdc_dataset_inout_t*, char const*, _scdc_args_t*)
static scdc_dataset_output_t *scdc_dataset_output_consume_create(scdc_dataset_output_t *output, const char *conf, scdc_args_t *args)
{
  output = scdc_dataset_inout_alloc_create(output, conf, args);

  if (!output) return 0;

  output->intern->type = SCDC_DATASET_INOUT_TYPE_CONSUME;
  output->intern->destroy = scdc_dataset_output_consume_destroy;

  output->next = output_consume_next;

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x47300
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x46a7a
movq $0x0, -0x8(%rbp)
jmp 0x46ab4
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq $0xe, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
leaq 0x5c57(%rip), %rcx      # 0x4c6f0
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
leaq 0x5c78(%rip), %rcx      # 0x4c720
movq %rcx, 0x38(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataset/dataset_inout.cc
// Function: scdc_dataset_output_create
scdc_dataset_output_t *scdc_dataset_output_create(scdc_dataset_output_t *output, const char *conf, ...)
{
  va_list ap;
  va_start(ap, conf);

  scdc_args_t args;

  scdc_args_va_init(&args, &ap);

  output = scdc_dataset_output_create_intern(output, conf, &args);

  scdc_args_va_release(&args);
  va_end(ap);

  return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
testb %al, %al
je 0x46b2e
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %r8, -0xe0(%rbp)
movq %rcx, -0xe8(%rbp)
movq %rdx, -0xf0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x100(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movl $0x30, -0x2c(%rbp)
movl $0x10, -0x30(%rbp)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x108(%rbp)
leaq -0x30(%rbp), %rsi
callq 0x45590
movq -0x108(%rbp), %rdx
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x45750
movq -0x108(%rbp), %rdi
movq %rax, -0x8(%rbp)
callq 0x45600
movq -0x8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopl (%rax,%rax)