// File: /workspace/github_cpp_makefile_star2_O1/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 0x10e0e
leal -0x2(%rsi), %eax
cmpl $-0x3, %eax
jae 0x10e2d
movl %edx, %r12d
leal -0x2(%r12), %eax
cmpl $-0x3, %eax
jae 0x10e4c
leal -0x2(%rcx), %eax
cmpl $-0x3, %eax
jae 0x10e6b
leal -0x2(%r8), %eax
cmpl $-0x3, %eax
movq %r8, -0x50(%rbp)
jae 0x10e8a
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 0x10fec
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 0x10fec
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 0x10fec
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 0x10fec
xorl $0x1, %r13d
movl %r12d, (%r15)
movl %r13d, 0x4(%r15)
movl %r14d, 0x8(%r15)
movq %rbx, %rdi
movq %r15, %rsi
movl $0x3, %edx
callq 0x10fec
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 0x10fec
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3b9eb(%rip), %rdi     # 0x4c800
leaq 0x30f98(%rip), %rsi     # 0x41db4
leaq 0x31240(%rip), %rcx     # 0x42063
movl $0x47, %edx
callq 0xc180
leaq 0x31076(%rip), %rdi     # 0x41eaa
leaq 0x30f79(%rip), %rsi     # 0x41db4
leaq 0x31221(%rip), %rcx     # 0x42063
movl $0x48, %edx
callq 0xc180
leaq 0x31097(%rip), %rdi     # 0x41eea
leaq 0x30f5a(%rip), %rsi     # 0x41db4
leaq 0x31202(%rip), %rcx     # 0x42063
movl $0x49, %edx
callq 0xc180
leaq 0x310b8(%rip), %rdi     # 0x41f2a
leaq 0x30f3b(%rip), %rsi     # 0x41db4
leaq 0x311e3(%rip), %rcx     # 0x42063
movl $0x4a, %edx
callq 0xc180
leaq 0x31192(%rip), %rdi     # 0x42023
leaq 0x30f1c(%rip), %rsi     # 0x41db4
leaq 0x311c4(%rip), %rcx     # 0x42063
movl $0x4b, %edx
callq 0xc180