// File: /workspace/github_cpp_makefile_star2_O2/f18m[P]boost-intrusive-pool/tests/unit_tests.cpp
// Function: max_size_memory_pool()
void max_size_memory_pool()
{
    BOOST_TEST_MESSAGE("Starting boost_intrusive_pool<> tests when memory pool has max size");

    struct {
        unsigned int initial_size;
        unsigned int enlarge_step;
        unsigned int max_size;
    } testArray[] = {
        { 1, 1, 10 }, // force newline
        { 10, 2, 21 }, // force newline
        { 100000, 1, 100010 }, // force newline
        { 128, 4096, 5000 }, // force newline
    };

    for (int testIdx = 0; testIdx < sizeof(testArray) / sizeof(testArray[0]); testIdx++) {
        BOOST_TEST_MESSAGE(std::string("Starting test entry #") + std::to_string(testIdx));

        boost_intrusive_pool<DummyInt> f(testArray[testIdx].initial_size /* initial size */,
            testArray[testIdx].enlarge_step /* enlarge step */, testArray[testIdx].max_size /* max size */);
        std::vector<HDummyInt> helper_container;

        BOOST_REQUIRE(f.is_limited());
        BOOST_REQUIRE_EQUAL(f.max_size(), testArray[testIdx].max_size);

        for (unsigned int j = 0; j < testArray[testIdx].initial_size; j++) {
            HDummyInt myInt = f.allocate_through_init(3);
            assert(myInt);
            helper_container.push_back(myInt);

            f.check();
        }

        // When initial_size items are allocated, the memory pool will try to pre-allocate enlarge_step items.
        // At that point, unused_count will be equal to enlarge_step.
        // But if initial_size + enlarge_step exceeds max_size, the enlarge_step will be the remaining to max_size.
        size_t enlarge_step = testArray[testIdx].enlarge_step;
        if (testArray[testIdx].initial_size + testArray[testIdx].enlarge_step > testArray[testIdx].max_size)
            enlarge_step = testArray[testIdx].max_size - testArray[testIdx].initial_size;
        BOOST_REQUIRE_EQUAL(f.unused_count(), enlarge_step);

        for (unsigned int j = testArray[testIdx].initial_size; j < testArray[testIdx].max_size; j++) {
            HDummyInt myInt = f.allocate_through_init(3);
            assert(myInt);
            helper_container.push_back(myInt);

            f.check();
        }

        BOOST_REQUIRE_EQUAL(f.unused_count(), 0);

        // now if we allocate more we should fail gracefully:
        HDummyInt myInt = f.allocate_through_init(4);
        BOOST_REQUIRE(!myInt);

        // This should hold always:
        BOOST_REQUIRE_EQUAL(f.unused_count() + f.inuse_count(), f.capacity());
        BOOST_REQUIRE_EQUAL(f.inuse_count(), testArray[testIdx].max_size);
        BOOST_REQUIRE_EQUAL(f.capacity(), testArray[testIdx].max_size);
        BOOST_REQUIRE(!f.empty());
        BOOST_REQUIRE(f.enlarge_steps_done() > 0);

        helper_container.clear();
        f.clear();

        f.check();

        BOOST_REQUIRE_EQUAL(f.inuse_count(), 0);
        BOOST_REQUIRE_EQUAL(f.capacity(), 0);
        BOOST_REQUIRE(f.empty());
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x398, %rsp            # imm = 0x398
movq 0x594d8(%rip), %rdi     # 0x7f830
leaq 0x2c4ce(%rip), %rax     # 0x5282d
leaq -0x48(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x2c4d4(%rip), %r15     # 0x52841
movq %r15, 0x8(%rsi)
movq $0x102, 0x10(%rsi)      # imm = 0x102
callq 0x15faa
callq 0x1bc99
movl $0x2, 0x5b4d3(%rip)     # 0x81860
leaq -0xd0(%rbp), %r13
movb $0x1, (%r13)
leaq -0x110(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x5852d(%rip), %rax     # 0x7e8d8
addq $0x10, %rax
movq %rax, (%rsi)
leaq 0x59627(%rip), %rax     # 0x7f9e0
movq %rax, 0x10(%rsi)
leaq 0x2c689(%rip), %rax     # 0x52a4d
movq %rax, 0x18(%rsi)
movq %r13, %rdi
callq 0x160d8
movq %r13, %rdi
callq 0x1bc7a
movaps 0x29d71(%rip), %xmm0    # 0x50150
movaps %xmm0, -0xf0(%rbp)
movaps 0x29d53(%rip), %xmm0    # 0x50140
movaps %xmm0, -0x100(%rbp)
movaps 0x29d35(%rip), %xmm0    # 0x50130
movaps %xmm0, -0x110(%rbp)
leaq 0x5850f(%rip), %rax     # 0x7e918
addq $0x10, %rax
movq %rax, -0xd8(%rbp)
leaq 0x585f5(%rip), %rax     # 0x7ea10
addq $0x10, %rax
movq %rax, -0x90(%rbp)
leaq 0x58623(%rip), %rax     # 0x7ea50
addq $0x10, %rax
movq %rax, -0x70(%rbp)
leaq -0x3c0(%rbp), %rbx
xorl %r12d, %r12d
cmpq $0x4, %r12
je 0x27122
movq 0x593e0(%rip), %rdi     # 0x7f830
leaq 0x2c3d6(%rip), %rax     # 0x5282d
movq %rax, -0x88(%rbp)
movq %r15, -0x80(%rbp)
movq $0x110, -0x78(%rbp)     # imm = 0x110
leaq -0x88(%rbp), %rsi
callq 0x15faa
callq 0x1bc99
movl $0x2, 0x5b3db(%rip)     # 0x81860
movb $0x1, -0x98(%rbp)
leaq -0x68(%rbp), %rdi
leaq 0x2c3ef(%rip), %rsi     # 0x52886
leaq -0xa0(%rbp), %rdx
callq 0xf200
movq %rbx, %rdi
movl %r12d, %esi
callq 0x322c6
leaq -0x98(%rbp), %r14
movq %r13, %rdi
leaq -0x68(%rbp), %rsi
movq %rbx, %rdx
callq 0x2bff4
movb $0x0, -0x40(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x59506(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
movq %r13, -0x30(%rbp)
movq %r14, %rdi
leaq -0x48(%rbp), %rsi
callq 0x160d8
movq %r13, %rdi
callq 0xf9d8
movq %rbx, %rdi
callq 0xf9d8
leaq -0x68(%rbp), %rdi
callq 0xf9d8
movq %r14, %rdi
callq 0x1bc7a
imulq $0xc, %r12, %r15
movl -0x110(%rbp,%r15), %esi
movl -0x10c(%rbp,%r15), %edx
movl -0x108(%rbp,%r15), %ecx
xorps %xmm0, %xmm0
movaps %xmm0, -0x390(%rbp)
movaps %xmm0, -0x3a0(%rbp)
movq %rbx, %r14
movq %rbx, %rdi
xorl %r8d, %r8d
leaq -0x3a0(%rbp), %rbx
movq %rbx, %r9
callq 0x32326
movq %rbx, %rdi
callq 0x332be
xorps %xmm0, %xmm0
movaps %xmm0, -0xd0(%rbp)
andq $0x0, -0xc0(%rbp)
leaq 0x2c2b8(%rip), %rax     # 0x5282d
movq %rax, -0x380(%rbp)
leaq 0x2c2be(%rip), %rax     # 0x52841
movq %rax, -0x378(%rbp)
leaq 0x34687(%rip), %rax     # 0x5ac18
movq %rax, -0x370(%rbp)
movq %rax, -0x368(%rbp)
movl $0x116, %edx            # imm = 0x116
leaq -0x380(%rbp), %rsi
leaq -0x370(%rbp), %rcx
callq 0x1c49e
movq %r14, %rdi
callq 0x32ba2
movb %al, -0x68(%rbp)
leaq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x2c4be(%rip), %rax     # 0x52a91
movq %rax, -0x88(%rbp)
leaq 0x2c4be(%rip), %rax     # 0x52a9f
movq %rax, -0x80(%rbp)
movb $0x0, -0x40(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x593e5(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x2c21c(%rip), %r13     # 0x5282d
movq %r13, -0x360(%rbp)
leaq 0x2c222(%rip), %rbx     # 0x52841
movq %rbx, -0x358(%rbp)
subq $0x8, %rsp
movl $0x116, %ecx            # imm = 0x116
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x360(%rbp), %rdx
pushq $0x2
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x18e5c
popq %rcx
popq %rdx
leaq -0x58(%rbp), %rdi
callq 0x35d22
movq %r13, -0x350(%rbp)
movq %rbx, -0x348(%rbp)
leaq 0x345aa(%rip), %rax     # 0x5ac18
movq %rax, -0x340(%rbp)
movq %rax, -0x338(%rbp)
movl $0x117, %edx            # imm = 0x117
leaq -0x350(%rbp), %rsi
leaq -0x340(%rbp), %rcx
callq 0x1c49e
movq %r12, -0xe0(%rbp)
leaq -0xd0(%rbp), %r12
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rcx
movq %rcx, -0x48(%rbp)
leaq 0x5932b(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b7d9(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %r13, -0x330(%rbp)
movq %rbx, -0x328(%rbp)
movq %r14, %rdi
callq 0x32bce
leaq -0x48(%rbp), %rbx
leaq (%r15,%rbp), %r10
addq $-0x108, %r10           # imm = 0xFEF8
movq %rax, -0x68(%rbp)
subq $0x8, %rsp
movl $0x117, %edx            # imm = 0x117
movq %rbx, %rdi
leaq -0x330(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x2c39c(%rip), %rax     # 0x52aad
pushq %rax
movq %r10, -0xa8(%rbp)
pushq %r10
leaq 0x2c37e(%rip), %rax     # 0x52aa0
pushq %rax
callq 0x32a71
addq $0x20, %rsp
addq %rbp, %r15
addq $-0x110, %r15           # imm = 0xFEF0
xorl %r13d, %r13d
movl (%r15), %eax
cmpl %eax, %r13d
jae 0x26782
movl $0x3, -0x68(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
leaq -0x68(%rbp), %rdx
callq 0x329a8
cmpq $0x0, -0x48(%rbp)
je 0x27134
movq %r12, %rdi
movq %rbx, %rsi
callq 0x32a36
movq %r14, %rdi
callq 0x323dc
movq %rbx, %rdi
callq 0x32584
incl %r13d
jmp 0x26739
movl 0x4(%r15), %ecx
movq %rcx, -0x98(%rbp)
leal (%rcx,%rax), %edx
movl 0x8(%r15), %ecx
cmpl %ecx, %edx
jbe 0x267a1
subl %eax, %ecx
movq %rcx, -0x98(%rbp)
leaq 0x2c085(%rip), %r13     # 0x5282d
movq %r13, -0x320(%rbp)
leaq 0x2c08b(%rip), %r13     # 0x52841
movq %r13, -0x318(%rbp)
leaq 0x34454(%rip), %rax     # 0x5ac18
movq %rax, -0x310(%rbp)
movq %rax, -0x308(%rbp)
movl $0x127, %edx            # imm = 0x127
leaq -0x320(%rbp), %rsi
leaq -0x310(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x591e3(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b691(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
leaq 0x2c01a(%rip), %rax     # 0x5282d
movq %rax, -0x300(%rbp)
movq %r13, -0x2f8(%rbp)
movq %r14, %rdi
callq 0x326b0
movq %rax, -0x68(%rbp)
subq $0x8, %rsp
movl $0x127, %edx            # imm = 0x127
movq %rbx, %rdi
leaq -0x300(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x2c294(%rip), %rax     # 0x52ae5
pushq %rax
leaq -0x98(%rbp), %rax
pushq %rax
leaq 0x2c140(%rip), %rax     # 0x529a1
pushq %rax
callq 0x325c2
addq $0x20, %rsp
movl (%r15), %r15d
movq %r12, %r13
movq -0xa8(%rbp), %r12
cmpl (%r12), %r15d
jae 0x268bf
movl $0x3, -0x68(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
leaq -0x68(%rbp), %rdx
callq 0x329a8
cmpq $0x0, -0x48(%rbp)
je 0x27153
movq %r13, %rdi
movq %rbx, %rsi
callq 0x32a36
movq %r14, %rdi
callq 0x323dc
movq %rbx, %rdi
callq 0x32584
incl %r15d
jmp 0x26878
leaq 0x2bf67(%rip), %r13     # 0x5282d
movq %r13, -0x2f0(%rbp)
leaq 0x2bf6d(%rip), %r15     # 0x52841
movq %r15, -0x2e8(%rbp)
leaq 0x34336(%rip), %rax     # 0x5ac18
movq %rax, -0x2e0(%rbp)
movq %rax, -0x2d8(%rbp)
movl $0x131, %edx            # imm = 0x131
leaq -0x2f0(%rbp), %rsi
leaq -0x2e0(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x590c5(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b573(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %r13, -0x2d0(%rbp)
movq %r15, -0x2c8(%rbp)
movq %r14, %rdi
callq 0x326b0
movq %rax, -0x68(%rbp)
andl $0x0, -0x88(%rbp)
subq $0x8, %rsp
movl $0x131, %edx            # imm = 0x131
movq %rbx, %r13
movq %rbx, %rdi
leaq -0x2d0(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x30d8d(%rip), %rax     # 0x576ff
pushq %rax
leaq -0x88(%rbp), %rax
pushq %rax
leaq 0x2c01f(%rip), %rax     # 0x529a1
pushq %rax
callq 0x3286b
addq $0x20, %rsp
movl $0x4, -0x48(%rbp)
leaq -0xa0(%rbp), %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x329a8
leaq 0x2be81(%rip), %r12     # 0x5282d
movq %r12, -0x2c0(%rbp)
movq %r15, -0x2b8(%rbp)
leaq 0x34257(%rip), %rax     # 0x5ac18
movq %rax, -0x2b0(%rbp)
movq %rax, -0x2a8(%rbp)
movl $0x135, %edx            # imm = 0x135
leaq -0x2c0(%rbp), %rsi
leaq -0x2b0(%rbp), %rcx
callq 0x1c49e
cmpq $0x0, -0xa0(%rbp)
sete -0x68(%rbp)
leaq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x2c00b(%rip), %rax     # 0x52a0f
movq %rax, -0x88(%rbp)
leaq 0x2c003(%rip), %rax     # 0x52a15
movq %rax, -0x80(%rbp)
movb $0x0, -0x40(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58fb4(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
movq %r12, -0x2a0(%rbp)
movq %r15, -0x298(%rbp)
subq $0x8, %rsp
movl $0x135, %ecx            # imm = 0x135
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
leaq -0x2a0(%rbp), %rdx
pushq $0x2
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x18e5c
popq %rcx
popq %rdx
leaq -0x58(%rbp), %rdi
callq 0x35d22
movq %r12, -0x290(%rbp)
movq %r15, -0x288(%rbp)
leaq 0x34188(%rip), %rax     # 0x5ac18
movq %rax, -0x280(%rbp)
movq %rax, -0x278(%rbp)
movl $0x138, %edx            # imm = 0x138
leaq -0x290(%rbp), %rsi
leaq -0x280(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58f17(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b3c5(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %r12, -0x270(%rbp)
movq %r15, -0x268(%rbp)
movq %r14, %r13
movq %r14, %rdi
callq 0x326b0
movq %rax, %r15
movq %r13, %rdi
callq 0x326ce
addq %r15, %rax
movq %rax, -0x68(%rbp)
movq %r13, %rdi
callq 0x326ec
movq %rbx, %r13
movq %rax, -0x88(%rbp)
subq $0x8, %rsp
movl $0x138, %edx            # imm = 0x138
movq %rbx, %rdi
leaq -0x270(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x2bdd9(%rip), %rax     # 0x52912
pushq %rax
leaq -0x88(%rbp), %rax
pushq %rax
leaq 0x2bda6(%rip), %rax     # 0x528ef
pushq %rax
callq 0x325c2
addq $0x20, %rsp
leaq 0x2bcd3(%rip), %rbx     # 0x5282d
movq %rbx, -0x260(%rbp)
leaq 0x2bcd9(%rip), %r15     # 0x52841
movq %r15, -0x258(%rbp)
leaq 0x340a2(%rip), %rax     # 0x5ac18
movq %rax, -0x250(%rbp)
movq %rax, -0x248(%rbp)
movl $0x139, %edx            # imm = 0x139
leaq -0x260(%rbp), %rsi
leaq -0x250(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58e31(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b2df(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %rbx, -0x240(%rbp)
movq %r15, -0x238(%rbp)
movq %r14, %rdi
callq 0x326ce
movq %rax, -0x68(%rbp)
subq $0x8, %rsp
movl $0x139, %edx            # imm = 0x139
movq %r13, %rdi
leaq -0x240(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x2beb1(%rip), %rax     # 0x52aad
pushq %rax
pushq -0xa8(%rbp)
leaq 0x2bcf8(%rip), %rax     # 0x52902
pushq %rax
callq 0x32a71
addq $0x20, %rsp
movq %rbx, -0x230(%rbp)
movq %r15, -0x228(%rbp)
leaq 0x33fef(%rip), %rax     # 0x5ac18
movq %rax, -0x220(%rbp)
movq %rax, -0x218(%rbp)
movl $0x13a, %edx            # imm = 0x13A
leaq -0x230(%rbp), %rsi
leaq -0x220(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58d7e(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2b22c(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %rbx, -0x210(%rbp)
movq %r15, -0x208(%rbp)
movq %r14, %rdi
callq 0x326ec
movq %rax, -0x68(%rbp)
subq $0x8, %rsp
movl $0x13a, %edx            # imm = 0x13A
movq %r13, %rdi
leaq -0x210(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x2bdfe(%rip), %rax     # 0x52aad
pushq %rax
pushq -0xa8(%rbp)
leaq 0x2bc55(%rip), %rax     # 0x52912
pushq %rax
callq 0x32a71
addq $0x20, %rsp
movq %rbx, -0x200(%rbp)
movq %r15, -0x1f8(%rbp)
leaq 0x33f3c(%rip), %rax     # 0x5ac18
movq %rax, -0x1f0(%rbp)
movq %rax, -0x1e8(%rbp)
movl $0x13b, %edx            # imm = 0x13B
leaq -0x200(%rbp), %rsi
leaq -0x1f0(%rbp), %rcx
callq 0x1c49e
movq %r14, %rdi
callq 0x3270a
xorb $0x1, %al
movb %al, -0x68(%rbp)
leaq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x2bc46(%rip), %rax     # 0x52966
movq %rax, -0x88(%rbp)
leaq 0x2bc42(%rip), %rax     # 0x52970
movq %rax, -0x80(%rbp)
movb $0x0, -0x40(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58c98(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x2bacf(%rip), %rbx     # 0x5282d
movq %rbx, -0x1e0(%rbp)
movq %r15, -0x1d8(%rbp)
subq $0x8, %rsp
movl $0x13b, %ecx            # imm = 0x13B
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
leaq -0x1e0(%rbp), %rdx
pushq $0x2
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x18e5c
popq %rcx
popq %rdx
leaq -0x58(%rbp), %rdi
callq 0x35d22
movq %rbx, -0x1d0(%rbp)
movq %r15, -0x1c8(%rbp)
leaq 0x33e65(%rip), %rax     # 0x5ac18
movq %rax, -0x1c0(%rbp)
movq %rax, -0x1b8(%rbp)
movl $0x13c, %edx            # imm = 0x13C
leaq -0x1d0(%rbp), %rsi
leaq -0x1c0(%rbp), %rcx
callq 0x1c49e
movq %r14, %rbx
movq %r14, %rdi
callq 0x3272e
testq %rax, %rax
setne -0x68(%rbp)
leaq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x2bb8a(%rip), %rax     # 0x52986
movq %rax, -0x88(%rbp)
leaq 0x2bb96(%rip), %rax     # 0x529a0
movq %rax, -0x80(%rbp)
movb $0x0, -0x40(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58bbc(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x2b9f3(%rip), %rax     # 0x5282d
movq %rax, -0x1b0(%rbp)
movq %r15, -0x1a8(%rbp)
subq $0x8, %rsp
movl $0x13c, %ecx            # imm = 0x13C
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
leaq -0x1b0(%rbp), %rdx
pushq $0x2
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x18e5c
popq %rcx
popq %rdx
leaq -0xd0(%rbp), %r12
leaq -0x58(%rbp), %rdi
callq 0x35d22
movq %r12, %rdi
callq 0x32b68
movq %rbx, %rdi
callq 0x3274e
leaq 0x2b995(%rip), %rbx     # 0x5282d
movq %r14, %rdi
callq 0x323dc
movq %rbx, -0x1a0(%rbp)
movq %r15, -0x198(%rbp)
leaq 0x33d63(%rip), %rax     # 0x5ac18
movq %rax, -0x190(%rbp)
movq %rax, -0x188(%rbp)
movl $0x143, %edx            # imm = 0x143
leaq -0x1a0(%rbp), %rsi
leaq -0x190(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58af2(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2afa0(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %rbx, -0x180(%rbp)
movq %r15, -0x178(%rbp)
movq %r14, %rdi
callq 0x326ce
movq %rax, -0x68(%rbp)
andl $0x0, -0x88(%rbp)
subq $0x8, %rsp
movl $0x143, %edx            # imm = 0x143
movq %r13, %rdi
leaq -0x180(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x307bd(%rip), %rax     # 0x576ff
pushq %rax
leaq -0x88(%rbp), %rax
pushq %rax
leaq 0x2b9b0(%rip), %rax     # 0x52902
pushq %rax
callq 0x3286b
addq $0x20, %rsp
movq %rbx, -0x170(%rbp)
movq %r15, -0x168(%rbp)
leaq 0x33ca7(%rip), %rax     # 0x5ac18
movq %rax, -0x160(%rbp)
movq %rax, -0x158(%rbp)
movl $0x144, %edx            # imm = 0x144
leaq -0x170(%rbp), %rsi
leaq -0x160(%rbp), %rcx
callq 0x1c49e
movb $0x0, -0x40(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58a36(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq 0x2aee4(%rip), %rax     # 0x51e99
movq %rax, -0x30(%rbp)
movq %rbx, -0x150(%rbp)
movq %r15, -0x148(%rbp)
movq %r14, %rdi
callq 0x326ec
movq %rax, -0x68(%rbp)
andl $0x0, -0x88(%rbp)
subq $0x8, %rsp
movl $0x144, %edx            # imm = 0x144
movq %r13, %rdi
leaq -0x150(%rbp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %r8d
leaq -0x68(%rbp), %r9
leaq 0x30701(%rip), %rax     # 0x576ff
pushq %rax
leaq -0x88(%rbp), %rax
pushq %rax
leaq 0x2b904(%rip), %rax     # 0x52912
pushq %rax
callq 0x3286b
addq $0x20, %rsp
movq %rbx, -0x140(%rbp)
movq %r15, -0x138(%rbp)
leaq 0x33beb(%rip), %rax     # 0x5ac18
movq %rax, -0x130(%rbp)
movq %rax, -0x128(%rbp)
movl $0x145, %edx            # imm = 0x145
leaq -0x140(%rbp), %rsi
leaq -0x130(%rbp), %rcx
callq 0x1c49e
movq %r14, %rbx
movq %r14, %rdi
callq 0x3270a
movb %al, -0x68(%rbp)
leaq -0x60(%rbp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x2b8f5(%rip), %rax     # 0x52967
movq %rax, -0x88(%rbp)
leaq 0x2b8f0(%rip), %rax     # 0x52970
movq %rax, -0x80(%rbp)
movb $0x0, -0x40(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x58946(%rip), %rax     # 0x7f9e0
movq %rax, -0x38(%rbp)
leaq -0x88(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x2b77d(%rip), %rax     # 0x5282d
movq %rax, -0x120(%rbp)
movq %r15, -0x118(%rbp)
subq $0x8, %rsp
movl $0x145, %ecx            # imm = 0x145
leaq -0x68(%rbp), %rdi
movq %r13, %rsi
leaq -0x120(%rbp), %rdx
pushq $0x2
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq $0x0
callq 0x18e5c
popq %rcx
popq %rdx
movq -0xe0(%rbp), %r12
leaq -0xd0(%rbp), %r13
leaq -0x58(%rbp), %rdi
callq 0x35d22
leaq -0xa0(%rbp), %rdi
callq 0x32584
movq %r13, %rdi
callq 0x32b76
movq %rbx, %rdi
callq 0x32962
incq %r12
jmp 0x2643f
addq $0x398, %rsp            # imm = 0x398
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2b8d5(%rip), %rdi     # 0x52a10
leaq 0x2b6eb(%rip), %rsi     # 0x5282d
leaq 0x2b980(%rip), %rcx     # 0x52ac9
movl $0x11b, %edx            # imm = 0x11B
callq 0xf340
leaq 0x2b8b6(%rip), %rdi     # 0x52a10
leaq 0x2b6cc(%rip), %rsi     # 0x5282d
leaq 0x2b961(%rip), %rcx     # 0x52ac9
movl $0x12b, %edx            # imm = 0x12B
callq 0xf340
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
jmp 0x27212
jmp 0x2723c
jmp 0x2723c
jmp 0x271b9
jmp 0x2723c
jmp 0x271b9
jmp 0x2723c
jmp 0x271b9
jmp 0x2723c
jmp 0x2723c
jmp 0x2723c
jmp 0x2724a
jmp 0x2724a
jmp 0x2724a
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x35d22
jmp 0x2723f
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x35d22
jmp 0x2725d
movq %rax, %rbx
jmp 0x2720b
movq %rax, %rbx
jmp 0x27202
movq %rax, %rbx
jmp 0x271f6
movq %rax, %rbx
leaq -0xd0(%rbp), %rdi
callq 0xf9d8
leaq -0x3c0(%rbp), %rdi
callq 0xf9d8
leaq -0x68(%rbp), %rdi
callq 0xf9d8
leaq -0x98(%rbp), %rdi
callq 0x1bc7a
jmp 0x27275
movq %rax, %rbx
leaq -0x3a0(%rbp), %rdi
callq 0x332be
jmp 0x27275
jmp 0x2724a
jmp 0x2723c
jmp 0x2723c
jmp 0x2723c
jmp 0x2723c
jmp 0x2724a
jmp 0x2724a
jmp 0x2724a
jmp 0x2724a
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
jmp 0x27258
jmp 0x2724a
movq %rax, %rbx
jmp 0x2725d
jmp 0x27251
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x32584
leaq -0xd0(%rbp), %rdi
callq 0x32b76
leaq -0x3c0(%rbp), %rdi
callq 0x32962
movq %rbx, %rdi
callq 0xf8a0