// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, -0x30(%rbp)
testq %rsi, %rsi
je 0x4662
movq %rdx, %r14
cmpq $0x0, (%rdx)
je 0x4662
movq %rdi, %rbx
movl $0x420, %ecx            # imm = 0x420
movq -0x30(%rbp), %r15
movq %r15, %rax
mulq %rcx
seto %cl
orq $0x8, %rax
movq %r15, 0x8(%rdi)
movq $-0x1, %rdi
testb %cl, %cl
cmoveq %rax, %rdi
callq 0x2030
movq %r15, (%rax)
movq %rax, -0x48(%rbp)
leaq 0x8(%rax), %r13
imulq $-0x420, %r15, %r12     # imm = 0xFBE0
xorl %r15d, %r15d
movq %r13, -0x50(%rbp)
movq %r13, %rdi
xorl %esi, %esi
callq 0x32c2
addq $-0x420, %r15           # imm = 0xFBE0
addq $0x420, %r13            # imm = 0x420
cmpq %r15, %r12
jne 0x456d
movq -0x50(%rbp), %rax
movq %rax, 0x10(%rbx)
cmpq $0x1, -0x30(%rbp)
je 0x45fd
movq -0x30(%rbp), %rax
leaq -0x1(%rax), %r13
movl $0x420, %r15d           # imm = 0x420
leaq -0x40(%rbp), %r12
movq 0x10(%rbx), %rax
leaq (%rax,%r15), %rcx
movq %rcx, -0x410(%rax,%r15)
movq (%r14), %rcx
movq %rcx, -0x40(%rbp)
testq %rcx, %rcx
je 0x45ca
incl 0x8(%rcx)
leaq (%rax,%r15), %rdi
addq $-0x408, %rdi           # imm = 0xFBF8
movq %r12, %rsi
callq 0x44c6
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x45f1
decl 0x8(%rdi)
jne 0x45f1
movq (%rdi), %rax
callq *0x8(%rax)
addq $0x420, %r15            # imm = 0x420
decq %r13
jne 0x45ab
movq 0x10(%rbx), %rax
imulq $0x420, -0x30(%rbp), %rcx # imm = 0x420
leaq (%rax,%rcx), %rdi
movq $0x0, -0x410(%rax,%rcx)
movq (%r14), %rax
movq %rax, -0x38(%rbp)
testq %rax, %rax
je 0x4628
incl 0x8(%rax)
addq $-0x408, %rdi           # imm = 0xFBF8
leaq -0x38(%rbp), %rsi
callq 0x44c6
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0x464c
decl 0x8(%rdi)
jne 0x464c
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rbx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x26d9(%rip), %rdi      # 0x6d42
leaq 0x2033(%rip), %rsi      # 0x66a3
leaq 0x26df(%rip), %rcx      # 0x6d56
movl $0xfb, %edx
callq 0x2080
movq %rax, %rbx
movq -0x38(%rbp), %rdi
jmp 0x4691
movq %rax, %rbx
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x46d4
decl 0x8(%rdi)
jne 0x46d4
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x46d4
movq %rax, %rbx
testq %r15, %r15
je 0x46cb
negq %r15
movq -0x48(%rbp), %r14
addq $-0x418, %r14           # imm = 0xFBE8
leaq (%r14,%r15), %rdi
callq 0x3a2a
addq $-0x420, %r15           # imm = 0xFBE0
jne 0x46b9
movq -0x48(%rbp), %rdi
callq 0x2150
movq %rbx, %rdi
callq 0x21a0