// File: /workspace/github_cpp_makefile_star2_O1/f18m[P]boost-intrusive-pool/include/boost_intrusive_pool.hpp
// Function: memorypool::boost_intrusive_pool<DummyInt>::impl::check()
void check()
        {
            if (m_first_arena) {
                // this memory pool has been correctly initialized
                assert(m_last_arena);
                assert(m_total_count > 0);

                // this condition should hold at any time:
                assert(m_free_count + m_inuse_count == m_total_count);
                if (is_bounded()) {
                    // when the memory pool is bounded it contains only 1 arena of a fixed size:
                    assert(m_first_arena == m_last_arena);
                } else {
                    // infinite or max size memory pool: either we have a valid free element or the last malloc() must
                    // have failed or the maximum size has been reached:
                    assert(m_first_free_item != nullptr || m_memory_exhausted);
                }
            } else {
                // this memory pool has just been cleared with clear() apparently:
                assert(!m_last_arena);
                assert(!m_first_free_item);
                assert(m_free_count == 0);
                assert(m_inuse_count == 0);
                assert(m_total_count == 0);
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x40(%rdi)
movq 0x48(%rdi), %rax
je 0x56081
testq %rax, %rax
je 0x560e9
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x56108
movq 0x68(%rbx), %rcx
addq 0x60(%rbx), %rcx
cmpq %rax, %rcx
jne 0x56127
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x18(%rax)
testb %al, %al
je 0x560d1
movq 0x40(%rbx), %rax
cmpq 0x48(%rbx), %rax
je 0x560e2
leaq 0xab2b(%rip), %rdi      # 0x60b94
leaq 0xa373(%rip), %rsi      # 0x603e3
leaq 0xaa8c(%rip), %rcx      # 0x60b03
movl $0x30d, %edx            # imm = 0x30D
callq 0xf2f0
testq %rax, %rax
jne 0x56146
cmpq $0x0, 0x50(%rbx)
jne 0x56165
cmpq $0x0, 0x60(%rbx)
jne 0x56184
cmpq $0x0, 0x68(%rbx)
jne 0x561a3
cmpq $0x0, 0x70(%rbx)
je 0x560e2
leaq 0xab3f(%rip), %rdi      # 0x60bf8
leaq 0xa323(%rip), %rsi      # 0x603e3
leaq 0xaa3c(%rip), %rcx      # 0x60b03
movl $0x319, %edx            # imm = 0x319
callq 0xf2f0
cmpq $0x0, 0x50(%rbx)
jne 0x560e2
cmpb $0x0, 0x58(%rbx)
je 0x561c2
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xaab5(%rip), %rdi      # 0x60ba5
leaq 0xa2ec(%rip), %rsi      # 0x603e3
leaq 0xaa05(%rip), %rcx      # 0x60b03
movl $0x306, %edx            # imm = 0x306
callq 0xf2f0
leaq 0xaa45(%rip), %rdi      # 0x60b54
leaq 0xa2cd(%rip), %rsi      # 0x603e3
leaq 0xa9e6(%rip), %rcx      # 0x60b03
movl $0x307, %edx            # imm = 0x307
callq 0xf2f0
leaq 0xaa38(%rip), %rdi      # 0x60b66
leaq 0xa2ae(%rip), %rsi      # 0x603e3
leaq 0xa9c7(%rip), %rcx      # 0x60b03
movl $0x30a, %edx            # imm = 0x30A
callq 0xf2f0
leaq 0xaa65(%rip), %rdi      # 0x60bb2
leaq 0xa28f(%rip), %rsi      # 0x603e3
leaq 0xa9a8(%rip), %rcx      # 0x60b03
movl $0x315, %edx            # imm = 0x315
callq 0xf2f0
leaq 0xaa54(%rip), %rdi      # 0x60bc0
leaq 0xa270(%rip), %rsi      # 0x603e3
leaq 0xa989(%rip), %rcx      # 0x60b03
movl $0x316, %edx            # imm = 0x316
callq 0xf2f0
leaq 0xaa48(%rip), %rdi      # 0x60bd3
leaq 0xa251(%rip), %rsi      # 0x603e3
leaq 0xa96a(%rip), %rcx      # 0x60b03
movl $0x317, %edx            # imm = 0x317
callq 0xf2f0
leaq 0xaa3b(%rip), %rdi      # 0x60be5
leaq 0xa232(%rip), %rsi      # 0x603e3
leaq 0xa94b(%rip), %rcx      # 0x60b03
movl $0x318, %edx            # imm = 0x318
callq 0xf2f0
leaq 0xa4a8(%rip), %rdi      # 0x60671
leaq 0xa213(%rip), %rsi      # 0x603e3
leaq 0xa92c(%rip), %rcx      # 0x60b03
movl $0x311, %edx            # imm = 0x311
callq 0xf2f0
nop