// File: demon386[P]git-store/./libs/filesystem/src/operations.cpp
// Function: boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)
void directory_iterator_increment(directory_iterator& it,
    system::error_code* ec)
  {
    BOOST_ASSERT_MSG(it.m_imp.get(), "attempt to increment end iterator");
    BOOST_ASSERT_MSG(it.m_imp->handle != 0, "internal program error");
    
    path::string_type filename;
    file_status file_stat, symlink_file_stat;
    system::error_code temp_ec;

    for (;;)
    {
      temp_ec = dir_itr_increment(it.m_imp->handle,
#       if defined(BOOST_POSIX_API)
        it.m_imp->buffer,
#       endif
        filename, file_stat, symlink_file_stat);

      if (temp_ec)  // happens if filesystem is corrupt, such as on a damaged optical disc
      {
        path error_path(it.m_imp->dir_entry.path().parent_path());  // fix ticket #5900
        it.m_imp.reset();
        if (ec == 0)
          BOOST_FILESYSTEM_THROW(
            filesystem_error("boost::filesystem::directory_iterator::operator++",
              error_path,
              error_code(BOOST_ERRNO, system_category())));
        ec->assign(BOOST_ERRNO, system_category());
        return;
      }
      else if (ec != 0) ec->clear();

      if (it.m_imp->handle == 0)  // eof, make end
      {
        it.m_imp.reset();
        return;
      }

      if (!(filename[0] == dot // !(dot or dot-dot)
        && (filename.size()== 1
          || (filename[1] == dot
            && filename.size()== 2))))
      {
        it.m_imp->dir_entry.replace_filename(
          filename, file_stat, symlink_file_stat);
        return;
      }
    }
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0x4e200
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x101(%rbp)
je 0x4ca97
movb $0x1, %al
movb %al, -0x101(%rbp)
jmp 0x4ca97
movb -0x101(%rbp), %al
testb $0x1, %al
jne 0x4caa3
jmp 0x4caa5
jmp 0x4cac4
leaq 0x165eb(%rip), %rdi     # 0x63097
leaq 0x16074(%rip), %rsi     # 0x62b27
movl $0x8ab, %edx            # imm = 0x8AB
leaq 0x16610(%rip), %rcx     # 0x630cf
callq 0xd400
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, 0x30(%rcx)
movb %al, -0x102(%rbp)
je 0x4cae9
movb $0x1, %al
movb %al, -0x102(%rbp)
jmp 0x4cae9
movb -0x102(%rbp), %al
testb $0x1, %al
jne 0x4caf5
jmp 0x4caf7
jmp 0x4cb16
leaq 0x16651(%rip), %rdi     # 0x6314f
leaq 0x16022(%rip), %rsi     # 0x62b27
movl $0x8ac, %edx            # imm = 0x8AC
leaq 0x165be(%rip), %rcx     # 0x630cf
callq 0xd400
leaq -0x30(%rbp), %rdi
callq 0xd8f0
leaq -0x38(%rbp), %rdi
callq 0x4e0a0
jmp 0x4cb2a
leaq -0x4c(%rbp), %rdi
callq 0x4e0a0
jmp 0x4cb35
leaq -0x60(%rbp), %rdi
callq 0x4d4a0
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, -0x110(%rbp)
jmp 0x4cb50
movq -0x110(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x120(%rbp)
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, -0x118(%rbp)
jmp 0x4cb74
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rsi
addq $0x38, %rsi
leaq -0x30(%rbp), %rdx
leaq -0x38(%rbp), %rcx
leaq -0x4c(%rbp), %r8
callq 0x4cf30
movq %rdx, -0x130(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4cba6
movq -0x130(%rbp), %rax
movl -0x124(%rbp), %ecx
movl %ecx, -0x70(%rbp)
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x4d830
cmpq $0x0, %rax
je 0x4cda0
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, -0x138(%rbp)
jmp 0x4cbef
movq -0x138(%rbp), %rdi
callq 0x4e080
movq %rax, -0x140(%rbp)
jmp 0x4cc04
movq -0x140(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x50ae0
jmp 0x4cc19
movq -0x8(%rbp), %rdi
callq 0x4e110
cmpq $0x0, -0x10(%rbp)
jne 0x4cd53
movb $0x1, -0xc9(%rbp)
movl $0x50, %edi
callq 0xd2b0
movq %rax, -0x150(%rbp)
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0xdb50
movq -0x148(%rbp), %rdx
leaq 0x1651d(%rip), %rsi     # 0x63183
leaq -0xb0(%rbp), %rdi
callq 0xd8b0
jmp 0x4cc74
callq 0xd070
movl (%rax), %eax
movl %eax, -0x154(%rbp)
callq 0x53ec0
movl -0x154(%rbp), %esi
movq %rax, %rdx
leaq -0xc8(%rbp), %rdi
callq 0x4d680
movq -0x150(%rbp), %rdi
movl -0xc8(%rbp), %ecx
movq -0xc0(%rbp), %r8
leaq -0xb0(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0x4d6b0
movq -0x150(%rbp), %rdi
movb $0x0, -0xc9(%rbp)
leaq 0x40881(%rip), %rsi     # 0x8d558
leaq 0xae2(%rip), %rdx       # 0x4d7c0
callq 0xdad0
jmp 0x4cf21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4cf0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x4cd1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0xdca8
leaq -0xb1(%rbp), %rdi
callq 0xd6b0
testb $0x1, -0xc9(%rbp)
jne 0x4cd36
jmp 0x4cd42
movq -0x150(%rbp), %rdi
callq 0xd460
leaq -0x90(%rbp), %rdi
callq 0x4d550
jmp 0x4cf0f
movq -0x10(%rbp), %rax
movq %rax, -0x160(%rbp)
callq 0xd070
movl (%rax), %eax
movl %eax, -0x158(%rbp)
callq 0x53ec0
movq -0x160(%rbp), %rdi
movl -0x158(%rbp), %esi
movq %rax, %rdx
callq 0x4d800
movl $0x1, -0xd0(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x4d550
jmp 0x4cefd
cmpq $0x0, -0x10(%rbp)
je 0x4cdb0
movq -0x10(%rbp), %rdi
callq 0x4d9e0
jmp 0x4cdb2
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, -0x168(%rbp)
jmp 0x4cdc4
movq -0x168(%rbp), %rax
cmpq $0x0, 0x30(%rax)
jne 0x4cdea
movq -0x8(%rbp), %rdi
callq 0x4e110
movl $0x1, -0xd0(%rbp)
jmp 0x4cefd
xorl %eax, %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0xdc50
movq %rax, -0x170(%rbp)
jmp 0x4ce00
movq -0x170(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x4ce5b
leaq -0x30(%rbp), %rdi
callq 0xd430
cmpq $0x1, %rax
je 0x4cef8
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0xdc50
movq %rax, -0x178(%rbp)
jmp 0x4ce39
movq -0x178(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x4ce5b
leaq -0x30(%rbp), %rdi
callq 0xd430
cmpq $0x2, %rax
je 0x4cef8
movq -0x8(%rbp), %rdi
callq 0x4e0c0
movq %rax, -0x180(%rbp)
jmp 0x4ce6d
movq -0x180(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4e1a0
jmp 0x4ce8d
movq -0x188(%rbp), %rdi
movq -0x38(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x4c(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0xf8(%rbp), %rdx
movq -0x100(%rbp), %rcx
leaq -0xf0(%rbp), %rsi
callq 0x4e220
jmp 0x4cec6
leaq -0xf0(%rbp), %rdi
callq 0x4d550
movl $0x1, -0xd0(%rbp)
jmp 0x4cefd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4d550
jmp 0x4cf0f
jmp 0x4cb3e
leaq -0x30(%rbp), %rdi
callq 0xdca8
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0xdca8
movq -0x40(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)