// File: /workspace/github_cpp_makefile_star2_O1/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
movq (%rdi), %rax
testq %rax, %rax
je 0x29552
cmpq $0x0, 0x30(%rax)
je 0x29571
movq %rsi, %r13
movq %rdi, %r14
leaq -0x78(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
callq 0x2c80a
movq %r14, -0x40(%rbp)
movq (%r14), %r12
testq %r12, %r12
je 0x293ee
movq $0x0, -0x68(%rbp)
movl $0x0, -0x2c(%rbp)
movq 0x38(%r12), %r15
testq %r15, %r15
je 0x29533
leaq 0x30(%r12), %rbx
movq (%rbx), %r14
callq 0xb060
movq %rax, -0x38(%rbp)
movl $0x0, (%rax)
movl $0x44, %edi
callq 0xb300
testq %rax, %rax
js 0x292cc
movq %r14, %rdi
movq %r15, %rsi
leaq -0x60(%rbp), %rdx
callq 0xb190
jmp 0x292ff
movq $0x0, -0x60(%rbp)
movq %r14, %rdi
callq 0xb2a0
testq %rax, %rax
je 0x292f9
leaq 0x13(%r15), %rdi
addq $0x13, %rax
movq %rax, %rsi
callq 0xb420
movq %r15, -0x60(%rbp)
xorl %eax, %eax
jmp 0x292ff
movq -0x38(%rbp), %rax
movl (%rax), %eax
testl %eax, %eax
je 0x29310
movq -0x38(%rbp), %rax
movl (%rax), %ebx
callq 0x2c80a
jmp 0x2938b
cmpq $0x0, -0x60(%rbp)
je 0x2937a
leaq 0x13(%r15), %rbx
movq -0x80(%rbp), %r14
movq %rbx, %rdi
callq 0xb200
leaq -0x88(%rbp), %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %rbx, %rcx
movq %rax, %r8
callq 0xb6f0
movb 0x12(%r15), %al
rorb %al
addb $-0x2, %al
xorl %ecx, %ecx
movl $0x0, %edx
cmpb $0x3, %al
ja 0x2936b
movzbl %al, %eax
shll $0x2, %eax
leaq 0xc6f2(%rip), %rcx      # 0x35a50
movl (%rax,%rcx), %ecx
leaq 0xc6f8(%rip), %rdx      # 0x35a60
movl (%rax,%rdx), %edx
movq %rdx, -0x68(%rbp)
movl %ecx, -0x2c(%rbp)
movl 0x23238(%rip), %ebx     # 0x4c5b0
jmp 0x2938b
addq $0x38, %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0x28e35
movl %eax, %ebx
testl %ebx, %ebx
jne 0x29467
testq %r13, %r13
je 0x293a9
movl $0x0, (%r13)
callq 0x2c80a
movq %rax, 0x8(%r13)
movq -0x40(%rbp), %rdx
movq (%rdx), %r15
testq %r15, %r15
je 0x293ee
cmpq $0x0, 0x30(%r15)
je 0x294e3
movq -0x88(%rbp), %rsi
cmpb $0x2e, (%rsi)
jne 0x2940d
movq -0x80(%rbp), %rax
cmpq $0x1, %rax
je 0x293e2
cmpq $0x2, %rax
jne 0x2940d
cmpb $0x2e, 0x1(%rsi)
jne 0x2940d
movq (%rdx), %r12
testq %r12, %r12
jne 0x29287
leaq 0x923f(%rip), %rdi      # 0x32634
leaq 0x9240(%rip), %rsi      # 0x3263c
leaq 0xd032(%rip), %rcx      # 0x36435
movl $0x2af, %edx            # imm = 0x2AF
callq 0xb310
leaq -0x50(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
leaq -0x60(%rbp), %rdi
callq 0xfa18
movq %r15, %rdi
callq 0x2a6ce
movl -0x2c(%rbp), %ebx
leaq -0x60(%rbp), %rsi
movq %r15, %rdi
callq 0x2a134
movl -0x68(%rbp), %eax
movabsq $0xffff00000000, %rcx   # imm = 0xFFFF00000000
orq %rcx, %rax
movl %ebx, %edx
orq %rcx, %rdx
movq %rax, 0x20(%r15)
movq %rdx, 0x28(%r15)
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
jne 0x294dc
jmp 0x2950c
movq -0x40(%rbp), %rax
movq (%rax), %rsi
testq %rsi, %rsi
je 0x293ee
leaq -0x60(%rbp), %rdi
callq 0x2ac84
xorps %xmm0, %xmm0
leaq -0xa8(%rbp), %rdi
movaps %xmm0, -0x8(%rdi)
movq -0x40(%rbp), %rdx
movq (%rdx), %rax
movq %rax, -0x8(%rdi)
movq $0x0, (%rdx)
movq 0x8(%rdx), %rax
movq (%rdi), %rcx
movq %rcx, 0x8(%rdx)
movq %rax, (%rdi)
callq 0xf5d6
testq %r13, %r13
je 0x29590
movq -0x38(%rbp), %rax
movl (%rax), %ebx
callq 0x2c80a
movl %ebx, (%r13)
movq %rax, 0x8(%r13)
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2950c
callq 0xb430
jmp 0x2950c
xorps %xmm0, %xmm0
leaq -0x58(%rbp), %rdi
movaps %xmm0, -0x8(%rdi)
movq %r15, -0x8(%rdi)
movq $0x0, (%rdx)
movq 0x8(%rdx), %rax
movq (%rdi), %rcx
movq %rcx, 0x8(%rdx)
movq %rax, (%rdi)
callq 0xf5d6
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x29521
callq 0xb430
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xce79(%rip), %rdi      # 0x363b3
leaq 0xc598(%rip), %rsi      # 0x35ad9
leaq 0xce77(%rip), %rcx      # 0x363bf
movl $0x7db, %edx            # imm = 0x7DB
callq 0xb310
leaq 0xca5f(%rip), %rdi      # 0x35fb8
leaq 0xc579(%rip), %rsi      # 0x35ad9
leaq 0xca89(%rip), %rcx      # 0x35ff0
movl $0x8ab, %edx            # imm = 0x8AB
callq 0xb310
leaq 0xcae1(%rip), %rdi      # 0x36059
leaq 0xc55a(%rip), %rsi      # 0x35ad9
leaq 0xca6a(%rip), %rcx      # 0x35ff0
movl $0x8ac, %edx            # imm = 0x8AC
callq 0xb310
movl $0x50, %edi
callq 0xb250
movq %rax, %r14
leaq -0xa0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xcade(%rip), %rsi      # 0x3608d
leaq 0xcb08(%rip), %rdx      # 0x360be
leaq -0xb0(%rbp), %rdi
callq 0xf97e
movq -0x38(%rbp), %rax
movl (%rax), %ebx
callq 0x2c80a
leaq -0xb0(%rbp), %rsi
leaq -0x60(%rbp), %rdx
movq %r14, %rdi
movl %ebx, %ecx
movq %rax, %r8
callq 0x29772
leaq 0x21f7c(%rip), %rsi     # 0x4b568
leaq 0x269(%rip), %rdx       # 0x2985c
movq %r14, %rdi
callq 0xb7b0
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
cmpq %r15, %rdi
je 0x2960f
callq 0xb430
xorl %eax, %eax
jmp 0x29618
movq %rax, %rbx
movb $0x1, %al
testb %al, %al
je 0x29624
movq %r14, %rdi
callq 0xb360
leaq -0x50(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x29643
jmp 0x2964d
jmp 0x2964a
jmp 0x2964a
movq %rax, %rbx
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0x2964d
callq 0xb430
jmp 0x2964d
movq %rax, %rbx
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x29662
callq 0xb430
movq %rbx, %rdi
callq 0xb7f0