// File: demon386[P]git-store/./libs/filesystem/src/operations.cpp
// Function: boost::filesystem::detail::current_path(boost::system::error_code*)
BOOST_FILESYSTEM_DECL
  path current_path(error_code* ec)
  {
#   ifdef BOOST_POSIX_API
    path cur;
    for (long path_max = 128;; path_max *=2)// loop 'til buffer large enough
    {
      boost::scoped_array<char>
        buf(new char[static_cast<std::size_t>(path_max)]);
      if (::getcwd(buf.get(), static_cast<std::size_t>(path_max))== 0)
      {
        if (error(errno != ERANGE ? errno : 0
      // bug in some versions of the Metrowerks C lib on the Mac: wrong errno set 
#         if defined(__MSL__) && (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
          && errno != 0
#         endif
          , ec, "boost::filesystem::current_path"))
        {
          break;
        }
      }
      else
      {
        cur = buf.get();
        if (ec != 0) ec->clear();
        break;
      }
    }
    return cur;

#   else
    DWORD sz;
    if ((sz = ::GetCurrentDirectoryW(0, NULL)) == 0)sz = 1;
    boost::scoped_array<path::value_type> buf(new path::value_type[sz]);
    error(::GetCurrentDirectoryW(sz, buf.get()) == 0 ? BOOST_ERRNO : 0, ec,
      "boost::filesystem::current_path");
    return path(buf.get());
#   endif
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x70(%rbp)
movq %rdi, %rax
movq %rax, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x4d620
movq $0x80, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xd030
movq %rax, -0x78(%rbp)
jmp 0x49d3e
movq -0x78(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x4dd00
leaq -0x28(%rbp), %rdi
callq 0x4dd20
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0xd2e0
cmpq $0x0, %rax
jne 0x49e4d
callq 0xd070
cmpl $0x22, (%rax)
je 0x49d80
callq 0xd070
movl (%rax), %eax
movl %eax, -0x7c(%rbp)
jmp 0x49d87
xorl %eax, %eax
movl %eax, -0x7c(%rbp)
jmp 0x49d87
movl -0x7c(%rbp), %eax
movl %eax, -0x94(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0xdb50
movq -0x88(%rbp), %rdx
leaq 0x18fb6(%rip), %rsi     # 0x62d6f
leaq -0x58(%rbp), %rdi
callq 0xd8b0
jmp 0x49dc4
movq -0x90(%rbp), %rsi
movl -0x94(%rbp), %edi
leaq -0x58(%rbp), %rdx
callq 0x49f00
movb %al, -0x95(%rbp)
jmp 0x49de2
leaq -0x58(%rbp), %rdi
callq 0xdca8
leaq -0x59(%rbp), %rdi
callq 0xd6b0
movb -0x95(%rbp), %al
testb $0x1, %al
jne 0x49e00
jmp 0x49e4b
movl $0x2, -0x60(%rbp)
jmp 0x49e94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x49eec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x49e40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xdca8
leaq -0x59(%rbp), %rdi
callq 0xd6b0
jmp 0x49eba
jmp 0x49e8d
leaq -0x28(%rbp), %rdi
callq 0x4dd20
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x4dd40
jmp 0x49e64
cmpq $0x0, -0x10(%rbp)
je 0x49e84
movq -0x10(%rbp), %rdi
callq 0x4d9e0
jmp 0x49e84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x49eba
movl $0x2, -0x60(%rbp)
jmp 0x49e94
movl $0x0, -0x60(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4dd70
movl -0x60(%rbp), %eax
testl %eax, %eax
je 0x49ea8
jmp 0x49ea6
jmp 0x49ec5
jmp 0x49eaa
movq -0x20(%rbp), %rax
shlq %rax
movq %rax, -0x20(%rbp)
jmp 0x49d2f
leaq -0x28(%rbp), %rdi
callq 0x4dd70
jmp 0x49eec
movb $0x1, -0x11(%rbp)
movl $0x1, -0x60(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x49edf
movq -0x70(%rbp), %rdi
callq 0x4d550
movq -0x68(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x4d550
movq -0x30(%rbp), %rdi
callq 0xdb30
nop