// File: demon386[P]git-store/./libs/filesystem/src/operations.cpp
// Function: boost::filesystem::detail::copy(boost::filesystem::path const&, boost::filesystem::path const&, boost::system::error_code*)
BOOST_FILESYSTEM_DECL
  void copy(const path& from, const path& to, system::error_code* ec)
  {
    file_status s(symlink_status(from, *ec));
    if (ec != 0 && *ec) return;

    if(is_symlink(s))
    {
      copy_symlink(from, to, *ec);
    }
    else if(is_directory(s))
    {
      copy_directory(from, to, *ec);
    }
    else if(is_regular_file(s))
    {
      copy_file(from, to, fs::copy_option::fail_if_exists, *ec);
    }
    else
    {
      if (ec == 0)
        BOOST_FILESYSTEM_THROW(filesystem_error("boost::filesystem::copy",
          from, to, error_code(BOOST_ERROR_NOT_SUPPORTED, system_category())));
      ec->assign(BOOST_ERROR_NOT_SUPPORTED, system_category());
    }
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x4da10
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x48aa3
movq -0x18(%rbp), %rdi
callq 0x4d830
cmpq $0x0, %rax
je 0x48aa3
jmp 0x48c5a
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x4d950
testb $0x1, %al
jne 0x48aba
jmp 0x48ad0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x4da40
jmp 0x48c5a
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x4da70
testb $0x1, %al
jne 0x48ae7
jmp 0x48afd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x4daa0
jmp 0x48c58
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4dad0
testb $0x1, %al
jne 0x48b14
jmp 0x48b2c
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rcx
xorl %edx, %edx
callq 0x4db00
jmp 0x48c56
cmpq $0x0, -0x18(%rbp)
jne 0x48c32
movb $0x1, -0x81(%rbp)
movl $0x50, %edi
callq 0xd2b0
movq %rax, -0x98(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0xdb50
movq -0x90(%rbp), %rdx
leaq 0x1a03b(%rip), %rsi     # 0x62ba8
leaq -0x58(%rbp), %rdi
callq 0xd8b0
jmp 0x48b78
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
callq 0x53ec0
movq %rax, %rdx
leaq -0x80(%rbp), %rdi
movl $0x26, %esi
callq 0x4d680
movq -0xa8(%rbp), %rdx
movq -0xa0(%rbp), %rcx
movq -0x98(%rbp), %rdi
movl -0x80(%rbp), %r8d
movq -0x78(%rbp), %r9
leaq -0x58(%rbp), %rsi
callq 0x4db40
movq -0x98(%rbp), %rdi
movb $0x0, -0x81(%rbp)
leaq 0x44979(%rip), %rsi     # 0x8d558
leaq 0x4bda(%rip), %rdx      # 0x4d7c0
callq 0xdad0
jmp 0x48c6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x48c10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xdca8
leaq -0x59(%rbp), %rdi
callq 0xd6b0
testb $0x1, -0x81(%rbp)
jne 0x48c24
jmp 0x48c30
movq -0x98(%rbp), %rdi
callq 0xd460
jmp 0x48c63
movq -0x18(%rbp), %rax
movq %rax, -0xb0(%rbp)
callq 0x53ec0
movq -0xb0(%rbp), %rdi
movq %rax, %rdx
movl $0x26, %esi
callq 0x4d800
jmp 0x48c58
jmp 0x48c5a
addq $0xb0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0xdb30
nopl (%rax)