// File: /workspace/github_cpp_makefile_star2_O1/bonetblai[P]mdp-engine/ctp3/../engine/bdd_priority_queue.h
// Function: std::bdd_priority_queue<Online::Policy::AOT::node_t<state_t>*, Online::Policy::AOT::min_priority_t<state_t>, Online::Policy::AOT::max_priority_t<state_t>>::push(Online::Policy::AOT::node_t<state_t>*&)
std::pair<bool, bool> push(T &element) {
        if( max_size_ < capacity_ ) {
            container_t *container = allocate_container(element);
            push_max(1 + max_size_, container);
            ++max_size_;
            assert(check());
            return std::make_pair(true, false);
        } else {
            unsigned min = min_array_[1];
            if( max_cmpfn_(max_array_[min]->element_, element) ) {
                min_array_[1] = min_array_[min_size_];
                max_array_[min_array_[1]]->xref_ = 1;
                --min_size_;
                if( min_size_ > 0 ) {
                    heapify_min(1);
                }

                remove_from_max(min);
                assert(pool_ != 0);
                removed_element_ = pool_->element_;

                assert(max_size_ < capacity_);
                push(element);
                return std::make_pair(true, true);
            } else {
                return std::make_pair(false, false);
            }
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
xorl %r12d, %r12d
movl $0x101, %r13d           # imm = 0x101
movl 0x18(%rbx), %eax
cmpl 0x4(%rbx), %eax
jb 0x2538f
movq 0x20(%rbx), %rax
movq 0x40(%rbx), %rcx
movl 0x4(%rcx), %r15d
movq (%rax,%r15,8), %rdx
movq (%rdx), %rdx
movq (%r14), %rsi
movss 0xc(%rdx), %xmm0
movaps 0x7d86(%rip), %xmm2     # 0x2d0a0
andps %xmm2, %xmm0
movss 0xc(%rsi), %xmm1
andps %xmm2, %xmm1
ucomiss %xmm1, %xmm0
jbe 0x253ea
movl 0x38(%rbx), %edx
movl (%rcx,%rdx,4), %edx
movl %edx, 0x4(%rcx)
movq (%rax,%rdx,8), %rax
movl $0x1, 0x8(%rax)
decl 0x38(%rbx)
je 0x25354
movq %rbx, %rdi
movl $0x1, %esi
callq 0x2551c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x25626
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x25402
movq (%rax), %rax
movq %rax, 0x10(%rbx)
movl 0x18(%rbx), %eax
cmpl 0x4(%rbx), %eax
jae 0x25421
testb $0x1, %r12b
cmovel %r13d, %ebp
movb $0x1, %r12b
jmp 0x252ec
movq %rbx, %rdi
movq %r14, %rsi
callq 0x25440
movl 0x18(%rbx), %esi
incl %esi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x2548e
incl 0x18(%rbx)
movq %rbx, %rdi
callq 0x24be2
testb %al, %al
je 0x253cb
movq %rbx, %rdi
callq 0x24d5a
movl %eax, %ecx
movw $0x1, %ax
testb %cl, %cl
jne 0x253ec
leaq 0x93e0(%rip), %rdi      # 0x2e7b2
leaq 0x93e1(%rip), %rsi      # 0x2e7ba
leaq 0x97b7(%rip), %rcx      # 0x2eb97
movl $0x13b, %edx            # imm = 0x13B
callq 0x61c0
xorl %eax, %eax
testb $0x1, %r12b
cmovnel %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98ee(%rip), %rdi      # 0x2ecf7
leaq 0x93aa(%rip), %rsi      # 0x2e7ba
leaq 0x9780(%rip), %rcx      # 0x2eb97
movl $0x148, %edx            # imm = 0x148
callq 0x61c0
leaq 0x98da(%rip), %rdi      # 0x2ed02
leaq 0x938b(%rip), %rsi      # 0x2e7ba
leaq 0x9761(%rip), %rcx      # 0x2eb97
movl $0x14b, %edx            # imm = 0x14B
callq 0x61c0