LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::set_job_params(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool scdc_dataprov_jobrun::set_job_params(const std::string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
{
  jobs_t::iterator i = jobs.find(jobid);

  if (i == jobs.end()) return false;

  if (!set_job_params(i->second, job_params)) return false;

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x38(%rbp)
addq $0x128, %rdi            # imm = 0x128
movq -0x18(%rbp), %rsi
callq 0x84000
movq -0x38(%rbp), %rdi
movq %rax, -0x28(%rbp)
addq $0x128, %rdi            # imm = 0x128
callq 0x836f0
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x84030
testb $0x1, %al
jne 0x7d857
jmp 0x7d85d
movb $0x0, -0x1(%rbp)
jmp 0x7d888
leaq -0x28(%rbp), %rdi
callq 0x83720
movq -0x38(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
movq -0x20(%rbp), %rdx
callq 0x7d770
testb $0x1, %al
jne 0x7d884
movb $0x0, -0x1(%rbp)
jmp 0x7d888
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::get_job(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_t&)
bool scdc_dataprov_jobrun::get_job(const std::string &jobid, scdc_dataprov_jobrun_job_t &job)
{
  jobs_t::iterator i = jobs.find(jobid);

  if (i == jobs.end()) return false;

  job = i->second;

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x38(%rbp)
addq $0x128, %rdi            # imm = 0x128
movq -0x18(%rbp), %rsi
callq 0x84000
movq -0x38(%rbp), %rdi
movq %rax, -0x28(%rbp)
addq $0x128, %rdi            # imm = 0x128
callq 0x836f0
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x84030
testb $0x1, %al
jne 0x7d8f7
jmp 0x7d8fd
movb $0x0, -0x1(%rbp)
jmp 0x7d91a
leaq -0x28(%rbp), %rdi
callq 0x83720
movq %rax, %rsi
addq $0x20, %rsi
movq -0x20(%rbp), %rdi
callq 0x84060
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool scdc_dataprov_jobrun::job_create(const std::string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
{
  scdc_dataprov_jobrun_job_t job;

  bool ret = set_job_params(job, job_params);

  if (ret)
  {
    pthread_mutex_lock(&sched_lock);
    ret = add_job(jobid, job);
    pthread_mutex_unlock(&sched_lock);
  }

  if (!ret)
  {
    SCDC_FAIL("job_create: adding job failed");
    return false;
  }

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq -0x88(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x84280
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7d770
movb %al, -0xa1(%rbp)
jmp 0x7d984
movb -0xa1(%rbp), %al
andb $0x1, %al
movb %al, -0x89(%rbp)
testb $0x1, -0x89(%rbp)
je 0x7da13
movq -0xb8(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0xb8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x7d1f0
movb %al, -0xb9(%rbp)
jmp 0x7d9cd
movq -0xb8(%rbp), %rdi
movb -0xb9(%rbp), %al
andb $0x1, %al
movb %al, -0x89(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
jmp 0x7da13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x842c0
jmp 0x7db2c
testb $0x1, -0x89(%rbp)
jne 0x7db04
jmp 0x7da22
leaq 0x56c7f(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0xc8(%rbp)
jmp 0x7da3a
movq -0xc8(%rbp), %rax
cmpq $0x0, %rax
je 0x7daf0
leaq 0x56c56(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x7da5c
leaq 0x56c45(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0xd0(%rbp)
jmp 0x7da74
movq -0xd0(%rbp), %rdi
leaq 0x2872e(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0xd8(%rbp)
jmp 0x7da90
movq -0xd8(%rbp), %rdi
leaq 0x2afc6(%rip), %rsi     # 0xa8a64
callq 0xc670
movq %rax, -0xe0(%rbp)
jmp 0x7daac
movq -0xe0(%rbp), %rdi
leaq 0x2b23a(%rip), %rsi     # 0xa8cf4
callq 0xc670
movq %rax, -0xe8(%rbp)
jmp 0x7dac8
movq -0xe8(%rbp), %rdi
movq 0x564ea(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x7dadd
leaq 0x56bc4(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x7daee
jmp 0x7daf0
jmp 0x7daf2
jmp 0x7daf4
movb $0x0, -0x1(%rbp)
movl $0x1, -0xa0(%rbp)
jmp 0x7db12
movb $0x1, -0x1(%rbp)
movl $0x1, -0xa0(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x842c0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xf0, %rsp
popq %rbp
retq
movq -0x98(%rbp), %rdi
callq 0xcba0
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_destroy(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool scdc_dataprov_jobrun::job_destroy(const std::string &jobid)
{
  pthread_mutex_lock(&sched_lock);
  bool ret = del_job(jobid);
  pthread_mutex_unlock(&sched_lock);

  if (!ret)
  {
    SCDC_FAIL("job_destroy: deleting job failed");
    return false;
  }

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x28(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x28(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7d520
movq -0x28(%rbp), %rdi
andb $0x1, %al
movb %al, -0x19(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
testb $0x1, -0x19(%rbp)
jne 0x7dc18
jmp 0x7db92
leaq 0x56b0f(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x7dc10
leaq 0x56afa(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x56aeb(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x285e1(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x2ae86(%rip), %rsi     # 0xa8a64
callq 0xc670
movq %rax, %rdi
leaq 0x2b125(%rip), %rsi     # 0xa8d12
callq 0xc670
movq %rax, %rdi
movq 0x563c4(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x56aa0(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x7dc12
movb $0x0, -0x1(%rbp)
jmp 0x7dc1c
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_update(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool scdc_dataprov_jobrun::job_update(const std::string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
{
  pthread_mutex_lock(&sched_lock);
  bool ret = set_job_params(jobid, job_params);
  pthread_mutex_unlock(&sched_lock);

  if (!ret)
  {
    SCDC_FAIL("job_update: updating job failed");
    return false;
  }

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x30(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x30(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7d800
movq -0x30(%rbp), %rdi
andb $0x1, %al
movb %al, -0x21(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
testb $0x1, -0x21(%rbp)
jne 0x7dd10
jmp 0x7dc8a
leaq 0x56a17(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x7dd08
leaq 0x56a02(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x569f3(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x284e9(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x2ad8e(%rip), %rsi     # 0xa8a64
callq 0xc670
movq %rax, %rdi
leaq 0x2b04e(%rip), %rsi     # 0xa8d33
callq 0xc670
movq %rax, %rdi
movq 0x562cc(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x569a8(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x7dd0a
movb $0x0, -0x1(%rbp)
jmp 0x7dd14
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_schedule(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool scdc_dataprov_jobrun::job_schedule(const std::string &jobid)
{
  pthread_mutex_lock(&sched_lock);
  sched_jobs_wait.push_back(jobid);
  pthread_mutex_unlock(&sched_lock);

  pthread_cond_signal(&sched_cond);

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x18(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x18(%rbp), %rdi
addq $0x228, %rdi            # imm = 0x228
movq -0x10(%rbp), %rsi
callq 0x842f0
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
movq -0x18(%rbp), %rdi
addq $0x1b8, %rdi            # imm = 0x1B8
callq 0xc030
movb $0x1, %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_wait_finished(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool scdc_dataprov_jobrun::job_wait_finished(const std::string &jobid)
{
  SCDC_TRACE(__func__ << ": jobid: '" << jobid << "'");

  scdc_dataprov_jobrun_job_t job;

  pthread_mutex_lock(&sched_lock);
  get_job(jobid, job);
  while (job.waiting)
  {
    pthread_cond_wait(&sched_cond_finished, &sched_lock);
    get_job(jobid, job);
  }
  pthread_mutex_unlock(&sched_lock);

  job_wait_running(jobid);

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x7e270
leaq -0x78(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x84280
movq -0x90(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x90(%rbp), %rdi
movq -0x98(%rbp), %rdx
movq -0x10(%rbp), %rsi
callq 0x7d8a0
jmp 0x7e2ac
jmp 0x7e2ae
testb $0x1, -0x18(%rbp)
je 0x7e305
movq -0x90(%rbp), %rsi
movq %rsi, %rdi
addq $0x1e8, %rdi            # imm = 0x1E8
addq $0x190, %rsi            # imm = 0x190
callq 0xca50
jmp 0x7e2d3
movq -0x90(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x78(%rbp), %rdx
callq 0x7d8a0
jmp 0x7e2e9
jmp 0x7e2ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x842c0
jmp 0x7e340
movq -0x90(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
movq -0x90(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7e350
jmp 0x7e32a
leaq -0x78(%rbp), %rdi
callq 0x842c0
movb $0x1, %al
andb $0x1, %al
addq $0xa0, %rsp
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0xcba0
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::job_wait_running(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool scdc_dataprov_jobrun::job_wait_running(const std::string &jobid)
{
  SCDC_TRACE(__func__ << ": jobid: '" << jobid << "'");

  bool wait = false;
  pthread_t thread;

  pthread_mutex_lock(&sched_lock);
  sched_jobs_run_t::iterator i = sched_jobs_run.find(jobid);
  if (i != sched_jobs_run.end())
  {
    wait = true;
    thread = i->second;
  }
  pthread_mutex_unlock(&sched_lock);

  SCDC_TRACE(__func__ << ": wait: '" << wait << "'");

  if (!wait) return false;

  pthread_join(thread, NULL);

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x7e36a
movq -0x40(%rbp), %rdi
movb $0x0, -0x19(%rbp)
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x40(%rbp), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x18(%rbp), %rsi
callq 0x84220
movq -0x40(%rbp), %rdi
movq %rax, -0x30(%rbp)
addq $0x240, %rdi            # imm = 0x240
callq 0x84250
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x841f0
testb $0x1, %al
jne 0x7e3bd
jmp 0x7e3d2
movb $0x1, -0x19(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x84330
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x40(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
jmp 0x7e3e4
testb $0x1, -0x19(%rbp)
jne 0x7e3f0
movb $0x0, -0x1(%rbp)
jmp 0x7e401
movq -0x28(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xc5c0
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_system::open(char const*, scdc_args*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov_jobrun_system::open(const char *conf, scdc_args *args, scdc_result &result)
{
  SCDC_TRACE(__func__ << ": conf: '" << conf << "'");

  bool ret = true;

  const char *s;

  if (args->get<const char *>(SCDC_ARGS_TYPE_CSTR, &s) == SCDC_ARG_REF_NULL)
  {
    SCDC_ERROR("open: getting parameter for job command");
    ret = false;
    goto do_quit;
  }

  jobcmd = s;

  if (!scdc_dataprov_jobrun::open(conf, args, result))
  {
    SCDC_FAIL("open: opening base");
    ret = false;
  }

  SCDC_TRACE(__func__ << ": jobcmd: '" << jobcmd << "', workdir: '" << workdir << "'");

do_quit:
  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 -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x7eb32
movb $0x1, -0x21(%rbp)
movq -0x18(%rbp), %rdi
movl $0x4, %esi
leaq -0x30(%rbp), %rdx
xorl %ecx, %ecx
callq 0x4d6c0
cmpq $0x0, %rax
jne 0x7ebdf
jmp 0x7eb56
leaq 0x55b4b(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
cmpq $0x0, %rax
je 0x7ebd4
leaq 0x55b36(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
leaq 0x55b27(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, %rdi
leaq 0x27915(%rip), %rsi     # 0xa64a8
callq 0xc670
movq %rax, %rdi
leaq 0x2a202(%rip), %rsi     # 0xa8da4
callq 0xc670
movq %rax, %rdi
leaq 0x2a24c(%rip), %rsi     # 0xa8dfd
callq 0xc670
movq %rax, %rdi
movq 0x55400(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x55adc(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x7ebd6
movb $0x0, -0x21(%rbp)
jmp 0x7ec99
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
addq $0x68, %rdi
callq 0xc920
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x7a600
testb $0x1, %al
jne 0x7ec93
jmp 0x7ec0f
leaq 0x55a92(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x7ec8d
leaq 0x55a7d(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x55a6e(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x27564(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x2a149(%rip), %rsi     # 0xa8da4
callq 0xc670
movq %rax, %rdi
leaq 0x28e9b(%rip), %rsi     # 0xa7b05
callq 0xc670
movq %rax, %rdi
movq 0x55347(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x55a23(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x7ec8f
movb $0x0, -0x21(%rbp)
jmp 0x7ec95
jmp 0x7ec97
jmp 0x7ec99
movb -0x21(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_system::close(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov_jobrun_system::close(scdc_result &result)
{
  SCDC_TRACE(__func__ << ":");

  bool ret = scdc_dataprov_jobrun::close(result);

  SCDC_TRACE(__func__ << ": return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x7ecca
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7acd0
andb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x7ecde
movb -0x11(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_handler::open(char const*, scdc_args*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov_jobrun_handler::open(const char *conf, scdc_args *args, scdc_result &result)
{
  SCDC_TRACE(__func__ << ": '" << conf << "'");

  bool ret = true;

  args = open_args_init(args);

  if (args->get<scdc_dataprov_jobrun_handler_args_t>(SCDC_ARGS_TYPE_DATAPROV_JOBRUN_HANDLER, &handler_args, true) == SCDC_ARG_REF_NULL)
  {
    SCDC_ERROR("open: getting parameter for jobrun handler");
    ret = false;
    goto do_quit;
  }

  if (!scdc_dataprov_jobrun::open(conf, args, result))
  {
    SCDC_FAIL("open: opening base");
    ret = false;
  }

  SCDC_TRACE(__func__ << ": handler: '" << handler_args.handler << "', handler_data: '" << handler_args.data << "'");

  open_args_clear();

do_quit:
  if (!ret) open_args_release();

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x80ed2
movq -0x30(%rbp), %rdi
movb $0x1, -0x21(%rbp)
movq -0x18(%rbp), %rsi
callq 0x390c0
movq -0x30(%rbp), %rdx
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
addq $0x270, %rdx            # imm = 0x270
movl $0x10, %esi
movl $0x1, %ecx
callq 0x844e0
cmpq $0x0, %rax
jne 0x80f9a
jmp 0x80f11
leaq 0x53790(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
cmpq $0x0, %rax
je 0x80f8f
leaq 0x5377b(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
leaq 0x5376c(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, %rdi
leaq 0x2555a(%rip), %rsi     # 0xa64a8
callq 0xc670
movq %rax, %rdi
leaq 0x28171(%rip), %rsi     # 0xa90ce
callq 0xc670
movq %rax, %rdi
leaq 0x2817c(%rip), %rsi     # 0xa90e8
callq 0xc670
movq %rax, %rdi
movq 0x53045(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x53721(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x80f91
movb $0x0, -0x21(%rbp)
jmp 0x8104a
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x7a600
testb $0x1, %al
jne 0x8103d
jmp 0x80fb9
leaq 0x536e8(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x81037
leaq 0x536d3(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x536c4(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x251ba(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x280c9(%rip), %rsi     # 0xa90ce
callq 0xc670
movq %rax, %rdi
leaq 0x26af1(%rip), %rsi     # 0xa7b05
callq 0xc670
movq %rax, %rdi
movq 0x52f9d(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x53679(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x81039
movb $0x0, -0x21(%rbp)
jmp 0x8103f
jmp 0x81041
movq -0x30(%rbp), %rdi
callq 0x79b30
testb $0x1, -0x21(%rbp)
jne 0x81059
movq -0x30(%rbp), %rdi
callq 0x3abc0
movb -0x21(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_handler::close(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov_jobrun_handler::close(scdc_result &result)
{
  SCDC_TRACE(__func__ << ":");

  bool ret = scdc_dataprov_jobrun::close(result);

  open_args_release();

  SCDC_TRACE(__func__ << ": return: " << ret);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x8108a
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x7acd0
movq -0x20(%rbp), %rdi
andb $0x1, %al
movb %al, -0x11(%rbp)
callq 0x3abc0
jmp 0x810a7
movb -0x11(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: sched_job_routine(void*)
static void *sched_job_routine(void *arg)
{
  sched_job_arg_t *sched_job_arg = static_cast<sched_job_arg_t *>(arg);

  SCDC_TRACE(__func__ << ": jobid: '" << sched_job_arg->jobid << "'");

  sched_job_arg->dataprov_jobrun->job_run(sched_job_arg->jobid, sched_job_arg->jobcmds.c_str(), sched_job_arg->jobres);

  pthread_mutex_lock(&sched_job_arg->dataprov_jobrun->sched_lock);
  sched_job_arg->dataprov_jobrun->sched_jobs_run.erase(sched_job_arg->jobid);
  sched_job_arg->dataprov_jobrun->sched->job_stopped(sched_job_arg->m, sched_job_arg->jobid, sched_job_arg->jobres);
  pthread_mutex_unlock(&sched_job_arg->dataprov_jobrun->sched_lock);

  pthread_cond_signal(&sched_job_arg->dataprov_jobrun->sched_cond);

  SCDC_TRACE(__func__ << ": return: jobid: '" << sched_job_arg->jobid << "'");

  delete sched_job_arg;

  pthread_exit(NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x81c26
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq %rax, -0x68(%rbp)
movq %rdi, %rax
addq $0x8, %rax
movq %rax, -0x60(%rbp)
addq $0x28, %rdi
callq 0xc260
movq %rax, -0x58(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0xcbc0
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0x27820
jmp 0x81c69
movq -0x60(%rbp), %rsi
movq -0x68(%rbp), %rdi
movq -0x10(%rbp), %rcx
addq $0x48, %rcx
leaq -0x30(%rbp), %rdx
callq 0x7dd20
jmp 0x81c84
leaq -0x30(%rbp), %rdi
callq 0xc3e0
leaq -0x31(%rbp), %rdi
callq 0xc730
movq -0x10(%rbp), %rax
movq (%rax), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc9f0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
addq $0x240, %rdi            # imm = 0x240
movq -0x10(%rbp), %rsi
addq $0x8, %rsi
callq 0x87af0
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq 0x180(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rsi
movq -0x10(%rbp), %rdx
addq $0x8, %rdx
movq -0x10(%rbp), %rcx
addq $0x48, %rcx
callq 0x87b20
movq -0x10(%rbp), %rax
movq (%rax), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xc4c0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
addq $0x1b8, %rdi            # imm = 0x1B8
callq 0xc030
jmp 0x81d17
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x81d3c
movq -0x70(%rbp), %rdi
callq 0x87b70
movq -0x70(%rbp), %rdi
movl $0x68, %esi
callq 0xc6a0
xorl %eax, %eax
movl %eax, %edi
callq 0xcbb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x81d68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xc3e0
leaq -0x31(%rbp), %rdi
callq 0xc730
movq -0x40(%rbp), %rdi
callq 0xcba0
nopw (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: string_replace_all(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, 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&)
static void string_replace_all(string &str, const std::string &from, const std::string &to)
{
  size_t pos = 0;
  size_t from_n = from.size();
  size_t to_n = to.size();

  while ((pos = str.find(from, pos)) != string::npos)
  {
    str.replace(pos, from_n, to);
    pos += to_n;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0xc460
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0xc460
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xcd10
movq %rax, -0x20(%rbp)
cmpq $-0x1, %rax
je 0x81df4
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xc210
movq -0x30(%rbp), %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x81db6
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset* scdc_dataprov_jobrun::dataset_open<scdc_dataset_jobrun_system>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
scdc_dataset *scdc_dataprov_jobrun::dataset_open(std::string &path, scdc_result &result)
{
  SCDC_TRACE(__func__ << ": path: '" << path << "'");

  DATASET_JOBRUN *dataset_jobrun = new DATASET_JOBRUN(this);

  SCDC_TRACE(__func__ << ": return: " << dataset_jobrun);

  return dataset_jobrun;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x843ee
movl $0x58, %edi
callq 0xc690
movq -0x38(%rbp), %rsi
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x40(%rbp)
callq 0x8b530
jmp 0x8440d
movq -0x40(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x84417
movq -0x20(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
movl $0x58, %esi
callq 0xc6a0
movq -0x28(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::select_job(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool select_job(std::string &params, bool ignore_if_selected, bool fail_if_unselect, string &jobid)
    {
      jobid = get_jobid();

      /* if there is a job selected and should not be unselected */
      if (has_jobid() && ignore_if_selected) return true;

      scdc_dataprov_jobrun_job_params_t job_params;
      read_job_params2(params, jobid, job_params);

      /* if there is no jobid */
      if (jobid.size() == 0)
      {
        /* if unselect is not allowed */
        if (fail_if_unselect) return false;

      } else
      {
        /* if the job does not exist */
        if (!dataprov_jobrun()->is_job(jobid)) return false;
      }

      undo_select_jobid = get_jobid();

      set_jobid(jobid);

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movb %cl, %al
movb %dl, %cl
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %cl
movb %cl, -0x19(%rbp)
andb $0x1, %al
movb %al, -0x1a(%rbp)
movq %r8, -0x28(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0xc0(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x85940
movq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xc850
leaq -0x48(%rbp), %rdi
callq 0xc3e0
movq -0xc0(%rbp), %rdi
callq 0x856c0
testb $0x1, %al
jne 0x85772
jmp 0x85781
testb $0x1, -0x19(%rbp)
je 0x85781
movb $0x1, -0x1(%rbp)
jmp 0x858a7
leaq -0x88(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0x85970
movq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rcx
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x859b0
jmp 0x857b1
movq -0x28(%rbp), %rdi
callq 0xc460
cmpq $0x0, %rax
jne 0x857fe
testb $0x1, -0x1a(%rbp)
je 0x857fc
movb $0x0, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0x8589b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x86060
jmp 0x858b5
jmp 0x8583c
movq -0xc0(%rbp), %rdi
callq 0x856f0
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x7d680
movb %al, -0xc9(%rbp)
jmp 0x8581e
movb -0xc9(%rbp), %al
testb $0x1, %al
jne 0x8583a
jmp 0x8582a
movb $0x0, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0x8589b
jmp 0x8583c
movq -0xc0(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x85940
jmp 0x85851
movq -0xc0(%rbp), %rdi
addq $0x38, %rdi
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
callq 0xc850
movq -0xd8(%rbp), %rdi
callq 0xc3e0
movq -0xc0(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x86030
jmp 0x8588d
movb $0x1, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x86060
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xe0, %rsp
popq %rbp
retq
movq -0x90(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::undo_select_job()
bool undo_select_job()
    {
      /* if there is a jobid and the job does not exist */
      if (undo_select_jobid.size() > 0 && !dataprov_jobrun()->is_job(undo_select_jobid)) return false;

      set_jobid(undo_select_jobid);

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x18(%rbp)
addq $0x38, %rdi
callq 0xc460
cmpq $0x0, %rax
jbe 0x85916
movq -0x18(%rbp), %rdi
callq 0x856f0
movq -0x18(%rbp), %rsi
movq %rax, %rdi
addq $0x38, %rsi
callq 0x7d680
testb $0x1, %al
jne 0x85916
movb $0x0, -0x1(%rbp)
jmp 0x8592a
movq -0x18(%rbp), %rdi
movq %rdi, %rsi
addq $0x38, %rsi
callq 0x86030
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::create_job(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool create_job(const string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
    {
      SCDC_TRACE(__func__ << ": jobid: '" << jobid << "', nt: " << job_params.nt_min << "-" << job_params.nt_max << "', np: " << job_params.np_min << "-" << job_params.np_max);

      bool ret = true;

      ret = ret && create_job_inout(jobid, job_params);

      ret = ret && dataprov_jobrun()->job_create(jobid, job_params);

      return ret;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x860fe
movb $0x1, -0x19(%rbp)
xorl %eax, %eax
testb $0x1, -0x19(%rbp)
movb %al, -0x29(%rbp)
je 0x86122
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x30(%rax)
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movb %al, -0x19(%rbp)
xorl %eax, %eax
testb $0x1, -0x19(%rbp)
movb %al, -0x2a(%rbp)
je 0x86151
movq -0x28(%rbp), %rdi
callq 0x856f0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7d930
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
andb $0x1, %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::update_job(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool update_job(const string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
    {
      SCDC_TRACE(__func__ << ": jobid: '" << jobid << "', nt: " << job_params.nt_min << "-" << job_params.nt_max << "', np: " << job_params.np_min << "-" << job_params.np_max);

      bool ret = true;

      ret = ret && update_job_inout(jobid, job_params);

      ret = ret && dataprov_jobrun()->job_update(jobid, job_params);

      return ret;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x8618e
movb $0x1, -0x19(%rbp)
xorl %eax, %eax
testb $0x1, -0x19(%rbp)
movb %al, -0x29(%rbp)
je 0x861b2
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x40(%rax)
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
andb $0x1, %al
movb %al, -0x19(%rbp)
xorl %eax, %eax
testb $0x1, -0x19(%rbp)
movb %al, -0x2a(%rbp)
je 0x861e1
movq -0x28(%rbp), %rdi
callq 0x856f0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7dc30
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
andb $0x1, %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::destroy_job(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool destroy_job(const string &jobid)
    {
      SCDC_TRACE(__func__ << ": jobid: '" << jobid << "'");

      bool ret = true;

      ret = ret && dataprov_jobrun()->job_destroy(jobid);

      ret = ret && destroy_job_inout();

      return ret;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x8621a
movb $0x1, -0x11(%rbp)
xorl %eax, %eax
testb $0x1, -0x11(%rbp)
movb %al, -0x21(%rbp)
je 0x86241
movq -0x20(%rbp), %rdi
callq 0x856f0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x7db40
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
xorl %eax, %eax
testb $0x1, -0x11(%rbp)
movb %al, -0x22(%rbp)
je 0x86261
movq -0x20(%rbp), %rdi
movq (%rdi), %rax
callq *0x38(%rax)
movb %al, -0x22(%rbp)
movb -0x22(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_sched::update(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void update(const std::string &conf)
    {
      stringlist sl(' ', conf);

      std::string m = sl.front_pop();

      if (m == "default" || m == "node")
      {
        method = 0;
        node_update(sl);

      } else if (m == "sched")
      {
        method = 1;
      }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0xc270
movq -0x90(%rbp), %rdx
leaq -0x38(%rbp), %rdi
movl $0x20, %esi
callq 0x5ff80
jmp 0x863b9
leaq -0x58(%rbp), %rdi
callq 0xc3e0
leaq -0x88(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x25b00
jmp 0x863d4
leaq 0x22e01(%rip), %rsi     # 0xa91dc
leaq -0x88(%rbp), %rdi
callq 0x25b80
movb %al, -0x99(%rbp)
jmp 0x863ef
movb -0x99(%rbp), %al
testb $0x1, %al
jne 0x86422
jmp 0x863fb
leaq 0x22687(%rip), %rsi     # 0xa8a89
leaq -0x88(%rbp), %rdi
callq 0x25b80
movb %al, -0x9a(%rbp)
jmp 0x86416
movb -0x9a(%rbp), %al
testb $0x1, %al
jne 0x86422
jmp 0x86480
movq -0x98(%rbp), %rdi
movq $0x0, 0x38(%rdi)
leaq -0x38(%rbp), %rsi
callq 0x868c0
jmp 0x8643c
jmp 0x864b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xc3e0
jmp 0x864df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x864d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc3e0
jmp 0x864d6
leaq 0x22d5d(%rip), %rsi     # 0xa91e4
leaq -0x88(%rbp), %rdi
callq 0x25b80
movb %al, -0x9b(%rbp)
jmp 0x8649b
movb -0x9b(%rbp), %al
testb $0x1, %al
jne 0x864a7
jmp 0x864b6
movq -0x98(%rbp), %rax
movq $0x1, 0x38(%rax)
jmp 0x864b8
leaq -0x88(%rbp), %rdi
callq 0xc3e0
leaq -0x38(%rbp), %rdi
callq 0x25c90
addq $0xa0, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x25c90
movq -0x60(%rbp), %rdi
callq 0xcba0
nopl (%rax,%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_sched::node_update(stringlist&)
void node_update(stringlist &sl)
    {
      std::string nodeid = sl.front_pop();

      /* update node information */
      scdc_dataprov_jobrun_node_t node;
      dataprov_jobrun->get_node(nodeid, node);

      if (nodeid == node_data.id)
      {
        node_data.free_cores += node.cores - node_data.cores;
        node_data.cores = node.cores;

      } else
      {
        node_data.cores = node_data.free_cores = node.cores;

        node_data.id = nodeid;
      }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x25b00
leaq -0x48(%rbp), %rdi
callq 0x838c0
jmp 0x868f0
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x7cf60
jmp 0x86907
movq -0x60(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x316b0
testb $0x1, %al
jne 0x8691a
jmp 0x8694f
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
subq 0x20(%rax), %rcx
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x20(%rax)
jmp 0x8696c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xc3e0
jmp 0x8697b
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rax
movq %rax, 0x28(%rdi)
movq %rax, 0x20(%rdi)
leaq -0x30(%rbp), %rsi
callq 0xc070
jmp 0x8696a
jmp 0x8696c
leaq -0x30(%rbp), %rdi
callq 0xc3e0
addq $0x60, %rsp
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun_sched::node_job_get_runable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, scdc_dataprov_jobrun_job_t&, std::vector<scdc_dataprov_jobrun_res_proc_t, std::allocator<scdc_dataprov_jobrun_res_proc_t>>&)
bool node_job_get_runable(string &jobid, scdc_dataprov_jobrun_job_t &job, scdc_dataprov_jobrun_res_t &res)
    {
      jobid = dataprov_jobrun->sched_jobs_wait.front();

      dataprov_jobrun->get_job(jobid, job);

      SCDC_TRACE(__func__ << ": jobid: '" << jobid << "', jobcmds: '" << job.jobcmds << "', np: " << job.params.np_min << "-" << job.params.np_max);
      SCDC_TRACE(__func__ << ": node: '" << node_data.id << "', free cores: " << node_data.free_cores << " of " << node_data.cores);

      if (node_data.free_cores < job.params.np_min * job.params.nt_min) return false;

      dataprov_jobrun->sched_jobs_wait.pop_front();

      scdc_dataprov_jobrun_res_proc_t res_proc;
      res_proc.node = node_data.id;
      res_proc.np = job.params.np_min;
      res_proc.nt = job.params.nt_min;

      res.push_back(res_proc);

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
movq 0x30(%rax), %rdi
addq $0x228, %rdi            # imm = 0x228
callq 0x86aa0
movq %rax, %rsi
movq -0x18(%rbp), %rdi
callq 0xc070
movq -0x70(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7d8a0
jmp 0x869e6
jmp 0x869e8
jmp 0x869ea
movq -0x70(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x20(%rbp), %rdx
imulq (%rdx), %rcx
cmpq %rcx, %rax
jge 0x86a0d
movb $0x0, -0x1(%rbp)
jmp 0x86a89
movq -0x70(%rbp), %rax
movq 0x30(%rax), %rdi
addq $0x228, %rdi            # imm = 0x228
callq 0x86ad0
leaq -0x58(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x81ee0
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0xc070
jmp 0x86a3d
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x81f00
jmp 0x86a63
movb $0x1, -0x1(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x81f70
jmp 0x86a89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x81f70
jmp 0x86a97
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x80, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0xcba0
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::do_cmd_cd(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_cd(const std::string &params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
    {
      string jobid;
      string p = params;

      if (!select_job(p, false, false, jobid))
      {
        result = "selecting job '" + jobid + "' failed";
        SCDC_FAIL("do_cmd_cd: " << result);
        return false;
      }

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xc960
movq -0x18(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0xc270
jmp 0x8b902
movq -0xd0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
xorl %ecx, %ecx
leaq -0x50(%rbp), %r8
movl %ecx, %edx
callq 0x85710
movb %al, -0xd1(%rbp)
jmp 0x8b922
movb -0xd1(%rbp), %al
testb $0x1, %al
jne 0x8baa6
jmp 0x8b932
leaq 0x1d80b(%rip), %rsi     # 0xa9144
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x25900
jmp 0x8b94b
leaq 0x1c5ba(%rip), %rdx     # 0xa7f0c
leaq -0xa0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x2eef0
jmp 0x8b967
movq -0x30(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0xc850
leaq -0xa0(%rbp), %rdi
callq 0xc3e0
leaq -0xc0(%rbp), %rdi
callq 0xc3e0
leaq 0x48d12(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x8ba92
leaq 0x48cf9(%rip), %rax     # 0xd46a8
movq %rax, -0xe8(%rbp)
movq (%rax), %rdi
callq 0x25800
movq -0xe8(%rbp), %rax
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x1a7d9(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0xe0(%rbp)
jmp 0x8b9e5
movq -0xe0(%rbp), %rdi
leaq 0x1d761(%rip), %rsi     # 0xa9154
callq 0xc670
movq %rax, -0xf0(%rbp)
jmp 0x8ba01
movq -0xf0(%rbp), %rdi
leaq 0x1d835(%rip), %rsi     # 0xa9244
callq 0xc670
movq %rax, -0xf8(%rbp)
jmp 0x8ba1d
movq -0xf8(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x100(%rbp)
jmp 0x8ba36
movq -0x100(%rbp), %rdi
movq 0x4857c(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x8ba4b
leaq 0x48c56(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8ba92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x8badd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x8bad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0xc3e0
jmp 0x8bad4
jmp 0x8ba94
jmp 0x8ba96
movb $0x0, -0x1(%rbp)
movl $0x1, -0xc4(%rbp)
jmp 0x8bab4
movb $0x1, -0x1(%rbp)
movl $0x1, -0xc4(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xc3e0
leaq -0x50(%rbp), %rdi
callq 0xc3e0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
leaq -0x70(%rbp), %rdi
callq 0xc3e0
leaq -0x50(%rbp), %rdi
callq 0xc3e0
movq -0x78(%rbp), %rdi
callq 0xcba0
nop
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun_system::create_job_inout(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, scdc_dataprov_jobrun_job_params_proc_t&)
bool create_job_inout(const string &jobid, scdc_dataprov_jobrun_job_params_t &job_params)
    {
      if (!z_fs_mkdir(workdir(jobid).c_str()))
      {
        SCDC_FAIL("create_job_inout: creating directory failed!");
        return false;
      }

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x40(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x8c1a0
movq -0x60(%rbp), %rdi
callq 0xc260
movq %rax, %rdi
callq 0x5d710
movq %rax, -0x58(%rbp)
jmp 0x8bb70
movq -0x58(%rbp), %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
movb %al, -0x61(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xc3e0
movb -0x61(%rbp), %al
testb $0x1, %al
jne 0x8bb95
jmp 0x8bc3a
jmp 0x8bb97
leaq 0x48b0a(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x8bc32
leaq 0x48af1(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x48ae2(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x1a5d8(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x1d1bd(%rip), %rsi     # 0xa8da4
callq 0xc670
movq %rax, %rdi
leaq 0x1d65a(%rip), %rsi     # 0xa9250
callq 0xc670
movq %rax, %rdi
movq 0x483bb(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x48a97(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8bc32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xc3e0
jmp 0x8bc49
jmp 0x8bc34
movb $0x0, -0x1(%rbp)
jmp 0x8bc3e
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun_system::destroy_job_inout()
bool destroy_job_inout()
    {
      if (!z_fs_rm_r(workdir().c_str()))
      {
        SCDC_FAIL("destroy_job_inout: deleting directory failed!");
        return false;
      }

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x30(%rbp), %rdi
movq %rdi, -0x50(%rbp)
callq 0x8c210
movq -0x50(%rbp), %rdi
callq 0xc260
movq %rax, %rdi
callq 0x5d840
movq %rax, -0x48(%rbp)
jmp 0x8bc94
movq -0x48(%rbp), %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
movb %al, -0x51(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xc3e0
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x8bcb9
jmp 0x8bd5e
jmp 0x8bcbb
leaq 0x489e6(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x8bd56
leaq 0x489cd(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x489be(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x1a4b4(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0x1d099(%rip), %rsi     # 0xa8da4
callq 0xc670
movq %rax, %rdi
leaq 0x1d563(%rip), %rsi     # 0xa927d
callq 0xc670
movq %rax, %rdi
movq 0x48297(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x48973(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8bd56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xc3e0
jmp 0x8bd6d
jmp 0x8bd58
movb $0x0, -0x1(%rbp)
jmp 0x8bd62
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x60, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0xcba0
nopw %cs:(%rax,%rax)