// File: /workspace/github_cpp_makefile_star2_O3/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 0x554e3
testq %rax, %rax
je 0x5554b
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x5556a
movq 0x68(%rbx), %rcx
addq 0x60(%rbx), %rcx
cmpq %rax, %rcx
jne 0x55589
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x18(%rax)
testb %al, %al
je 0x55533
movq 0x40(%rbx), %rax
cmpq 0x48(%rbx), %rax
je 0x55544
leaq 0xa6c9(%rip), %rdi      # 0x5fb94
leaq 0x9f11(%rip), %rsi      # 0x5f3e3
leaq 0xa62a(%rip), %rcx      # 0x5fb03
movl $0x30d, %edx            # imm = 0x30D
callq 0xf2f0
testq %rax, %rax
jne 0x555a8
cmpq $0x0, 0x50(%rbx)
jne 0x555c7
cmpq $0x0, 0x60(%rbx)
jne 0x555e6
cmpq $0x0, 0x68(%rbx)
jne 0x55605
cmpq $0x0, 0x70(%rbx)
je 0x55544
leaq 0xa6dd(%rip), %rdi      # 0x5fbf8
leaq 0x9ec1(%rip), %rsi      # 0x5f3e3
leaq 0xa5da(%rip), %rcx      # 0x5fb03
movl $0x319, %edx            # imm = 0x319
callq 0xf2f0
cmpq $0x0, 0x50(%rbx)
jne 0x55544
cmpb $0x0, 0x58(%rbx)
je 0x55624
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa653(%rip), %rdi      # 0x5fba5
leaq 0x9e8a(%rip), %rsi      # 0x5f3e3
leaq 0xa5a3(%rip), %rcx      # 0x5fb03
movl $0x306, %edx            # imm = 0x306
callq 0xf2f0
leaq 0xa5e3(%rip), %rdi      # 0x5fb54
leaq 0x9e6b(%rip), %rsi      # 0x5f3e3
leaq 0xa584(%rip), %rcx      # 0x5fb03
movl $0x307, %edx            # imm = 0x307
callq 0xf2f0
leaq 0xa5d6(%rip), %rdi      # 0x5fb66
leaq 0x9e4c(%rip), %rsi      # 0x5f3e3
leaq 0xa565(%rip), %rcx      # 0x5fb03
movl $0x30a, %edx            # imm = 0x30A
callq 0xf2f0
leaq 0xa603(%rip), %rdi      # 0x5fbb2
leaq 0x9e2d(%rip), %rsi      # 0x5f3e3
leaq 0xa546(%rip), %rcx      # 0x5fb03
movl $0x315, %edx            # imm = 0x315
callq 0xf2f0
leaq 0xa5f2(%rip), %rdi      # 0x5fbc0
leaq 0x9e0e(%rip), %rsi      # 0x5f3e3
leaq 0xa527(%rip), %rcx      # 0x5fb03
movl $0x316, %edx            # imm = 0x316
callq 0xf2f0
leaq 0xa5e6(%rip), %rdi      # 0x5fbd3
leaq 0x9def(%rip), %rsi      # 0x5f3e3
leaq 0xa508(%rip), %rcx      # 0x5fb03
movl $0x317, %edx            # imm = 0x317
callq 0xf2f0
leaq 0xa5d9(%rip), %rdi      # 0x5fbe5
leaq 0x9dd0(%rip), %rsi      # 0x5f3e3
leaq 0xa4e9(%rip), %rcx      # 0x5fb03
movl $0x318, %edx            # imm = 0x318
callq 0xf2f0
leaq 0xa046(%rip), %rdi      # 0x5f671
leaq 0x9db1(%rip), %rsi      # 0x5f3e3
leaq 0xa4ca(%rip), %rcx      # 0x5fb03
movl $0x311, %edx            # imm = 0x311
callq 0xf2f0
nop