// File: /workspace/github_cpp_makefile_star2_O1/f18m[P]boost-intrusive-pool/tests/unit_tests.cpp
// Function: test_api()
void test_api()
{
    {
        uint32_t recycled = 0;
        boost_intrusive_pool<dummy_one> pool;

        BOOST_REQUIRE(pool.init());

        auto recycle_fn = [&recycled](dummy_one& object) {
            BOOST_REQUIRE(object.m_count > 0);
            object.m_count--;
            ++recycled;
        };

        pool.set_recycle_method(RECYCLE_METHOD_CUSTOM_FUNCTION, recycle_fn);

        BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE);

        {
            auto d1 = pool.allocate();
            BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 1);
        }

        BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE);

        auto d2 = pool.allocate();

        BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 1);

        auto d3 = pool.allocate();

        BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 2);

        // the dummy_one::m_count counter is off by 1 because above we called an allocate() and
        // then destroyed the "d1" pointer: that resulted in the item being recycled and dummy_one::~dummy_one
        // being called
        BOOST_REQUIRE_EQUAL(dummy_one::m_count, BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 1);

        {
            auto d4 = pool.allocate();
            BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 3);
        }

        BOOST_REQUIRE_EQUAL(pool.unused_count(), BOOST_INTRUSIVE_POOL_DEFAULT_POOL_SIZE - 2);

        // FIXME FIXME THIS DOES NOT WORK CURRENTLY SINCE ALL SMART POINTER DTORS
        // ARE STILL ALIVE AT THIS POINT
        pool.clear();
        BOOST_REQUIRE_EQUAL(pool.unused_count(), 0U);
    }

    // BOOST_REQUIRE(dummy_one::m_count, 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movl $0x0, -0xfc(%rbp)
