// File: /workspace/github_cpp_makefile_star2_O3/UBOdin[P]jitd-cpp/include/policy/PureLocalPolicy.hpp
// Function: PureLocalPolicy<Record>::act()
inline bool act(){
      if(todos.empty()){ return false; }
      Action<Tuple> next = todos.top(); todos.pop();
      CogPtr<Tuple> target = next.target->get();
      CogPtr<Tuple> replacement = target;
      if(next.effect(replacement)){
        target->apply_to_children(std::bind(&PureLocalPolicy::dequeueCog, this, std::placeholders::_1));
        next.target->put(replacement);
        enqueueCog(next.target);
      }
      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq (%rdi), %r15
movq 0x8(%rdi), %r13
cmpq %r13, %r15
je 0xc5be
movq %rdi, %rbx
movq (%r15), %rax
movq %rax, -0x98(%rbp)
movq 0x8(%r15), %rax
movq %rax, -0x90(%rbp)
testq %rax, %rax
je 0xc36a
movq 0xbc64(%rip), %rcx      # 0x17fc0
cmpb $0x0, (%rcx)
je 0xc366
incl 0x8(%rax)
jmp 0xc36a
lock
incl 0x8(%rax)
leaq -0x88(%rbp), %rdi
leaq 0x10(%r15), %rsi
callq 0xdea4
movl 0x30(%r15), %eax
movl %eax, -0x68(%rbp)
movq %rbx, -0x50(%rbp)
movq %rbx, %rdi
callq 0xd372
movq -0x98(%rbp), %rbx
leaq -0x40(%rbp), %rdi
movq %rbx, %rsi
callq 0x4340
movq (%rbx), %r12
movq 0x8(%rbx), %rbx
testq %rbx, %rbx
je 0xc3bd
movq 0xbc0d(%rip), %rax      # 0x17fc0
cmpb $0x0, (%rax)
je 0xc3d6
incl 0x8(%rbx)
jmp 0xc3da
leaq -0x40(%rbp), %r14
movq %r14, %rdi
callq 0x42e0
movq %r12, (%r14)
movq $0x0, 0x8(%r14)
jmp 0xc402
lock
incl 0x8(%rbx)
leaq -0x40(%rbp), %r14
movq %r14, %rdi
callq 0x42e0
movq %r12, (%r14)
movq %rbx, 0x8(%r14)
movq 0xbbcc(%rip), %rax      # 0x17fc0
cmpb $0x0, (%rax)
je 0xc3fe
incl 0x8(%rbx)
jmp 0xc402
lock
incl 0x8(%rbx)
cmpq $0x0, -0x78(%rbp)
je 0xc5e1
leaq -0x40(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq *-0x70(%rbp)
testb %al, %al
je 0xc578
xorps %xmm0, %xmm0
movaps %xmm0, -0xb0(%rbp)
movaps %xmm0, -0xc0(%rbp)
movl $0x18, %edi
movq %rbx, -0x30(%rbp)
callq 0x4270
leaq 0x2709(%rip), %rcx      # 0xeb52
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq -0xc0(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x1c21(%rip), %rax      # 0xe08e
movq %rax, 0x18(%rsi)
leaq 0x1c2a(%rip), %rax      # 0xe0a2
movq %rax, 0x10(%rsi)
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
movq %r13, -0xa0(%rbp)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0xc4aa
leaq -0xc0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x98(%rbp), %r13
movq -0x40(%rbp), %r14
movq -0x38(%rbp), %r12
testq %r12, %r12
je 0xc4e5
movq 0xbafb(%rip), %rax      # 0x17fc0
cmpb $0x0, (%rax)
je 0xc4d1
incl 0x8(%r12)
jmp 0xc4e0
lock
incl 0x8(%r12)
cmpb $0x0, (%rax)
je 0xc5d6
incl 0x8(%r12)
leaq -0x42(%rbp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x4340
movq %r14, (%r13)
movq 0x8(%r13), %r14
movq %r12, 0x8(%r13)
movq %rbx, %rdi
callq 0x42e0
testq %r14, %r14
je 0xc515
movq %r14, %rdi
callq 0x65c2
testq %r12, %r12
movq -0xa0(%rbp), %r13
movq -0x30(%rbp), %rbx
je 0xc52d
movq %r12, %rdi
callq 0x65c2
movq -0x98(%rbp), %rcx
movq -0x90(%rbp), %rax
movq %rcx, -0x60(%rbp)
movq %rax, -0x58(%rbp)
testq %rax, %rax
je 0xc55d
movq 0xba71(%rip), %rcx      # 0x17fc0
cmpb $0x0, (%rcx)
je 0xc559
incl 0x8(%rax)
jmp 0xc55d
lock
incl 0x8(%rax)
leaq -0x60(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0xd3ba
movq -0x58(%rbp), %rdi
testq %rdi, %rdi
je 0xc578
callq 0x65c2
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0xc586
callq 0x65c2
testq %rbx, %rbx
je 0xc593
movq %rbx, %rdi
callq 0x65c2
movq -0x78(%rbp), %rax
testq %rax, %rax
je 0xc5ad
leaq -0x88(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0xc5be
callq 0x65c2
cmpq %r13, %r15
setne %al
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
lock
incl 0x8(%r12)
jmp 0xc4e5
callq 0x40d0
jmp 0xc621
movq %rax, %r14
movq -0x58(%rbp), %rdi
testq %rdi, %rdi
je 0xc64b
callq 0x65c2
jmp 0xc64b
movq %rax, %r14
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0xc64b
leaq -0xc0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xc64b
jmp 0xc621
jmp 0xc648
movq %rax, %rdi
callq 0x4acd
movq %rax, %r14
jmp 0xc669
movq %rax, %r14
movq -0x90(%rbp), %rdi
testq %rdi, %rdi
je 0xc675
callq 0x65c2
jmp 0xc675
movq %rbx, -0x30(%rbp)
movq %rax, %r14
movq -0x38(%rbp), %rdi
testq %rdi, %rdi
je 0xc659
callq 0x65c2
cmpq $0x0, -0x30(%rbp)
je 0xc669
movq -0x30(%rbp), %rdi
callq 0x65c2
leaq -0x98(%rbp), %rdi
callq 0xd91c
movq %r14, %rdi
callq 0x4400
nop