// File: f18m[P]boost-intrusive-pool/tests/unit_tests.cpp
// Function: init_unit_test_suite(int, char**)
boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[])
{
    // about M_PERTURB:
    // If this parameter is set to a nonzero value, then bytes of allocated memory
    // are scrambled; This can be useful for detecting
    // errors where programs incorrectly rely on allocated memory
    // being initialized to zero, or reuse values in memory that has
    // already been freed.
    mallopt(M_PERTURB, 1);

    boost::unit_test::test_suite* test = BOOST_TEST_SUITE("Master test suite");

    test->add(BOOST_TEST_CASE(&infinite_memory_pool));
    test->add(BOOST_TEST_CASE(&bounded_memory_pool));
    test->add(BOOST_TEST_CASE(&max_size_memory_pool));
    test->add(BOOST_TEST_CASE(&test_api));
    test->add(BOOST_TEST_CASE(&test_allocate_methods));
    test->add(BOOST_TEST_CASE(&pool_die_before_object));
    test->add(BOOST_TEST_CASE(&overwrite_pool_items_with_other_pool_items));

    return test;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xfffffffa, %edi       # imm = 0xFFFFFFFA
movl $0x1, %esi
callq 0x10320
movl $0x180, %edi            # imm = 0x180
callq 0x10630
movq %rax, -0x210(%rbp)
leaq 0x9a619(%rip), %rsi     # 0xc4c92
leaq -0x28(%rbp), %rdi
callq 0x4bd30
jmp 0x2a684
leaq 0x9a256(%rip), %rsi     # 0xc48e1
leaq -0x48(%rbp), %rdi
callq 0x4bd30
jmp 0x2a696
movq -0x210(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x48(%rbp), %rdx
movl $0x206, %ecx            # imm = 0x206
callq 0x27240
jmp 0x2a6b1
movq -0x210(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq 0x5e92(%rip), %rsi      # 0x30560
leaq -0x68(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a5c4(%rip), %rsi     # 0xc4ca4
leaq -0x78(%rbp), %rdi
movl $0x15, %edx
callq 0x4cbe0
jmp 0x2a6f0
leaq 0x9a1ea(%rip), %rsi     # 0xc48e1
leaq -0x88(%rbp), %rdi
callq 0x4bd30
jmp 0x2a705
leaq -0x68(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x88(%rbp), %rdx
movl $0x208, %ecx            # imm = 0x208
callq 0x5fa50
movq %rax, -0x220(%rbp)
jmp 0x2a727
movq -0x220(%rbp), %rsi
movq -0x218(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2a740
leaq -0x68(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq 0x78f5(%rip), %rsi      # 0x32050
leaq -0xa8(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a54a(%rip), %rsi     # 0xc4cba
leaq -0xb8(%rbp), %rdi
movl $0x14, %edx
callq 0x4cbe0
jmp 0x2a783
leaq 0x9a157(%rip), %rsi     # 0xc48e1
leaq -0xc8(%rbp), %rdi
callq 0x4bd30
jmp 0x2a798
leaq -0xa8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
movl $0x209, %ecx            # imm = 0x209
callq 0x5fa50
movq %rax, -0x230(%rbp)
jmp 0x2a7c0
movq -0x230(%rbp), %rsi
movq -0x228(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2a7d9
leaq -0xa8(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x238(%rbp)
leaq 0x8d59(%rip), %rsi      # 0x33550
leaq -0xe8(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a4c3(%rip), %rsi     # 0xc4ccf
leaq -0xf8(%rbp), %rdi
movl $0x15, %edx
callq 0x4cbe0
jmp 0x2a81f
leaq 0x9a0bb(%rip), %rsi     # 0xc48e1
leaq -0x108(%rbp), %rdi
callq 0x4bd30
jmp 0x2a834
leaq -0xe8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0x108(%rbp), %rdx
movl $0x20a, %ecx            # imm = 0x20A
callq 0x5fa50
movq %rax, -0x240(%rbp)
jmp 0x2a85c
movq -0x240(%rbp), %rsi
movq -0x238(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2a875
leaq -0xe8(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x248(%rbp)
leaq 0xa6ad(%rip), %rsi      # 0x34f40
leaq -0x128(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a43d(%rip), %rsi     # 0xc4ce5
leaq -0x138(%rbp), %rdi
movl $0x9, %edx
callq 0x4cbe0
jmp 0x2a8bb
leaq 0x9a01f(%rip), %rsi     # 0xc48e1
leaq -0x148(%rbp), %rdi
callq 0x4bd30
jmp 0x2a8d0
leaq -0x128(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x148(%rbp), %rdx
movl $0x20b, %ecx            # imm = 0x20B
callq 0x5fa50
movq %rax, -0x250(%rbp)
jmp 0x2a8f8
movq -0x250(%rbp), %rsi
movq -0x248(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2a911
leaq -0x128(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq 0xb611(%rip), %rsi      # 0x35f40
leaq -0x168(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a3ab(%rip), %rsi     # 0xc4cef
leaq -0x178(%rbp), %rdi
movl $0x16, %edx
callq 0x4cbe0
jmp 0x2a957
leaq 0x99f83(%rip), %rsi     # 0xc48e1
leaq -0x188(%rbp), %rdi
callq 0x4bd30
jmp 0x2a96c
leaq -0x168(%rbp), %rdi
leaq -0x178(%rbp), %rsi
leaq -0x188(%rbp), %rdx
movl $0x20c, %ecx            # imm = 0x20C
callq 0x5fa50
movq %rax, -0x260(%rbp)
jmp 0x2a994
movq -0x260(%rbp), %rsi
movq -0x258(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2a9ad
leaq -0x168(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x268(%rbp)
leaq 0xbf85(%rip), %rsi      # 0x36950
leaq -0x1a8(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a326(%rip), %rsi     # 0xc4d06
leaq -0x1b8(%rbp), %rdi
movl $0x17, %edx
callq 0x4cbe0
jmp 0x2a9f3
leaq 0x99ee7(%rip), %rsi     # 0xc48e1
leaq -0x1c8(%rbp), %rdi
callq 0x4bd30
jmp 0x2aa08
leaq -0x1a8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
movl $0x20d, %ecx            # imm = 0x20D
callq 0x5fa50
movq %rax, -0x270(%rbp)
jmp 0x2aa30
movq -0x270(%rbp), %rsi
movq -0x268(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2aa49
leaq -0x1a8(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq 0xc5a9(%rip), %rsi      # 0x37010
leaq -0x1e8(%rbp), %rdi
xorl %edx, %edx
callq 0x5fb60
leaq 0x9a2a2(%rip), %rsi     # 0xc4d1e
leaq -0x1f8(%rbp), %rdi
movl $0x2b, %edx
callq 0x4cbe0
jmp 0x2aa8f
leaq 0x99e4b(%rip), %rsi     # 0xc48e1
leaq -0x208(%rbp), %rdi
callq 0x4bd30
jmp 0x2aaa4
leaq -0x1e8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0x208(%rbp), %rdx
movl $0x20e, %ecx            # imm = 0x20E
callq 0x5fa50
movq %rax, -0x280(%rbp)
jmp 0x2aacc
movq -0x280(%rbp), %rsi
movq -0x278(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x276d0
jmp 0x2aae5
leaq -0x1e8(%rbp), %rdi
callq 0x4e030
movq -0x18(%rbp), %rax
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
movq -0x210(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x105b0
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x4e030
jmp 0x2abd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x4e030
movq -0x30(%rbp), %rdi
callq 0x10aa0
nopl (%rax,%rax)