// File: /workspace/github_cpp_makefile_star2_O2/mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataset_jobrun::do_cmd_put(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_put(const std::string &params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
    {
      if (!has_jobid() && dataprov_jobrun()->do_cmd_put(params, input, output, result)) return true;

      string jobid = get_jobid();

      string p = params;
      scdc_dataprov_jobrun_job_params_t job_params;
      read_job_params2(p, jobid, job_params);

      if (jobid.size() > 0)
      {
        if (!dataprov_jobrun()->is_job(jobid))
        {
          if (!create_job(jobid, job_params))
          {
            result = "creating job '" + jobid + "' failed";
            SCDC_FAIL("do_cmd_put: " << result);
            return false;
          }

        } else
        {
          if (!update_job(jobid, job_params))
          {
            result = "updating job '" + jobid + "' failed";
            SCDC_FAIL("do_cmd_put: " << result);
            return false;
          }
        }
      }

      p = jobid + " " + p;

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

      SCDC_ASSERT(dataprov_jobrun()->is_job(jobid));

      bool ret = true;

      ret = ret && do_cmd_put_inout(p, input, output, result);

      ret = ret && dataprov_jobrun()->job_run(jobid, p, dataprov_jobrun()->local_res);

      undo_select_job();

      return ret;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %r8, %r14
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x18(%rdi), %rsi
leaq 0x20(%rsp), %rdi
callq 0xb750
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0xb750
leaq 0xb0(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x20(%rax)
movaps %xmm0, -0x30(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x60(%rsp), %rsi
leaq 0x20(%rsp), %rdx
leaq 0x80(%rsp), %rcx
movq %r15, %rdi
callq 0x415d4
cmpq $0x0, 0x28(%rsp)
je 0x40683
movq 0x8(%r15), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3db40
testb %al, %al
je 0x40666
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rdx
movq %r15, %rdi
callq 0x41b04
testb %al, %al
jne 0x40683
leaq 0x13b55(%rip), %rsi     # 0x54195
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x19ae2
leaq 0x1283c(%rip), %rdx     # 0x52e90
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x1cb18
jmp 0x40838
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rdx
movq %r15, %rdi
callq 0x41ad0
testb %al, %al
je 0x40810
leaq 0x13976(%rip), %rdx     # 0x54000
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x1d867
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x60(%rsp), %rdx
callq 0x1eeb2
leaq 0x60(%rsp), %rbp
leaq 0x40(%rsp), %rbx
movq %rbp, %rdi
movq %rbx, %rsi
callq 0xb690
movq %rbx, %rdi
callq 0xb230
movq %rsp, %rdi
callq 0xb230
pushq $0x1
popq %rcx
leaq 0x20(%rsp), %r8
movq %r15, %rdi
movq %rbp, %rsi
movl %ecx, %edx
callq 0x41480
testb %al, %al
je 0x407c4
movq 0x8(%r15), %rdi
leaq 0x20(%rsp), %rsi
callq 0x3db40
testb %al, %al
jne 0x4078b
leaq 0x34e78(%rip), %rbx     # 0x75580
movq (%rbx), %rdi
cmpq $0x0, 0x18(%rdi)
je 0x4078b
addq $0x20, %rdi
callq 0xb800
movq (%rbx), %rax
movq 0x18(%rax), %rdi
leaq 0x10e20(%rip), %rsi     # 0x51549
callq 0xb520
leaq 0x13a6f(%rip), %rsi     # 0x541a4
movq %rax, %rdi
callq 0xb520
leaq 0x10c00(%rip), %rsi     # 0x51344
movq %rax, %rdi
callq 0xb520
movq %rax, %rdi
movl $0x17b, %esi            # imm = 0x17B
callq 0xb990
leaq 0x13a60(%rip), %rsi     # 0x541c0
movq %rax, %rdi
callq 0xb520
leaq 0x12721(%rip), %rsi     # 0x52e90
movq %rax, %rdi
callq 0xb520
movq %rax, %rdi
callq 0xb270
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0xb3e0
movq (%r15), %rax
leaq 0x60(%rsp), %rsi
movq %r15, %rdi
movq %r13, %rdx
movq %r12, %rcx
movq %r14, %r8
callq *0x50(%rax)
testb %al, %al
je 0x40801
movq 0x8(%r15), %rdi
leaq 0x110(%rdi), %rcx
leaq 0x20(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x3dea8
movl %eax, %ebp
jmp 0x40803
leaq 0x13981(%rip), %rsi     # 0x5414c
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x19ae2
leaq 0x126b1(%rip), %rdx     # 0x52e90
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x1cb18
leaq 0x40(%rsp), %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq 0xb690
movq %rbx, %rdi
jmp 0x4084b
xorl %ebp, %ebp
movq %r15, %rdi
callq 0x41594
jmp 0x408cb
leaq 0x13962(%rip), %rsi     # 0x54179
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x19ae2
leaq 0x12665(%rip), %rdx     # 0x52e90
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x1cb18
leaq 0x40(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0xb690
movq %r15, %rdi
callq 0xb230
movq %rsp, %rdi
callq 0xb230
leaq 0x34d21(%rip), %rax     # 0x75580
movq (%rax), %rdi
cmpq $0x0, 0x8(%rdi)
je 0x408c9
addq $0x20, %rdi
callq 0xb800
leaq 0x34d07(%rip), %rbx     # 0x75580
movq (%rbx), %rax
movq 0x8(%rax), %rdi
leaq 0x10901(%rip), %rsi     # 0x51188
callq 0xb520
leaq 0x138c9(%rip), %rsi     # 0x5415c
movq %rax, %rdi
callq 0xb520
leaq 0x138e6(%rip), %rsi     # 0x54188
movq %rax, %rdi
callq 0xb520
movq %rax, %rdi
movq %r14, %rsi
callq 0xb490
movq %rax, %rdi
callq 0xb270
movq (%rbx), %rdi
addq $0x20, %rdi
callq 0xb3e0
xorl %ebp, %ebp
leaq 0xa0(%rsp), %rdi
callq 0xb230
leaq 0x60(%rsp), %rdi
callq 0xb230
leaq 0x20(%rsp), %rdi
callq 0xb230
movl %ebp, %eax
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4090c
jmp 0x4090c
jmp 0x40922
jmp 0x40922
jmp 0x4090c
jmp 0x40922
movq %rax, %r14
movq %rsp, %rdi
callq 0xb230
jmp 0x40925
jmp 0x40922
jmp 0x40922
movq %rax, %r14
jmp 0x4093c
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
callq 0xb230
leaq 0x60(%rsp), %rdi
callq 0xb230
leaq 0x20(%rsp), %rdi
callq 0xb230
movq %r14, %rdi
callq 0xb9a0