// File: f18m[P]boost-intrusive-pool/include/boost_intrusive_pool.hpp
// Function: memorypool::boost_intrusive_pool_arena<DummyClass>::boost_intrusive_pool_arena(unsigned long, boost::intrusive_ptr<memorypool::boost_intrusive_pool_iface>)
boost_intrusive_pool_arena(size_t arena_size, boost::intrusive_ptr<boost_intrusive_pool_iface> p)
    {
        assert(arena_size > 0 && p);
        m_storage_size = arena_size;
        m_storage = new Item[arena_size];
        if (m_storage) {
            for (size_t i = 1; i < arena_size; i++) {
                m_storage[i - 1]._refcounted_item_set_next(&m_storage[i]);
                m_storage[i - 1]._refcounted_item_set_pool(p);
            }
            m_storage[arena_size - 1]._refcounted_item_set_next(nullptr);
            m_storage[arena_size - 1]._refcounted_item_set_pool(p);
        }
        // else: malloc failed!

        m_next_arena = nullptr;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdx, -0x58(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x41(%rbp)
jbe 0x654b
movq -0x58(%rbp), %rdi
callq 0x52f0
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
testb $0x1, %al
jne 0x6554
jmp 0x6556
jmp 0x6575
leaq 0x381c(%rip), %rdi      # 0x9d79
leaq 0x3176(%rip), %rsi      # 0x96da
movl $0xfb, %edx
leaq 0x381d(%rip), %rcx      # 0x9d8d
callq 0x20a0
movq -0x50(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
movl $0x420, %ecx            # imm = 0x420
mulq %rcx
movq %rax, %rdi
seto %cl
addq $0x8, %rdi
setb %al
orb %al, %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x2030
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, -0x68(%rbp)
movq %rax, (%rcx)
addq $0x8, %rcx
movq %rcx, -0x60(%rbp)
cmpq $0x0, %rax
je 0x661a
movq -0x60(%rbp), %rax
movq -0x70(%rbp), %rcx
imulq $0x420, %rcx, %rdx      # imm = 0x420
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x80(%rbp)
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
movq %rdi, -0x88(%rbp)
xorl %esi, %esi
callq 0x3420
jmp 0x6600
movq -0x80(%rbp), %rcx
movq -0x88(%rbp), %rax
addq $0x420, %rax            # imm = 0x420
cmpq %rcx, %rax
movq %rax, -0x78(%rbp)
jne 0x65ec
movq -0x50(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, 0x10(%rax)
cmpq $0x0, 0x10(%rax)
je 0x67da
movq $0x1, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x6749
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x30(%rbp), %rax
imulq $0x420, %rax, %rax      # imm = 0x420
leaq -0x420(%rsi,%rax), %rdi
addq %rax, %rsi
callq 0x6390
movq -0x50(%rbp), %rax
movq -0x58(%rbp), %rsi
movq 0x10(%rax), %rcx
movq -0x30(%rbp), %rax
imulq $0x420, %rax, %rax      # imm = 0x420
leaq -0x420(%rax,%rcx), %rax
movq %rax, -0x98(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x63e0
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x63b0
jmp 0x66b5
leaq -0x38(%rbp), %rdi
callq 0x4300
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x6639
movq -0x60(%rbp), %rcx
movq %rax, %rsi
movq -0x88(%rbp), %rax
movq %rsi, -0x20(%rbp)
movl %edx, -0x24(%rbp)
cmpq %rax, %rcx
movq %rax, -0xa0(%rbp)
je 0x6721
movq -0xa0(%rbp), %rdi
addq $-0x420, %rdi           # imm = 0xFBE0
movq %rdi, -0xa8(%rbp)
callq 0x4180
movq -0x60(%rbp), %rcx
movq -0xa8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0xa0(%rbp)
jne 0x66f0
movq -0x68(%rbp), %rdi
callq 0x2150
jmp 0x67ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4300
jmp 0x67ee
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
imulq $0x420, %rax, %rax      # imm = 0x420
leaq -0x420(%rax,%rcx), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6390
movq -0x50(%rbp), %rax
movq -0x58(%rbp), %rsi
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
imulq $0x420, %rax, %rax      # imm = 0x420
leaq -0x420(%rax,%rcx), %rax
movq %rax, -0xb8(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x63e0
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x63b0
jmp 0x67b8
leaq -0x40(%rbp), %rdi
callq 0x4300
jmp 0x67da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x4300
jmp 0x67ee
movq -0x50(%rbp), %rax
movq $0x0, (%rax)
addq $0xc0, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x2190
nopw (%rax,%rax)