// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
cmpq $0x0, (%rdi)
je 0x2480f
movq %rsi, %r13
movq %rdi, %rbx
callq 0x24cac
cmpq $0x0, 0x30(%rax)
je 0x2482e
leaq -0x78(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
callq 0x2761f
movl $0x0, -0x34(%rbp)
movl $0x0, -0x30(%rbp)
movq %rbx, -0x48(%rbp)
movq %rbx, %rdi
callq 0x24cac
movq %rax, %r15
movq %rbx, %rdi
callq 0x24cac
movq 0x38(%rax), %r12
testq %r12, %r12
je 0x247f0
movq %rax, %rbx
addq $0x30, %r15
movq (%r15), %r14
callq 0xc060
movq %rax, -0x40(%rbp)
andl $0x0, (%rax)
pushq $0x44
popq %rdi
callq 0xc340
testq %rax, %rax
js 0x24655
movq %r14, %rdi
movq %r12, %rsi
leaq -0x68(%rbp), %rdx
callq 0xc170
testl %eax, %eax
je 0x2467e
movq -0x40(%rbp), %rax
movl (%rax), %ebx
callq 0x2761f
jmp 0x246ee
andq $0x0, -0x68(%rbp)
movq %r14, %rdi
callq 0xc2d0
testq %rax, %rax
je 0x246d2
leaq 0x13(%r12), %rdi
addq $0x13, %rax
movq %rax, %rsi
callq 0xc490
movq %r12, -0x68(%rbp)
jmp 0x24685
cmpq $0x0, -0x68(%rbp)
je 0x246dd
leaq 0x13(%r12), %rsi
leaq -0x88(%rbp), %rdi
callq 0xc8f0
movb 0x12(%r12), %al
rorb %al
addb $-0x2, %al
xorl %edx, %edx
movl $0x0, %ecx
cmpb $0x3, %al
ja 0x246c4
movzbl %al, %eax
shll $0x2, %eax
leaq 0xb449(%rip), %rcx      # 0x2fb00
movl (%rax,%rcx), %edx
leaq 0xb44f(%rip), %rcx      # 0x2fb10
movl (%rax,%rcx), %ecx
movl %ecx, -0x30(%rbp)
movl %edx, -0x34(%rbp)
movl 0x24f18(%rip), %ebx     # 0x495e8
jmp 0x246ee
movq -0x40(%rbp), %rax
movl (%rax), %eax
jmp 0x24641
addq $0x38, %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x242e4
movl %eax, %ebx
testl %ebx, %ebx
jne 0x24783
testq %r13, %r13
movq -0x48(%rbp), %rbx
je 0x24707
movq %r13, %rdi
callq 0x24b32
movq %rbx, %rdi
callq 0x24cac
cmpq $0x0, 0x30(%rax)
je 0x247ca
movq -0x88(%rbp), %rax
cmpb $0x2e, (%rax)
jne 0x24744
movq -0x80(%rbp), %rcx
cmpq $0x1, %rcx
je 0x245ef
cmpq $0x2, %rcx
jne 0x24744
cmpb $0x2e, 0x1(%rax)
je 0x245ef
movq %rbx, %rdi
callq 0x24cac
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xc660
movl -0x30(%rbp), %edx
movabsq $0xffff00000000, %rax   # imm = 0xFFFF00000000
orq %rax, %rdx
movl -0x34(%rbp), %ecx
orq %rax, %rcx
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0x24d06
jmp 0x247bf
movq -0x48(%rbp), %rbx
movq %rbx, %rdi
callq 0x24cac
leaq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0x25ede
movq %rbx, %rdi
callq 0x24cd8
testq %r13, %r13
je 0x2484d
movq -0x40(%rbp), %rax
movl (%rax), %ebx
callq 0x2761f
movl %ebx, (%r13)
movq %rax, 0x8(%r13)
leaq -0x68(%rbp), %rdi
callq 0xc9a0
jmp 0x247d2
movq %rbx, %rdi
callq 0x24cd8
leaq -0x88(%rbp), %rdi
callq 0xc9a0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xbc96(%rip), %rdi      # 0x3048d
leaq 0xb38b(%rip), %rsi      # 0x2fb89
leaq 0xbc94(%rip), %rcx      # 0x30499
movl $0x7db, %edx            # imm = 0x7DB
callq 0xc350
leaq 0xb852(%rip), %rdi      # 0x30068
leaq 0xb36c(%rip), %rsi      # 0x2fb89
leaq 0xb87c(%rip), %rcx      # 0x300a0
movl $0x8ab, %edx            # imm = 0x8AB
callq 0xc350
leaq 0xb8d4(%rip), %rdi      # 0x30109
leaq 0xb34d(%rip), %rsi      # 0x2fb89
leaq 0xb85d(%rip), %rcx      # 0x300a0
movl $0x8ac, %edx            # imm = 0x8AC
callq 0xc350
pushq $0x50
popq %rdi
callq 0xc250
movq %rax, %r14
leaq 0xb8de(%rip), %rsi      # 0x3013d
leaq -0xa8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xc1b0
movq -0x40(%rbp), %rax
movl (%rax), %ebx
callq 0x2761f
leaq -0xa8(%rbp), %rsi
leaq -0x68(%rbp), %rdx
movq %r14, %rdi
movl %ebx, %ecx
movq %rax, %r8
callq 0x24a48
leaq 0x23cef(%rip), %rsi     # 0x48588
leaq 0x248(%rip), %rdx       # 0x24ae8
movq %r14, %rdi
callq 0xc810
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
callq 0xc9a0
jmp 0x248cb
movq %rax, %rbx
movq %r14, %rdi
callq 0xc390
jmp 0x248cb
jmp 0x248d8
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0xc9a0
jmp 0x248db
jmp 0x248d8
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0xc9a0
movq %rbx, %rdi
callq 0xc850
nop