// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_jobrun.cc
// Function: scdc_dataprov_jobrun::nodes_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, long long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, scdc_config_result&)
bool scdc_dataprov_jobrun::nodes_config(const std::string &cmd, scdcint_t param, std::string &val, scdc_config_result &result)
{
  SCDC_TRACE(__func__ << ": cmd: '" << cmd << "', param: '" << param << "', val: '" << val << "', result: '" << result << "'");

  bool ret = false;

  if (param == 0) /* nodes */
  {
    if (cmd == "put")
    {
      stringlist sl(':', val);

      string nodeid, s;
      scdc_dataprov_jobrun_node_t node(1, 1, 1.0);

      sl.front_pop(nodeid);

      if (sl.front_pop(s) && s != "") stringstream(s) >> node.cores;

      if (sl.front_pop(s) && s != "") stringstream(s) >> node.performance;

      if (sl.front_pop(s) && s != "") stringstream(s) >> node.max_parallel_jobs;
      else node.max_parallel_jobs = node.cores;

      ret = add_node(nodeid, node);

    } else if (cmd == "get")
    {
      nodes_t::iterator nodes_begin, nodes_end;

      if (val == "") { nodes_begin = nodes.begin(); nodes_end = nodes.end(); }
      else
      {
        nodes_begin = nodes_end = nodes.find(val);
        ++nodes_end;
      }

      for (nodes_t::iterator i = nodes_begin; i != nodes_end; ++i)
      {
        char s[64], *ps = s;
        sprintf(s, "%s:%" scdcint_fmt ":%f:%" scdcint_fmt, i->first.c_str(), i->second.cores, i->second.performance, i->second.max_parallel_jobs);
        ret = scdc_dataprov_config::get<char *>(result, "nodes", ps);
      }
      
    } else if (cmd == "rm")
    {
      ret = del_node(val);
    }

  } else if (param == 1) /* cores */
  {
    if (cmd == "put")
    {
      string nodeid;
      scdcint_t cores;

      ret = scdc_dataprov_config::put<string>(result, "cores", val, nodeid)
         && scdc_dataprov_config::put<scdcint_t>(result, "cores", val, cores)
         && set_node(nodeid, cores, -1, -1);

    } else if (cmd == "get")
    {
      scdc_dataprov_jobrun_node_t node;

      if (val == "") ret = scdc_dataprov_config::get<scdcint_t>(result, "cores", total_cores);
      else
      {
        if (get_node(val, node)) ret = scdc_dataprov_config::get<scdcint_t>(result, "cores", node.cores);
        else ret = scdc_dataprov_config::fail(result, "cores", "getting node " + val + " failed");
      }
    }

  } else if (param == 2) /* max_parallel_jobs */
  {
    if (cmd == "put")
    {
      string nodeid;
      scdcint_t max_parallel_jobs;

      ret = scdc_dataprov_config::put<string>(result, "max_parallel_jobs", val, nodeid)
         && scdc_dataprov_config::put<scdcint_t>(result, "max_parallel_jobs", val, max_parallel_jobs)
         && set_node(nodeid, -1, max_parallel_jobs, -1);

    } else if (cmd == "get")
    {
      scdc_dataprov_jobrun_node_t node;

      if (val == "") ret = scdc_dataprov_config::get<scdcint_t>(result, "max_parallel_jobs", max_parallel_jobs);
      else
      {
        if (get_node(val, node)) ret = scdc_dataprov_config::get<scdcint_t>(result, "max_parallel_jobs", node.max_parallel_jobs);
        else ret = scdc_dataprov_config::fail(result, "max_parallel_jobs", "getting node " + val + " failed");
      }
    }

  } else if (param == 3) /* performance */
  {
    if (cmd == "put")
    {
      string nodeid;
      double performance;

      ret = scdc_dataprov_config::put<string>(result, "performance", val, nodeid)
         && scdc_dataprov_config::put<double>(result, "performance", val, performance)
         && set_node(nodeid, -1, -1, performance);

    } else if (cmd == "get")
    {
      scdc_dataprov_jobrun_node_t node;

      if (get_node(val, node)) ret = scdc_dataprov_config::get<double>(result, "performance", node.performance);
      else ret = scdc_dataprov_config::fail(result, "performance", "getting node " + val + " failed");
    }
  }

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x850, %rsp            # imm = 0x850
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x780(%rbp)
jmp 0x7bb0c
movb $0x0, -0x29(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x7c0bf
movq -0x10(%rbp), %rdi
leaq 0x2b02d(%rip), %rsi     # 0xa6b53
callq 0x25b80
testb $0x1, %al
jne 0x7bb34
jmp 0x7beb1
movq -0x20(%rbp), %rsi
leaq -0x78(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0xc270
movq -0x788(%rbp), %rdx
leaq -0x58(%rbp), %rdi
movl $0x3a, %esi
callq 0x5ff80
jmp 0x7bb5f
leaq -0x78(%rbp), %rdi
callq 0xc3e0
leaq -0xa8(%rbp), %rdi
callq 0xc960
leaq -0xc8(%rbp), %rdi
callq 0xc960
leaq -0xe0(%rbp), %rdi
movl $0x1, %edx
movsd 0x2947c(%rip), %xmm0    # 0xa5010
movq %rdx, %rsi
callq 0x81ea0
jmp 0x7bb9e
leaq -0x58(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x26730
jmp 0x7bbb0
leaq -0x58(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x26730
movb %al, -0x789(%rbp)
jmp 0x7bbc8
movb -0x789(%rbp), %al
testb $0x1, %al
jne 0x7bbd7
jmp 0x7bca7
leaq 0x2a9c6(%rip), %rsi     # 0xa65a4
leaq -0xc8(%rbp), %rdi
callq 0x2b120
movb %al, -0x78a(%rbp)
jmp 0x7bbf2
movb -0x78a(%rbp), %al
testb $0x1, %al
jne 0x7bc01
jmp 0x7bca7
movl $0x10, %edi
movl $0x8, %esi
callq 0x356a0
movl %eax, -0x790(%rbp)
jmp 0x7bc18
movl -0x790(%rbp), %edx
leaq -0x268(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xcad0
jmp 0x7bc33
leaq -0x268(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x64e40
jmp 0x7bc48
leaq -0x268(%rbp), %rdi
callq 0xc4b0
jmp 0x7bca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7be8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xc4b0
jmp 0x7be8b
leaq -0x58(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x26730
movb %al, -0x791(%rbp)
jmp 0x7bcbf
movb -0x791(%rbp), %al
testb $0x1, %al
jne 0x7bcce
jmp 0x7bd6a
leaq 0x2a8cf(%rip), %rsi     # 0xa65a4
leaq -0xc8(%rbp), %rdi
callq 0x2b120
movb %al, -0x792(%rbp)
jmp 0x7bce9
movb -0x792(%rbp), %al
testb $0x1, %al
jne 0x7bcf5
jmp 0x7bd6a
movl $0x10, %edi
movl $0x8, %esi
callq 0x356a0
movl %eax, -0x798(%rbp)
jmp 0x7bd0c
movl -0x798(%rbp), %edx
leaq -0x3f0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xcad0
jmp 0x7bd27
leaq -0xd0(%rbp), %rsi
leaq -0x3f0(%rbp), %rdi
callq 0x839b0
jmp 0x7bd3c
leaq -0x3f0(%rbp), %rdi
callq 0xc4b0
jmp 0x7bd6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0xc4b0
jmp 0x7be8b
leaq -0x58(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x26730
movb %al, -0x799(%rbp)
jmp 0x7bd82
movb -0x799(%rbp), %al
testb $0x1, %al
jne 0x7bd91
jmp 0x7be2a
leaq 0x2a80c(%rip), %rsi     # 0xa65a4
leaq -0xc8(%rbp), %rdi
callq 0x2b120
movb %al, -0x79a(%rbp)
jmp 0x7bdac
movb -0x79a(%rbp), %al
testb $0x1, %al
jne 0x7bdb8
jmp 0x7be2a
movl $0x10, %edi
movl $0x8, %esi
callq 0x356a0
movl %eax, -0x7a0(%rbp)
jmp 0x7bdcf
movl -0x7a0(%rbp), %edx
leaq -0x578(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xcad0
jmp 0x7bdea
leaq -0xd8(%rbp), %rsi
leaq -0x578(%rbp), %rdi
callq 0x64e40
jmp 0x7bdff
leaq -0x578(%rbp), %rdi
callq 0xc4b0
jmp 0x7be38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x578(%rbp), %rdi
callq 0xc4b0
jmp 0x7be8b
movq -0xe0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x780(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x7a0f0
movb %al, -0x7a1(%rbp)
jmp 0x7be5a
movb -0x7a1(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0xc3e0
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
leaq -0x58(%rbp), %rdi
callq 0x25c90
jmp 0x7c0ba
leaq -0xc8(%rbp), %rdi
callq 0xc3e0
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
leaq -0x58(%rbp), %rdi
callq 0x25c90
jmp 0x7c856
movq -0x10(%rbp), %rdi
leaq 0x2ad0f(%rip), %rsi     # 0xa6bcb
callq 0x25b80
testb $0x1, %al
jne 0x7beca
jmp 0x7c08b
leaq -0x580(%rbp), %rdi
callq 0x839e0
leaq -0x588(%rbp), %rdi
callq 0x839e0
movq -0x20(%rbp), %rdi
leaq 0x2a6b7(%rip), %rsi     # 0xa65a4
callq 0x25b80
testb $0x1, %al
jne 0x7bef8
jmp 0x7bf4a
movq -0x780(%rbp), %rdi
addq $0x88, %rdi
callq 0x83a00
movq -0x780(%rbp), %rdi
movq %rax, -0x590(%rbp)
movq -0x590(%rbp), %rax
movq %rax, -0x580(%rbp)
addq $0x88, %rdi
callq 0x83900
movq %rax, -0x598(%rbp)
movq -0x598(%rbp), %rax
movq %rax, -0x588(%rbp)
jmp 0x7bf90
movq -0x780(%rbp), %rdi
addq $0x88, %rdi
movq -0x20(%rbp), %rsi
callq 0x83890
movq %rax, -0x5a0(%rbp)
movq -0x5a0(%rbp), %rax
movq %rax, -0x588(%rbp)
movq -0x588(%rbp), %rax
movq %rax, -0x580(%rbp)
leaq -0x588(%rbp), %rdi
callq 0x83a30
movq -0x580(%rbp), %rax
movq %rax, -0x5a8(%rbp)
leaq -0x5a8(%rbp), %rdi
leaq -0x588(%rbp), %rsi
callq 0x838d0
testb $0x1, %al
jne 0x7bfba
jmp 0x7c089
leaq -0x5f0(%rbp), %rax
movq %rax, -0x5f8(%rbp)
leaq -0x5f0(%rbp), %rax
movq %rax, -0x7c8(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x83930
movq %rax, %rdi
callq 0xc260
movq %rax, -0x7c0(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x83930
movq 0x20(%rax), %rax
movq %rax, -0x7b8(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x83930
movsd 0x30(%rax), %xmm0
movsd %xmm0, -0x7b0(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x83930
movq -0x7c8(%rbp), %rdi
movq -0x7c0(%rbp), %rdx
movq -0x7b8(%rbp), %rcx
movsd -0x7b0(%rbp), %xmm0
movq 0x28(%rax), %r8
leaq 0x2cc58(%rip), %rsi     # 0xa8cad
movb $0x1, %al
callq 0xc0f0
movq -0x28(%rbp), %rdi
leaq 0x2ca27(%rip), %rsi     # 0xa8a8e
leaq -0x5f8(%rbp), %rdx
callq 0x83a60
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x83a30
jmp 0x7bf9e
jmp 0x7c0b8
movq -0x10(%rbp), %rdi
leaq 0x2c499(%rip), %rsi     # 0xa852f
callq 0x25b80
testb $0x1, %al
jne 0x7c0a1
jmp 0x7c0b6
movq -0x780(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x7a480
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c0b8
jmp 0x7c0ba
jmp 0x7c848
cmpq $0x1, -0x18(%rbp)
jne 0x7c356
movq -0x10(%rbp), %rdi
leaq 0x2aa7e(%rip), %rsi     # 0xa6b53
callq 0x25b80
testb $0x1, %al
jne 0x7c0e3
jmp 0x7c1e1
leaq -0x618(%rbp), %rdi
movq %rdi, -0x7d8(%rbp)
callq 0xc960
movq -0x7d8(%rbp), %rcx
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2c988(%rip), %rsi     # 0xa8a94
callq 0x34b50
movb %al, -0x7c9(%rbp)
jmp 0x7c119
movb -0x7c9(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x7d9(%rbp)
jne 0x7c12e
jmp 0x7c1a5
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2c957(%rip), %rsi     # 0xa8a94
leaq -0x620(%rbp), %rcx
callq 0x83b60
movb %al, -0x7da(%rbp)
jmp 0x7c151
movb -0x7da(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x7d9(%rbp)
jne 0x7c166
jmp 0x7c1a5
movq -0x780(%rbp), %rdi
movq -0x620(%rbp), %rdx
leaq -0x618(%rbp), %rsi
movq $-0x1, %rcx
movsd 0x29226(%rip), %xmm0    # 0xa53b0
callq 0x7d080
movb %al, -0x7db(%rbp)
jmp 0x7c197
movb -0x7db(%rbp), %al
movb %al, -0x7d9(%rbp)
jmp 0x7c1a5
movb -0x7d9(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x618(%rbp), %rdi
callq 0xc3e0
jmp 0x7c351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x618(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
movq -0x10(%rbp), %rdi
leaq 0x2a9df(%rip), %rsi     # 0xa6bcb
callq 0x25b80
testb $0x1, %al
jne 0x7c1fa
jmp 0x7c34f
leaq -0x638(%rbp), %rdi
callq 0x838c0
movq -0x20(%rbp), %rdi
leaq 0x2a393(%rip), %rsi     # 0xa65a4
callq 0x25b80
testb $0x1, %al
jne 0x7c21c
jmp 0x7c244
movq -0x780(%rbp), %rdx
movq -0x28(%rbp), %rdi
addq $0xb8, %rdx
leaq 0x2c85f(%rip), %rsi     # 0xa8a94
callq 0x83c30
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c34d
movq -0x780(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x638(%rbp), %rdx
callq 0x7cf60
testb $0x1, %al
jne 0x7c261
jmp 0x7c282
movq -0x28(%rbp), %rdi
leaq -0x638(%rbp), %rdx
leaq 0x2c821(%rip), %rsi     # 0xa8a94
callq 0x83c30
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c34b
movq -0x28(%rbp), %rax
movq %rax, -0x7f0(%rbp)
movq -0x20(%rbp), %rdx
leaq 0x2ca25(%rip), %rsi     # 0xa8cbd
leaq -0x678(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x25900
movq -0x7e8(%rbp), %rsi
leaq 0x2bc54(%rip), %rdx     # 0xa7f0d
leaq -0x658(%rbp), %rdi
callq 0x2eef0
jmp 0x7c2c7
movq -0x7f0(%rbp), %rdi
leaq 0x2c7bf(%rip), %rsi     # 0xa8a94
leaq -0x658(%rbp), %rdx
callq 0x34c30
movb %al, -0x7f1(%rbp)
jmp 0x7c2e9
movb -0x7f1(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x658(%rbp), %rdi
callq 0xc3e0
leaq -0x678(%rbp), %rdi
callq 0xc3e0
jmp 0x7c34b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7c33a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x658(%rbp), %rdi
callq 0xc3e0
leaq -0x678(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
jmp 0x7c34d
jmp 0x7c34f
jmp 0x7c351
jmp 0x7c846
cmpq $0x2, -0x18(%rbp)
jne 0x7c5f1
movq -0x10(%rbp), %rdi
leaq 0x2a7e7(%rip), %rsi     # 0xa6b53
callq 0x25b80
testb $0x1, %al
jne 0x7c37a
jmp 0x7c478
leaq -0x698(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0xc960
movq -0x800(%rbp), %rcx
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2d020(%rip), %rsi     # 0xa93c3
callq 0x34b50
movb %al, -0x7f2(%rbp)
jmp 0x7c3b0
movb -0x7f2(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x801(%rbp)
jne 0x7c3c5
jmp 0x7c43c
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2cfef(%rip), %rsi     # 0xa93c3
leaq -0x6a0(%rbp), %rcx
callq 0x83b60
movb %al, -0x802(%rbp)
jmp 0x7c3e8
movb -0x802(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x801(%rbp)
jne 0x7c3fd
jmp 0x7c43c
movq -0x780(%rbp), %rdi
movq -0x6a0(%rbp), %rcx
leaq -0x698(%rbp), %rsi
movq $-0x1, %rdx
movsd 0x28f8f(%rip), %xmm0    # 0xa53b0
callq 0x7d080
movb %al, -0x803(%rbp)
jmp 0x7c42e
movb -0x803(%rbp), %al
movb %al, -0x801(%rbp)
jmp 0x7c43c
movb -0x801(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x698(%rbp), %rdi
callq 0xc3e0
jmp 0x7c5ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x698(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
movq -0x10(%rbp), %rdi
leaq 0x2a748(%rip), %rsi     # 0xa6bcb
callq 0x25b80
testb $0x1, %al
jne 0x7c491
jmp 0x7c5ea
leaq -0x6b8(%rbp), %rdi
callq 0x838c0
movq -0x20(%rbp), %rdi
leaq 0x2a0fc(%rip), %rsi     # 0xa65a4
callq 0x25b80
testb $0x1, %al
jne 0x7c4b3
jmp 0x7c4db
movq -0x780(%rbp), %rdx
movq -0x28(%rbp), %rdi
addq $0xc0, %rdx
leaq 0x2cef7(%rip), %rsi     # 0xa93c3
callq 0x83c30
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c5e8
movq -0x780(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x6b8(%rbp), %rdx
callq 0x7cf60
testb $0x1, %al
jne 0x7c4f8
jmp 0x7c51d
movq -0x28(%rbp), %rdi
leaq -0x6b8(%rbp), %rdx
addq $0x8, %rdx
leaq 0x2ceb5(%rip), %rsi     # 0xa93c3
callq 0x83c30
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c5e6
movq -0x28(%rbp), %rax
movq %rax, -0x818(%rbp)
movq -0x20(%rbp), %rdx
leaq 0x2c78a(%rip), %rsi     # 0xa8cbd
leaq -0x6f8(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x25900
movq -0x810(%rbp), %rsi
leaq 0x2b9b9(%rip), %rdx     # 0xa7f0d
leaq -0x6d8(%rbp), %rdi
callq 0x2eef0
jmp 0x7c562
movq -0x818(%rbp), %rdi
leaq 0x2ce53(%rip), %rsi     # 0xa93c3
leaq -0x6d8(%rbp), %rdx
callq 0x34c30
movb %al, -0x819(%rbp)
jmp 0x7c584
movb -0x819(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0xc3e0
leaq -0x6f8(%rbp), %rdi
callq 0xc3e0
jmp 0x7c5e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7c5d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0xc3e0
leaq -0x6f8(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
jmp 0x7c5e8
jmp 0x7c5ea
jmp 0x7c5ec
jmp 0x7c844
cmpq $0x3, -0x18(%rbp)
jne 0x7c842
movq -0x10(%rbp), %rdi
leaq 0x2a54c(%rip), %rsi     # 0xa6b53
callq 0x25b80
testb $0x1, %al
jne 0x7c615
jmp 0x7c70f
leaq -0x718(%rbp), %rdi
movq %rdi, -0x828(%rbp)
callq 0xc960
movq -0x828(%rbp), %rcx
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2c45c(%rip), %rsi     # 0xa8a9a
callq 0x34b50
movb %al, -0x81a(%rbp)
jmp 0x7c64b
movb -0x81a(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x829(%rbp)
jne 0x7c660
jmp 0x7c6d3
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2c42b(%rip), %rsi     # 0xa8a9a
leaq -0x720(%rbp), %rcx
callq 0x83d30
movb %al, -0x82a(%rbp)
jmp 0x7c683
movb -0x82a(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x829(%rbp)
jne 0x7c698
jmp 0x7c6d3
movq -0x780(%rbp), %rdi
movsd -0x720(%rbp), %xmm0
leaq -0x718(%rbp), %rsi
movq $-0x1, %rcx
movq %rcx, %rdx
callq 0x7d080
movb %al, -0x82b(%rbp)
jmp 0x7c6c5
movb -0x82b(%rbp), %al
movb %al, -0x829(%rbp)
jmp 0x7c6d3
movb -0x829(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x718(%rbp), %rdi
callq 0xc3e0
jmp 0x7c840
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x718(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
movq -0x10(%rbp), %rdi
leaq 0x2a4b1(%rip), %rsi     # 0xa6bcb
callq 0x25b80
testb $0x1, %al
jne 0x7c728
jmp 0x7c83e
leaq -0x738(%rbp), %rdi
callq 0x838c0
movq -0x780(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x738(%rbp), %rdx
callq 0x7cf60
testb $0x1, %al
jne 0x7c751
jmp 0x7c776
movq -0x28(%rbp), %rdi
leaq -0x738(%rbp), %rdx
addq $0x10, %rdx
leaq 0x2c333(%rip), %rsi     # 0xa8a9a
callq 0x83e00
andb $0x1, %al
movb %al, -0x29(%rbp)
jmp 0x7c83c
movq -0x28(%rbp), %rax
movq %rax, -0x840(%rbp)
movq -0x20(%rbp), %rdx
leaq 0x2c531(%rip), %rsi     # 0xa8cbd
leaq -0x778(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x25900
movq -0x838(%rbp), %rsi
leaq 0x2b760(%rip), %rdx     # 0xa7f0d
leaq -0x758(%rbp), %rdi
callq 0x2eef0
jmp 0x7c7bb
movq -0x840(%rbp), %rdi
leaq 0x2c2d1(%rip), %rsi     # 0xa8a9a
leaq -0x758(%rbp), %rdx
callq 0x34c30
movb %al, -0x841(%rbp)
jmp 0x7c7dd
movb -0x841(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
leaq -0x758(%rbp), %rdi
callq 0xc3e0
leaq -0x778(%rbp), %rdi
callq 0xc3e0
jmp 0x7c83c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7c82e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x758(%rbp), %rdi
callq 0xc3e0
leaq -0x778(%rbp), %rdi
callq 0xc3e0
jmp 0x7c856
jmp 0x7c83e
jmp 0x7c840
jmp 0x7c842
jmp 0x7c844
jmp 0x7c846
jmp 0x7c848
movb -0x29(%rbp), %al
andb $0x1, %al
addq $0x850, %rsp            # imm = 0x850
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0xcba0
nop