// File: /workspace/github_cpp_makefile_star2_O3/vsklad[P]cgen/./bal/cnf/encoding/cnfencoding.cpp
// Function: bal::maj(bal::Cnf*, unsigned int, unsigned int, unsigned int, unsigned int)
void maj(Cnf* const formula, const literalid_t r, const literalid_t x, const literalid_t y, const literalid_t z) {
        _assert_level_1(formula != nullptr);
        _assert_level_1(literal_t__is_variable(r));
        _assert_level_1(literal_t__is_variable(x));
        _assert_level_1(literal_t__is_variable(y));
        _assert_level_1(literal_t__is_variable(z));
        formula->append_clause_l(x, y, literal_t__negated(r));
        formula->append_clause_l(x, z, literal_t__negated(r));
        formula->append_clause_l(y, z, literal_t__negated(r));
        formula->append_clause_l(literal_t__negated(x), literal_t__negated(y), r);
        formula->append_clause_l(literal_t__negated(x), literal_t__negated(z), r);
        formula->append_clause_l(literal_t__negated(y), literal_t__negated(z), r);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
testq %rdi, %rdi
je 0xfa9a
leal -0x2(%rsi), %eax
cmpl $-0x3, %eax
jae 0xfab9
movl %edx, %r12d
leal -0x2(%r12), %eax
cmpl $-0x3, %eax
jae 0xfad8
leal -0x2(%rcx), %eax
cmpl $-0x3, %eax
jae 0xfaf7
leal -0x2(%r8), %eax
cmpl $-0x3, %eax
movq %r8, -0x50(%rbp)
jae 0xfb16
movq %rdi, %rbx
addq $0x78, %rbx
movl %esi, %r14d
xorl $0x1, %r14d
leaq -0x3c(%rbp), %r15
movl %r12d, (%r15)
movl %ecx, 0x4(%r15)
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %rsi, -0x48(%rbp)
movq %r15, %rsi
movl $0x3, %edx
movq %rcx, -0x30(%rbp)
callq 0xfc72
movl %r12d, (%r15)
movq -0x50(%rbp), %r13
movl %r13d, 0x4(%r15)
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0xfc72
movq -0x30(%rbp), %rax
movl %eax, (%r15)
movl %r13d, 0x4(%r15)
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0xfc72
xorl $0x1, %r12d
movq -0x30(%rbp), %rax
xorl $0x1, %eax
movq %rax, -0x30(%rbp)
movl %r12d, (%r15)
movl %eax, 0x4(%r15)
movq -0x48(%rbp), %r14
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0xfc72
xorl $0x1, %r13d
movl %r12d, (%r15)
movl %r13d, 0x4(%r15)
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0xfc72
movq -0x30(%rbp), %rax
movl %eax, (%r15)
movl %r13d, 0x4(%r15)
movl %r14d, 0x8(%r15)
leaq -0x3c(%rbp), %rsi
movq %rbx, %rdi
movl $0x3, %edx
callq 0xfc72
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3ac61(%rip), %rdi     # 0x4a702
leaq 0x302e8(%rip), %rsi     # 0x3fd90
leaq 0x30590(%rip), %rcx     # 0x4003f
movl $0x47, %edx
callq 0xb180
leaq 0x303c6(%rip), %rdi     # 0x3fe86
leaq 0x302c9(%rip), %rsi     # 0x3fd90
leaq 0x30571(%rip), %rcx     # 0x4003f
movl $0x48, %edx
callq 0xb180
leaq 0x303e7(%rip), %rdi     # 0x3fec6
leaq 0x302aa(%rip), %rsi     # 0x3fd90
leaq 0x30552(%rip), %rcx     # 0x4003f
movl $0x49, %edx
callq 0xb180
leaq 0x30408(%rip), %rdi     # 0x3ff06
leaq 0x3028b(%rip), %rsi     # 0x3fd90
leaq 0x30533(%rip), %rcx     # 0x4003f
movl $0x4a, %edx
callq 0xb180
leaq 0x304e2(%rip), %rdi     # 0x3ffff
leaq 0x3026c(%rip), %rsi     # 0x3fd90
leaq 0x30514(%rip), %rcx     # 0x4003f
movl $0x4b, %edx
callq 0xb180