// File: /workspace/github_cpp_makefile_star2_O2/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 0x4d735
testq %rax, %rax
je 0x4d79d
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x4d7bc
movq 0x68(%rbx), %rcx
addq 0x60(%rbx), %rcx
cmpq %rax, %rcx
jne 0x4d7db
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x18(%rax)
testb %al, %al
je 0x4d785
movq 0x40(%rbx), %rax
cmpq 0x48(%rbx), %rax
je 0x4d796
leaq 0xa605(%rip), %rdi      # 0x57d22
leaq 0x9e4d(%rip), %rsi      # 0x57571
leaq 0xa566(%rip), %rcx      # 0x57c91
movl $0x30d, %edx            # imm = 0x30D
callq 0xf340
testq %rax, %rax
jne 0x4d7fa
cmpq $0x0, 0x50(%rbx)
jne 0x4d819
cmpq $0x0, 0x60(%rbx)
jne 0x4d838
cmpq $0x0, 0x68(%rbx)
jne 0x4d857
cmpq $0x0, 0x70(%rbx)
je 0x4d796
leaq 0xa619(%rip), %rdi      # 0x57d86
leaq 0x9dfd(%rip), %rsi      # 0x57571
leaq 0xa516(%rip), %rcx      # 0x57c91
movl $0x319, %edx            # imm = 0x319
callq 0xf340
cmpq $0x0, 0x50(%rbx)
jne 0x4d796
cmpb $0x0, 0x58(%rbx)
je 0x4d876
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa58f(%rip), %rdi      # 0x57d33
leaq 0x9dc6(%rip), %rsi      # 0x57571
leaq 0xa4df(%rip), %rcx      # 0x57c91
movl $0x306, %edx            # imm = 0x306
callq 0xf340
leaq 0xa51f(%rip), %rdi      # 0x57ce2
leaq 0x9da7(%rip), %rsi      # 0x57571
leaq 0xa4c0(%rip), %rcx      # 0x57c91
movl $0x307, %edx            # imm = 0x307
callq 0xf340
leaq 0xa512(%rip), %rdi      # 0x57cf4
leaq 0x9d88(%rip), %rsi      # 0x57571
leaq 0xa4a1(%rip), %rcx      # 0x57c91
movl $0x30a, %edx            # imm = 0x30A
callq 0xf340
leaq 0xa53f(%rip), %rdi      # 0x57d40
leaq 0x9d69(%rip), %rsi      # 0x57571
leaq 0xa482(%rip), %rcx      # 0x57c91
movl $0x315, %edx            # imm = 0x315
callq 0xf340
leaq 0xa52e(%rip), %rdi      # 0x57d4e
leaq 0x9d4a(%rip), %rsi      # 0x57571
leaq 0xa463(%rip), %rcx      # 0x57c91
movl $0x316, %edx            # imm = 0x316
callq 0xf340
leaq 0xa522(%rip), %rdi      # 0x57d61
leaq 0x9d2b(%rip), %rsi      # 0x57571
leaq 0xa444(%rip), %rcx      # 0x57c91
movl $0x317, %edx            # imm = 0x317
callq 0xf340
leaq 0xa515(%rip), %rdi      # 0x57d73
leaq 0x9d0c(%rip), %rsi      # 0x57571
leaq 0xa425(%rip), %rcx      # 0x57c91
movl $0x318, %edx            # imm = 0x318
callq 0xf340
leaq 0x9f82(%rip), %rdi      # 0x577ff
leaq 0x9ced(%rip), %rsi      # 0x57571
leaq 0xa406(%rip), %rcx      # 0x57c91
movl $0x311, %edx            # imm = 0x311
callq 0xf340
nop