leaq 0x55327(%rip), %rax     # 0x81b20
addq $0x10, %rax
movq %rax, -0xb8(%rbp)
movq $0x0, -0xb0(%rbp)
callq 0x1f367
movq 0x5804d(%rip), %rdx     # 0x84868
leaq 0x5803e(%rip), %rdi     # 0x84860
leaq 0x3718f(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2eff9(%rip), %r14     # 0x5b833
movq %r14, 0x58007(%rip)     # 0x84848
leaq 0x2efff(%rip), %r15     # 0x5b847
movq %r15, 0x58001(%rip)     # 0x84850
movq $0x150, 0x57ffe(%rip) # imm = 0x150
xorps %xmm0, %xmm0
leaq -0x140(%rbp), %r9
movaps %xmm0, (%r9)
movaps %xmm0, 0x10(%r9)
leaq -0xb8(%rbp), %rdi
movl $0x40, %esi
movl $0x40, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3a12c
leaq -0x60(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2f25c(%rip), %rax     # 0x5baf8
leaq -0xa0(%rbp), %rcx
movq %rax, (%rcx)
leaq 0x2f256(%rip), %rax     # 0x5bb03
movq %rax, 0x8(%rcx)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x550e0(%rip), %rax     # 0x819a0
addq $0x10, %rax
movq %rax, (%rsi)
leaq 0x560ea(%rip), %rbx     # 0x829b8
movq %rbx, 0x10(%rsi)
movq %rcx, 0x18(%rsi)
leaq -0x150(%rbp), %rdx
movq %r14, (%rdx)
movq %r15, 0x8(%rdx)
subq $0x8, %rsp
movl $0x150, %ecx            # imm = 0x150
movl $0x2, %r8d
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x1b92f
addq $0x10, %rsp
leaq -0x50(%rbp), %rdi
callq 0x3dd4c
movq -0x130(%rbp), %rax
testq %rax, %rax
je 0x2c929
leaq -0x140(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
leaq -0x120(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
leaq -0xfc(%rbp), %rax
movq %rax, (%rdx)
leaq 0x55a9(%rip), %rax      # 0x31ef4
movq %rax, 0x18(%rdx)
leaq 0x56a4(%rip), %rax      # 0x31ffa
movq %rax, 0x10(%rdx)
leaq -0xb8(%rbp), %rdi
movl $0x2, %esi
callq 0x3a2b6
movq -0x110(%rbp), %rax
testq %rax, %rax
je 0x2c988
leaq -0x120(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
callq 0x1f367
movq 0x57ed4(%rip), %rdx     # 0x84868
leaq 0x57ec5(%rip), %rdi     # 0x84860
leaq 0x37016(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2ee80(%rip), %r15     # 0x5b833
movq %r15, 0x57e8e(%rip)     # 0x84848
leaq 0x2ee86(%rip), %rsi     # 0x5b847
movq %rsi, 0x57e88(%rip)     # 0x84850
movq $0x15a, 0x57e85(%rip) # imm = 0x15A
movb $0x0, -0x98(%rbp)
leaq 0x54fff(%rip), %rax     # 0x819e0
addq $0x10, %rax
movq %rax, -0xc0(%rbp)
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2e4b0(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2ca1a
movq 0x60(%rax), %rax
jmp 0x2ca1c
xorl %eax, %eax
leaq -0xe0(%rbp), %rcx
movq %rax, (%rcx)
cmpq $0x40, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
leaq -0xa8(%rbp), %r8
movl $0x40, (%r8)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
movq %r15, (%rdx)
movq %rsi, 0x8(%rdx)
leaq -0x38(%rbp), %rsi
movq %rcx, (%rsi)
xorl %eax, %eax
movb %al, -0x78(%rbp)
leaq 0x54fb6(%rip), %rcx     # 0x81a20
addq $0x10, %rcx
movq %rcx, %r14
movq %rcx, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
movq %rsi, -0x68(%rbp)
leaq -0x30(%rbp), %rcx
movq %r8, (%rcx)
movb %al, -0x58(%rbp)
leaq 0x54fd2(%rip), %r13     # 0x81a60
addq $0x10, %r13
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
movq %rcx, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2f06f(%rip), %r12     # 0x5bb18
leaq 0x2f054(%rip), %r11     # 0x5bb04
leaq -0xa0(%rbp), %rsi
movl $0x15a, %ecx            # imm = 0x15A
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
pushq %r12
leaq -0x80(%rbp), %r10
pushq %r10
pushq %r11
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xe0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3a35e
callq 0x1f367
movq 0x57d58(%rip), %rdx     # 0x84868
leaq 0x57d49(%rip), %rdi     # 0x84860
leaq 0x36e9a(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
movq %r15, 0x57d19(%rip)     # 0x84848
leaq 0x2ed11(%rip), %rax     # 0x5b847
movq %rax, 0x57d13(%rip)     # 0x84850
movq $0x15e, 0x57d10(%rip) # imm = 0x15E
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2e346(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2cb84
movq 0x60(%rax), %rax
jmp 0x2cb86
xorl %eax, %eax
movq %rax, -0xa8(%rbp)
leaq -0x40(%rbp), %rsi
movl $0x3f, (%rsi)
cmpq $0x3f, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
movq %r15, (%rdx)
leaq 0x2ec8a(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
leaq -0xa8(%rbp), %rax
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
movq %rsi, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2ef1a(%rip), %r11     # 0x5bb1d
leaq -0xa0(%rbp), %rsi
movl $0x15e, %ecx            # imm = 0x15E
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
pushq %r11
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2eed2(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xe0(%rbp), %r15
movq %r15, %rdi
callq 0x3a3fc
callq 0x1f367
movq 0x57c02(%rip), %rdx     # 0x84868
leaq 0x57bf3(%rip), %rdi     # 0x84860
leaq 0x36d44(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2ebae(%rip), %rax     # 0x5b833
movq %rax, 0x57bbc(%rip)     # 0x84848
leaq 0x2ebb4(%rip), %rax     # 0x5b847
movq %rax, 0x57bb6(%rip)     # 0x84850
movq $0x161, 0x57bb3(%rip) # imm = 0x161
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2e1e9(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2cce1
movq 0x60(%rax), %rax
jmp 0x2cce3
xorl %eax, %eax
movq %rax, -0xe0(%rbp)
movl $0x40, -0xa8(%rbp)
cmpq $0x40, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
leaq 0x2eb1c(%rip), %rax     # 0x5b833
movq %rax, (%rdx)
leaq 0x2eb26(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
movq %r15, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
leaq -0xa8(%rbp), %rcx
movq %rcx, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq -0xa0(%rbp), %rsi
movl $0x161, %ecx            # imm = 0x161
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
leaq 0x2ed91(%rip), %r10     # 0x5bb18
pushq %r10
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2ed6e(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xe0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3a35e
callq 0x1f367
leaq 0x2ea65(%rip), %r15     # 0x5b833
movq 0x57a93(%rip), %rdx     # 0x84868
leaq 0x57a84(%rip), %rdi     # 0x84860
leaq 0x36bd5(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
movq %r15, 0x57a54(%rip)     # 0x84848
leaq 0x2ea4c(%rip), %rax     # 0x5b847
movq %rax, 0x57a4e(%rip)     # 0x84850
movq $0x165, 0x57a4b(%rip) # imm = 0x165
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2e081(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2ce49
movq 0x60(%rax), %rax
jmp 0x2ce4b
xorl %eax, %eax
movq %rax, -0xa8(%rbp)
movl $0x3f, -0x40(%rbp)
cmpq $0x3f, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
movq %r15, (%rdx)
leaq 0x2e9c8(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
leaq -0xa8(%rbp), %rax
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
leaq -0x40(%rbp), %rcx
movq %rcx, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq -0xa0(%rbp), %rsi
movl $0x165, %ecx            # imm = 0x165
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
leaq 0x2ec34(%rip), %r10     # 0x5bb1d
pushq %r10
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2ec0c(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xa8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3a35e
callq 0x1f367
movq 0x57938(%rip), %rdx     # 0x84868
leaq 0x57929(%rip), %rdi     # 0x84860
leaq 0x36a7a(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2e8e4(%rip), %rcx     # 0x5b833
movq %rcx, 0x578f2(%rip)     # 0x84848
leaq 0x2e8ea(%rip), %rax     # 0x5b847
movq %rax, 0x578ec(%rip)     # 0x84850
movq $0x169, 0x578e9(%rip) # imm = 0x169
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2df1f(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2cfab
movq 0x60(%rax), %rax
jmp 0x2cfad
xorl %eax, %eax
movq %rax, -0x40(%rbp)
leaq -0xe8(%rbp), %rsi
movl $0x3e, (%rsi)
cmpq $0x3e, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
movq %rcx, (%rdx)
leaq 0x2e863(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
leaq -0x40(%rbp), %rax
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
movq %rsi, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2eaff(%rip), %r11     # 0x5bb26
leaq -0xa0(%rbp), %rsi
movl $0x169, %ecx            # imm = 0x169
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
pushq %r11
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2eaae(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
callq 0x1f367
movq 0x577ed(%rip), %rdx     # 0x84868
leaq 0x577de(%rip), %rdi     # 0x84860
leaq 0x3692f(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2e799(%rip), %r15     # 0x5b833
movq %r15, 0x577a7(%rip)     # 0x84848
leaq 0x2e79f(%rip), %r8      # 0x5b847
movq %r8, 0x577a1(%rip)      # 0x84850
movq $0x16e, 0x5779e(%rip) # imm = 0x16E
xorl %eax, %eax
leaq 0x55c95(%rip), %rcx     # 0x82d58
cmpl $0x3f, (%rcx)
movq %rcx, -0x38(%rbp)
leaq -0xa0(%rbp), %rsi
movb %al, 0x8(%rsi)
movq -0xc0(%rbp), %rcx
movq %rcx, (%rsi)
movq %rbx, 0x10(%rsi)
leaq 0x2ddc8(%rip), %rcx     # 0x5aeb1
movq %rcx, 0x18(%rsi)
movl $0x3f, -0x40(%rbp)
leaq -0x40(%rbp), %rcx
movq %rcx, -0x30(%rbp)
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
movb %al, -0x78(%rbp)
movb %al, -0x58(%rbp)
leaq -0xf8(%rbp), %rdx
movq %r15, (%rdx)
movq %r8, 0x8(%rdx)
movq %r13, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2e9e3(%rip), %r10     # 0x5bb2f
movl $0x16e, %ecx            # imm = 0x16E
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r11
pushq %r11
leaq 0x2e9b1(%rip), %r11     # 0x5bb1d
pushq %r11
leaq -0x80(%rbp), %r11
pushq %r11
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0x40(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3a35e
callq 0x1f367
movq 0x576bf(%rip), %rdx     # 0x84868
leaq 0x576b0(%rip), %rdi     # 0x84860
leaq 0x36801(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
movq %r15, 0x57680(%rip)     # 0x84848
leaq 0x2e678(%rip), %rax     # 0x5b847
movq %rax, 0x5767a(%rip)     # 0x84850
movq $0x172, 0x57677(%rip) # imm = 0x172
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2dcad(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2d21d
movq 0x60(%rax), %rax
jmp 0x2d21f
xorl %eax, %eax
movq %rax, -0xe8(%rbp)
leaq -0x100(%rbp), %rcx
movl $0x3d, (%rcx)
cmpq $0x3d, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
movq %r15, (%rdx)
leaq 0x2e5ee(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
leaq -0xe8(%rbp), %rax
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rsi
movq %rsi, -0x68(%rbp)
movq %rcx, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2e8a3(%rip), %r10     # 0x5bb42
leaq -0xa0(%rbp), %rsi
movl $0x172, %ecx            # imm = 0x172
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r11
pushq %r11
pushq %r10
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2e836(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0x40(%rbp), %r15
movq %r15, %rdi
callq 0x3a3fc
callq 0x1f367
movq 0x57569(%rip), %rdx     # 0x84868
leaq 0x5755a(%rip), %rdi     # 0x84860
leaq 0x366ab(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2e515(%rip), %rax     # 0x5b833
movq %rax, 0x57523(%rip)     # 0x84848
leaq 0x2e51b(%rip), %rax     # 0x5b847
movq %rax, 0x5751d(%rip)     # 0x84850
movq $0x175, 0x5751a(%rip) # imm = 0x175
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2db50(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2d37a
movq 0x60(%rax), %rax
jmp 0x2d37c
xorl %eax, %eax
movq %rax, -0x40(%rbp)
movl $0x3e, -0xe8(%rbp)
cmpq $0x3e, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
leaq 0x2e486(%rip), %rax     # 0x5b833
movq %rax, (%rdx)
leaq 0x2e490(%rip), %rax     # 0x5b847
movq %rax, 0x8(%rdx)
movq %r15, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
leaq -0xe8(%rbp), %rcx
movq %rcx, -0x30(%rbp)
movb %al, -0x58(%rbp)
movq %r13, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq -0xa0(%rbp), %rsi
movl $0x175, %ecx            # imm = 0x175
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r10
pushq %r10
leaq 0x2e709(%rip), %r10     # 0x5bb26
pushq %r10
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2e6d8(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xb8(%rbp), %rdi
callq 0x3a448
callq 0x1f367
movq 0x5740b(%rip), %rdx     # 0x84868
leaq 0x573fc(%rip), %rdi     # 0x84860
leaq 0x3654d(%rip), %rcx     # 0x639b8
xorl %esi, %esi
xorl %r8d, %r8d
callq 0xf760
leaq 0x2e3b7(%rip), %rax     # 0x5b833
movq %rax, 0x573c5(%rip)     # 0x84848
leaq 0x2e3bd(%rip), %rcx     # 0x5b847
movq %rcx, 0x573bf(%rip)     # 0x84850
movq $0x17a, 0x573bc(%rip) # imm = 0x17A
movb $0x0, -0x98(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq %rbx, -0x90(%rbp)
leaq 0x2d9f2(%rip), %rax     # 0x5aeb1
movq %rax, -0x88(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0x2d4d8
movq 0x60(%rax), %rax
jmp 0x2d4da
xorl %eax, %eax
testq %rax, %rax
leaq -0xd8(%rbp), %rdi
sete (%rdi)
movq %rax, -0x40(%rbp)
movl $0x0, -0xe8(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq -0xf8(%rbp), %rdx
leaq 0x2e329(%rip), %rax     # 0x5b833
movq %rax, (%rdx)
movq %rcx, 0x8(%rdx)
movq %r15, -0x38(%rbp)
xorl %eax, %eax
movb %al, -0x78(%rbp)
movq %r14, -0x80(%rbp)
movq %rbx, -0x70(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
leaq -0xe8(%rbp), %rcx
movq %rcx, -0x30(%rbp)
movb %al, -0x58(%rbp)
leaq 0x545a1(%rip), %rax     # 0x81ae0
addq $0x10, %rax
movq %rax, -0x60(%rbp)
movq %rbx, -0x50(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
subq $0x8, %rsp
leaq 0x2e5ed(%rip), %r10     # 0x5bb4b
leaq -0xa0(%rbp), %rsi
movl $0x17a, %ecx            # imm = 0x17A
movl $0x2, %r8d
movl $0x2, %r9d
xorl %eax, %eax
leaq -0x60(%rbp), %r11
pushq %r11
pushq %r10
leaq -0x80(%rbp), %r10
pushq %r10
leaq 0x2e577(%rip), %r10     # 0x5bb04
pushq %r10
pushq $0x2
callq 0x1b92f
addq $0x30, %rsp
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
leaq -0xa8(%rbp), %rdi
callq 0x3a3fc
leaq -0xe0(%rbp), %rdi
callq 0x3a3fc
leaq -0xb8(%rbp), %rdi
callq 0x3a5b2
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d6be
jmp 0x2d6be
jmp 0x2d605
jmp 0x2d605
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d6c9
jmp 0x2d6e5
jmp 0x2d605
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d6e8
jmp 0x2d6d4
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d6f4
jmp 0x2d6e0
jmp 0x2d652
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d6f4
jmp 0x2d6e0
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d700
movq %rax, %rbx
movq -0x110(%rbp), %rax
testq %rax, %rax
je 0x2d700
leaq -0x120(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x2d700
jmp 0x2d6be
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x3dd4c
jmp 0x2d69f
movq %rax, %rbx
movq -0x130(%rbp), %rax
testq %rax, %rax
je 0x2d700
leaq -0x140(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x2d700
movq %rax, %rdi
callq 0x3347e
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x3a3fc
jmp 0x2d6e8
movq %rax, %rbx
jmp 0x2d6f4
movq %rax, %rbx
jmp 0x2d6f4
jmp 0x2d6e0
movq %rax, %rbx
jmp 0x2d700
movq %rax, %rbx
leaq -0xa8(%rbp), %rdi
callq 0x3a3fc
leaq -0xe0(%rbp), %rdi
callq 0x3a3fc
leaq -0xb8(%rbp), %rdi
callq 0x3a5b2
movq %rbx, %rdi
callq 0xf880