// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun_relay.cc
// Function: scdc_dataprov_jobrun_relay::relay_put(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&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_dataprov_jobrun_relay::relay_put(const std::string &path, const std::string &url, std::string &result)
{
  SCDC_TRACE("relay_put: path: '" << path << "', url: '" << url << "'");

  scdc_dataset_input_t *input = NULL;
  scdc_dataset_output_t output_, *output = &output_;

  output = scdc_dataset_output_create(output, "alloc");

  string cmd = url + "/CONFIG get type,max_parallel_jobs";

  bool ret = scdc_dataset_cmd(SCDC_DATASET_NULL, cmd.c_str(), input, output);

  if (ret)
  {
    string s = SCDC_DATASET_OUTPUT_STR_(output);
    stringlist sl(',', s.c_str(), s.size());

    if (sl.front_pop() != "jobrun")
    {
      result = "url '" + url + "' is not a jobrun datprovider";
      SCDC_FAIL("relay_put: " << result);
      ret = false;

    } else
    {
      ret = scdc_dataprov_relay::relay_put(path, url, result);

      if (ret)
      {
        stringstream ss(sl.front_pop());

        scdcint_t p;

        ss >> p;

        sched.insert(sched_t::value_type(path, scdc_dataprov_jobrun_relay_sched_t(p)));
        max_parallel_jobs += p;

        SCDC_TRACE("relay_put: schedule " << p << " jobs for path '" << path << "'");
        SCDC_TRACE("relay_put: max_parallel_jobs: " << max_parallel_jobs);
        SCDC_INFO("adding relay to '" << url << "' for path '" << path << "' with " << p << " max. parallel jobs (total max. parallel jobs: " << max_parallel_jobs << ")");
      }
    }

  } else
  {
    result = "accessing data provider '" + url + "' failed: ???";
    SCDC_FAIL("relay_put: " << result);
  }

  scdc_dataset_output_destroy(output);

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x520, %rsp            # imm = 0x520
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x3c8(%rbp)
jmp 0x8e0a8
movq $0x0, -0x28(%rbp)
leaq -0x80(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
leaq 0x18f8b(%rip), %rsi     # 0xa7054
xorl %eax, %eax
movl %eax, -0x3d8(%rbp)
movb %al, -0x3d1(%rbp)
callq 0x46af0
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x1b2c4(%rip), %rdx     # 0xa93b2
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x31740
movq -0x3e0(%rbp), %rdi
callq 0xc260
movl -0x3d8(%rbp), %edi
movq %rax, %rsi
movb -0x3d1(%rbp), %al
movq -0x28(%rbp), %rdx
movq -0x88(%rbp), %rcx
callq 0x23d80
movq %rax, -0x3d0(%rbp)
jmp 0x8e135
movq -0x3d0(%rbp), %rax
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
testb $0x1, -0xa9(%rbp)
je 0x8e9b2
movq -0x88(%rbp), %rax
movb $0x0, -0xe2(%rbp)
movb $0x0, -0xe4(%rbp)
movb $0x0, -0xe6(%rbp)
cmpq $0x0, %rax
je 0x8e222
movq -0x88(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x8e1e8
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0x3f8(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x3f0(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0xcbc0
movq -0x3f8(%rbp), %rsi
movq -0x3f0(%rbp), %rdx
movq -0x3e8(%rbp), %rcx
movb $0x1, -0xe2(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0xc7a0
jmp 0x8e1e6
jmp 0x8e220
leaq -0xe3(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0xcbc0
movq -0x400(%rbp), %rdx
movb $0x1, -0xe4(%rbp)
leaq 0x18394(%rip), %rsi     # 0xa65a4
leaq -0xe0(%rbp), %rdi
callq 0x27820
jmp 0x8e21e
jmp 0x8e220
jmp 0x8e25a
leaq -0xe5(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0xcbc0
movq -0x408(%rbp), %rdx
movb $0x1, -0xe6(%rbp)
leaq 0x1b18b(%rip), %rsi     # 0xa93d5
leaq -0xe0(%rbp), %rdi
callq 0x27820
jmp 0x8e258
jmp 0x8e25a
testb $0x1, -0xe6(%rbp)
jne 0x8e265
jmp 0x8e271
leaq -0xe5(%rbp), %rdi
callq 0xc730
testb $0x1, -0xe4(%rbp)
jne 0x8e27c
jmp 0x8e288
leaq -0xe3(%rbp), %rdi
callq 0xc730
testb $0x1, -0xe2(%rbp)
jne 0x8e293
jmp 0x8e29f
leaq -0xe1(%rbp), %rdi
callq 0xc730
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0xc260
movq -0x418(%rbp), %rdi
movq %rax, -0x410(%rbp)
callq 0xc460
movq -0x410(%rbp), %rdx
movq %rax, %rcx
leaq -0x110(%rbp), %rdi
movl $0x2c, %esi
callq 0x25a70
jmp 0x8e2e2
leaq -0x130(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x25b00
jmp 0x8e2f7
leaq 0x18151(%rip), %rsi     # 0xa644f
leaq -0x130(%rbp), %rdi
callq 0x2b120
movb %al, -0x419(%rbp)
jmp 0x8e312
leaq -0x130(%rbp), %rdi
callq 0xc3e0
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x8e32d
jmp 0x8e597
movq -0x18(%rbp), %rdx
leaq 0x185bf(%rip), %rsi     # 0xa68f7
leaq -0x170(%rbp), %rdi
callq 0x25900
jmp 0x8e346
leaq 0x1b08f(%rip), %rdx     # 0xa93dc
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x2eef0
jmp 0x8e362
movq -0x20(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xc850
leaq -0x150(%rbp), %rdi
callq 0xc3e0
leaq -0x170(%rbp), %rdi
callq 0xc3e0
leaq 0x46317(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x428(%rbp)
jmp 0x8e3a2
movq -0x428(%rbp), %rax
cmpq $0x0, %rax
je 0x8e587
leaq 0x462ee(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x8e3c4
leaq 0x462dd(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x430(%rbp)
jmp 0x8e3dc
movq -0x430(%rbp), %rdi
leaq 0x17dc6(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0x438(%rbp)
jmp 0x8e3f8
movq -0x438(%rbp), %rdi
leaq 0x1af52(%rip), %rsi     # 0xa9358
callq 0xc670
movq %rax, -0x440(%rbp)
jmp 0x8e414
movq -0x440(%rbp), %rdi
leaq 0x1afd8(%rip), %rsi     # 0xa93fa
callq 0xc670
movq %rax, -0x448(%rbp)
jmp 0x8e430
movq -0x448(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x450(%rbp)
jmp 0x8e449
movq -0x450(%rbp), %rdi
movq 0x45b69(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x8e45e
leaq 0x46243(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8e46f
jmp 0x8e587
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8eb53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8e4f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8e4de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
testb $0x1, -0xe6(%rbp)
jne 0x8e4d0
jmp 0x8e4dc
leaq -0xe5(%rbp), %rdi
callq 0xc730
jmp 0x8e4de
testb $0x1, -0xe4(%rbp)
jne 0x8e4e9
jmp 0x8e4f5
leaq -0xe3(%rbp), %rdi
callq 0xc730
jmp 0x8e4f7
testb $0x1, -0xe2(%rbp)
jne 0x8e502
jmp 0x8e50e
leaq -0xe1(%rbp), %rdi
callq 0xc730
jmp 0x8eb53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8e9a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8e995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x130(%rbp), %rdi
callq 0xc3e0
jmp 0x8e995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x170(%rbp), %rdi
callq 0xc3e0
jmp 0x8e995
jmp 0x8e589
jmp 0x8e58b
movb $0x0, -0xa9(%rbp)
jmp 0x8e978
movq -0x3c8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x33fb0
movb %al, -0x451(%rbp)
jmp 0x8e5b7
movb -0x451(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
testb $0x1, -0xa9(%rbp)
je 0x8e976
leaq -0x318(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x25b00
jmp 0x8e5e7
movl $0x10, %edi
movl $0x8, %esi
callq 0x356a0
movl %eax, -0x458(%rbp)
jmp 0x8e5fe
movl -0x458(%rbp), %edx
leaq -0x2f8(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0xcad0
jmp 0x8e619
leaq -0x318(%rbp), %rdi
callq 0xc3e0
leaq -0x2f8(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0xc820
jmp 0x8e63a
movq -0x3c8(%rbp), %rax
addq $0xc8, %rax
movq %rax, -0x468(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x320(%rbp), %rsi
leaq -0x350(%rbp), %rdi
callq 0x91180
jmp 0x8e66e
movq -0x460(%rbp), %rsi
leaq -0x348(%rbp), %rdi
leaq -0x350(%rbp), %rdx
callq 0x911a0
jmp 0x8e68a
movq -0x468(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x91140
movb %dl, -0x471(%rbp)
movq %rax, -0x470(%rbp)
jmp 0x8e6ac
movb -0x471(%rbp), %al
movq -0x470(%rbp), %rcx
movq %rcx, -0x360(%rbp)
movb %al, -0x358(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x911e0
movq -0x3c8(%rbp), %rax
movq -0x320(%rbp), %rcx
addq 0x128(%rax), %rcx
movq %rcx, 0x128(%rax)
jmp 0x8e6f0
jmp 0x8e6f2
jmp 0x8e6f4
jmp 0x8e6f6
jmp 0x8e6f8
jmp 0x8e6fa
leaq 0x45fa7(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x480(%rbp)
jmp 0x8e712
movq -0x480(%rbp), %rax
cmpq $0x0, %rax
je 0x8e956
leaq 0x45f7e(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x8e734
leaq 0x45f6d(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x488(%rbp)
jmp 0x8e74c
movq -0x488(%rbp), %rdi
leaq 0x187c6(%rip), %rsi     # 0xa6f20
callq 0xc670
movq %rax, -0x490(%rbp)
jmp 0x8e768
leaq -0x380(%rbp), %rdi
callq 0x8eb70
jmp 0x8e776
movq -0x490(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x498(%rbp)
jmp 0x8e792
movq -0x498(%rbp), %rdi
leaq 0x1abb8(%rip), %rsi     # 0xa9358
callq 0xc670
movq %rax, -0x4a0(%rbp)
jmp 0x8e7ae
movq -0x4a0(%rbp), %rdi
leaq 0x1ac4a(%rip), %rsi     # 0xa9406
callq 0xc670
movq %rax, -0x4a8(%rbp)
jmp 0x8e7ca
movq -0x4a8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x4b0(%rbp)
jmp 0x8e7e3
movq -0x4b0(%rbp), %rdi
leaq 0x1ac27(%rip), %rsi     # 0xa9418
callq 0xc670
movq %rax, -0x4b8(%rbp)
jmp 0x8e7ff
movq -0x4b8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x4c0(%rbp)
jmp 0x8e818
movq -0x4c0(%rbp), %rdi
leaq 0x1abff(%rip), %rsi     # 0xa9425
callq 0xc670
movq %rax, -0x4c8(%rbp)
jmp 0x8e834
movq -0x4c8(%rbp), %rdi
movq -0x320(%rbp), %rsi
callq 0xc340
movq %rax, -0x4d0(%rbp)
jmp 0x8e850
movq -0x4d0(%rbp), %rdi
leaq 0x1abcf(%rip), %rsi     # 0xa942d
callq 0xc670
movq %rax, -0x4d8(%rbp)
jmp 0x8e86c
movq -0x4d8(%rbp), %rdi
movq -0x3c8(%rbp), %rax
movq 0x128(%rax), %rsi
callq 0xc340
movq %rax, -0x4e0(%rbp)
jmp 0x8e88f
movq -0x4e0(%rbp), %rdi
leaq 0x1907a(%rip), %rsi     # 0xa7917
callq 0xc670
movq %rax, -0x4e8(%rbp)
jmp 0x8e8ab
movq -0x4e8(%rbp), %rdi
movq 0x45707(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x8e8c0
leaq -0x380(%rbp), %rdi
callq 0xc3e0
leaq 0x45dd5(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8e8dd
jmp 0x8e956
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x318(%rbp), %rdi
callq 0xc3e0
jmp 0x8e995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x8e968
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x911e0
jmp 0x8e968
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x380(%rbp), %rdi
callq 0xc3e0
jmp 0x8e968
jmp 0x8e958
jmp 0x8e95a
leaq -0x2f8(%rbp), %rdi
callq 0xc4b0
jmp 0x8e976
leaq -0x2f8(%rbp), %rdi
callq 0xc4b0
jmp 0x8e995
jmp 0x8e978
leaq -0x110(%rbp), %rdi
callq 0x25c90
leaq -0xe0(%rbp), %rdi
callq 0xc3e0
jmp 0x8eb1c
leaq -0x110(%rbp), %rdi
callq 0x25c90
leaq -0xe0(%rbp), %rdi
callq 0xc3e0
jmp 0x8eb53
movq -0x18(%rbp), %rdx
leaq 0x1aaa0(%rip), %rsi     # 0xa945d
leaq -0x3c0(%rbp), %rdi
callq 0x25900
jmp 0x8e9cb
leaq 0x1aaa5(%rip), %rdx     # 0xa9477
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x2eef0
jmp 0x8e9e7
movq -0x20(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0xc850
leaq -0x3a0(%rbp), %rdi
callq 0xc3e0
leaq -0x3c0(%rbp), %rdi
callq 0xc3e0
leaq 0x45c92(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x4f0(%rbp)
jmp 0x8ea27
movq -0x4f0(%rbp), %rax
cmpq $0x0, %rax
je 0x8eb16
leaq 0x45c69(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x8ea49
leaq 0x45c58(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x4f8(%rbp)
jmp 0x8ea61
movq -0x4f8(%rbp), %rdi
leaq 0x17741(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0x500(%rbp)
jmp 0x8ea7d
movq -0x500(%rbp), %rdi
leaq 0x1a8cd(%rip), %rsi     # 0xa9358
callq 0xc670
movq %rax, -0x508(%rbp)
jmp 0x8ea99
movq -0x508(%rbp), %rdi
leaq 0x1a953(%rip), %rsi     # 0xa93fa
callq 0xc670
movq %rax, -0x510(%rbp)
jmp 0x8eab5
movq -0x510(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x518(%rbp)
jmp 0x8eace
movq -0x518(%rbp), %rdi
movq 0x454e4(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x8eae3
leaq 0x45bbe(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x8eaf4
jmp 0x8eb16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x3c0(%rbp), %rdi
callq 0xc3e0
jmp 0x8eb53
jmp 0x8eb18
jmp 0x8eb1a
jmp 0x8eb1c
movq -0x88(%rbp), %rdi
callq 0x46bc0
jmp 0x8eb2a
movb -0xa9(%rbp), %al
movb %al, -0x519(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
movb -0x519(%rbp), %al
andb $0x1, %al
addq $0x520, %rsp            # imm = 0x520
popq %rbp
retq
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
movq -0xb8(%rbp), %rdi
callq 0xcba0
nopl (%rax,%rax)