// File: WayfireWM[P]wf-utils/wayfire/rule/lambda_rule.cpp
// Function: wf::lambda_rule_t::to_string[abi:cxx11]() const
std::string lambda_rule_t::to_string() const
{
    std::string out = "lambda rule: [signal: ";
    out.append(_signal).append(", condition: ");
    if (_condition)
    {
        out.append(_condition->to_string());
    }
    else
    {
        out.append("nullptr");
    }
    out.append(", if_lambda: ");
    if (_if_lambda)
    {
        auto uint_ptr = reinterpret_cast<std::uintptr_t>(&_if_lambda);
        std::stringstream ss;
        ss << "0x" << std::hex << uint_ptr;
        out.append(ss.str());
    }
    else
    {
        out.append("nullptr");
    }
    out.append(", else_lambda: ");
    if (_else_lambda)
    {
        auto uint_ptr = reinterpret_cast<std::uintptr_t>(&_else_lambda);
        std::stringstream ss;
        ss << "0x" << std::hex << uint_ptr;
        out.append(ss.str());
    }
    else
    {
        out.append("nullptr");
    }
    out.append("]");
    return out;
}

// Assembly:
subq $0x3f8, %rsp            # imm = 0x3F8
movq %rdi, 0x40(%rsp)
movq %rdi, %rax
movq %rax, 0x30(%rsp)
movq %rdi, 0x3f0(%rsp)
movq %rsi, 0x3e8(%rsp)
movq 0x3e8(%rsp), %rax
movq %rax, 0x38(%rsp)
movb $0x0, 0x3e7(%rsp)
leaq 0x3e6(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x6500
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rdx
leaq 0x46d0(%rip), %rsi      # 0x1fccc
callq 0x8280
jmp 0x1b603
leaq 0x3e6(%rsp), %rdi
callq 0x6360
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x6560
movq %rax, 0x28(%rsp)
jmp 0x1b626
movq 0x28(%rsp), %rdi
leaq 0x46b1(%rip), %rsi      # 0x1fce3
callq 0x6540
jmp 0x1b639
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
callq 0xa990
testb $0x1, %al
jne 0x1b650
jmp 0x1b6fc
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
callq 0x9f00
movq %rax, %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x3b0(%rsp), %rdi
callq *%rax
jmp 0x1b674
movq 0x40(%rsp), %rdi
leaq 0x3b0(%rsp), %rsi
callq 0x6560
jmp 0x1b688
leaq 0x3b0(%rsp), %rdi
callq 0x61d0
jmp 0x1b711
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
leaq 0x3e6(%rsp), %rdi
callq 0x6360
jmp 0x1b9a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
jmp 0x1b99e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
leaq 0x3b0(%rsp), %rdi
callq 0x61d0
jmp 0x1b99e
movq 0x40(%rsp), %rdi
leaq 0x3954(%rip), %rsi      # 0x1f05c
callq 0x6540
jmp 0x1b70f
jmp 0x1b711
movq 0x40(%rsp), %rdi
leaq 0x45d4(%rip), %rsi      # 0x1fcf1
callq 0x6540
jmp 0x1b724
movq 0x38(%rsp), %rdi
addq $0x30, %rdi
callq 0x1a750
testb $0x1, %al
jne 0x1b73b
jmp 0x1b832
movq 0x38(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x3a8(%rsp)
leaq 0x220(%rsp), %rdi
callq 0x6210
jmp 0x1b75b
leaq 0x230(%rsp), %rdi
leaq 0x4595(%rip), %rsi      # 0x1fcff
callq 0x62f0
movq %rax, 0x20(%rsp)
jmp 0x1b776
movq 0x20(%rsp), %rdi
leaq 0x23e(%rip), %rsi       # 0x1b9c0
callq 0x60d0
movq %rax, 0x18(%rsp)
jmp 0x1b78e
movq 0x18(%rsp), %rdi
movq 0x3a8(%rsp), %rsi
callq 0x6080
jmp 0x1b7a2
leaq 0x200(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x62e0
jmp 0x1b7b9
movq 0x40(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x6560
jmp 0x1b7cd
leaq 0x200(%rsp), %rdi
callq 0x61d0
leaq 0x220(%rsp), %rdi
callq 0x6250
jmp 0x1b847
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
jmp 0x1b820
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x61d0
leaq 0x220(%rsp), %rdi
callq 0x6250
jmp 0x1b99e
movq 0x40(%rsp), %rdi
leaq 0x381e(%rip), %rsi      # 0x1f05c
callq 0x6540
jmp 0x1b845
jmp 0x1b847
movq 0x40(%rsp), %rdi
leaq 0x44af(%rip), %rsi      # 0x1fd02
callq 0x6540
jmp 0x1b85a
movq 0x38(%rsp), %rdi
addq $0x50, %rdi
callq 0x1a750
testb $0x1, %al
jne 0x1b871
jmp 0x1b94d
movq 0x38(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x1f8(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x6210
jmp 0x1b88e
leaq 0x80(%rsp), %rdi
leaq 0x4462(%rip), %rsi      # 0x1fcff
callq 0x62f0
movq %rax, 0x10(%rsp)
jmp 0x1b8a9
movq 0x10(%rsp), %rdi
leaq 0x10b(%rip), %rsi       # 0x1b9c0
callq 0x60d0
movq %rax, 0x8(%rsp)
jmp 0x1b8c1
movq 0x8(%rsp), %rdi
movq 0x1f8(%rsp), %rsi
callq 0x6080
jmp 0x1b8d5
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x62e0
jmp 0x1b8e6
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x6560
jmp 0x1b8f7
leaq 0x50(%rsp), %rdi
callq 0x61d0
leaq 0x70(%rsp), %rdi
callq 0x6250
jmp 0x1b962
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
jmp 0x1b941
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3d8(%rsp)
movl %eax, 0x3d4(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x61d0
leaq 0x70(%rsp), %rdi
callq 0x6250
jmp 0x1b99e
movq 0x40(%rsp), %rdi
leaq 0x3703(%rip), %rsi      # 0x1f05c
callq 0x6540
jmp 0x1b960
jmp 0x1b962
movq 0x40(%rsp), %rdi
leaq 0x36af(%rip), %rsi      # 0x1f01d
callq 0x6540
jmp 0x1b975
movb $0x1, 0x3e7(%rsp)
testb $0x1, 0x3e7(%rsp)
jne 0x1b991
movq 0x40(%rsp), %rdi
callq 0x61d0
movq 0x30(%rsp), %rax
addq $0x3f8, %rsp            # imm = 0x3F8
retq
movq 0x40(%rsp), %rdi
callq 0x61d0
movq 0x3d8(%rsp), %rdi
callq 0x64f0
nopw %cs:(%rax,%rax)
nop