// File: 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
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, 0x40(%rax)
je 0xbb3d6
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0xbb2cc
jmp 0xbb2eb
leaq 0xeb43(%rip), %rdi      # 0xc9e16
leaq 0xe37a(%rip), %rsi      # 0xc9654
movl $0x306, %edx            # imm = 0x306
leaq 0xea8e(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x70(%rax)
jbe 0xbb2f8
jmp 0xbb317
leaq 0xeac6(%rip), %rdi      # 0xc9dc5
leaq 0xe34e(%rip), %rsi      # 0xc9654
movl $0x307, %edx            # imm = 0x307
leaq 0xea62(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rcx
movq 0x60(%rcx), %rax
addq 0x68(%rcx), %rax
cmpq 0x70(%rcx), %rax
jne 0xbb32b
jmp 0xbb34a
leaq 0xeaa5(%rip), %rdi      # 0xc9dd7
leaq 0xe31b(%rip), %rsi      # 0xc9654
movl $0x30a, %edx            # imm = 0x30A
leaq 0xea2f(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb $0x1, %al
jne 0xbb35a
jmp 0xbb38b
movq -0x10(%rbp), %rcx
movq 0x40(%rcx), %rax
cmpq 0x48(%rcx), %rax
jne 0xbb36a
jmp 0xbb389
leaq 0xea94(%rip), %rdi      # 0xc9e05
leaq 0xe2dc(%rip), %rsi      # 0xc9654
movl $0x30d, %edx            # imm = 0x30D
leaq 0xe9f0(%rip), %rcx      # 0xc9d74
callq 0x103d0
jmp 0xbb3d1
movq -0x10(%rbp), %rcx
movb $0x1, %al
cmpq $0x0, 0x50(%rcx)
movb %al, -0x11(%rbp)
jne 0xbb3a5
movq -0x10(%rbp), %rax
movb 0x58(%rax), %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0xbb3ae
jmp 0xbb3b0
jmp 0xbb3cf
leaq 0xe52b(%rip), %rdi      # 0xc98e2
leaq 0xe296(%rip), %rsi      # 0xc9654
movl $0x311, %edx            # imm = 0x311
leaq 0xe9aa(%rip), %rcx      # 0xc9d74
callq 0x103d0
jmp 0xbb3d1
jmp 0xbb4c6
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xbb3ea
jmp 0xbb3ec
jmp 0xbb40b
leaq 0xea30(%rip), %rdi      # 0xc9e23
leaq 0xe25a(%rip), %rsi      # 0xc9654
movl $0x315, %edx            # imm = 0x315
leaq 0xe96e(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xbb41f
jmp 0xbb421
jmp 0xbb440
leaq 0xea09(%rip), %rdi      # 0xc9e31
leaq 0xe225(%rip), %rsi      # 0xc9654
movl $0x316, %edx            # imm = 0x316
leaq 0xe939(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x60(%rax)
jne 0xbb44d
jmp 0xbb46c
leaq 0xe9f0(%rip), %rdi      # 0xc9e44
leaq 0xe1f9(%rip), %rsi      # 0xc9654
movl $0x317, %edx            # imm = 0x317
leaq 0xe90d(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x68(%rax)
jne 0xbb479
jmp 0xbb498
leaq 0xe9d6(%rip), %rdi      # 0xc9e56
leaq 0xe1cd(%rip), %rsi      # 0xc9654
movl $0x318, %edx            # imm = 0x318
leaq 0xe8e1(%rip), %rcx      # 0xc9d74
callq 0x103d0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x70(%rax)
jne 0xbb4a5
jmp 0xbb4c4
leaq 0xe9bd(%rip), %rdi      # 0xc9e69
leaq 0xe1a1(%rip), %rsi      # 0xc9654
movl $0x319, %edx            # imm = 0x319
leaq 0xe8b5(%rip), %rcx      # 0xc9d74
callq 0x103d0
jmp 0xbb4c6
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)