// File: 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
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x13592
jmp 0x135b1
leaq 0x53863(%rip), %rdi     # 0x66dfc
leaq 0x48804(%rip), %rsi     # 0x5bda4
movl $0x47, %edx
leaq 0x48aa7(%rip), %rcx     # 0x5c053
callq 0xd1c0
xorl %eax, %eax
cmpl $0x1, -0xc(%rbp)
movb %al, -0x19(%rbp)
jbe 0x135c6
cmpl $-0x2, -0xc(%rbp)
setbe %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
testb $0x1, %al
jne 0x135cf
jmp 0x135d1
jmp 0x135f0
leaq 0x488c2(%rip), %rdi     # 0x5be9a
leaq 0x487c5(%rip), %rsi     # 0x5bda4
movl $0x48, %edx
leaq 0x48a68(%rip), %rcx     # 0x5c053
callq 0xd1c0
xorl %eax, %eax
cmpl $0x1, -0x10(%rbp)
movb %al, -0x1a(%rbp)
jbe 0x13605
cmpl $-0x2, -0x10(%rbp)
setbe %al
movb %al, -0x1a(%rbp)
movb -0x1a(%rbp), %al
testb $0x1, %al
jne 0x1360e
jmp 0x13610
jmp 0x1362f
leaq 0x488c3(%rip), %rdi     # 0x5beda
leaq 0x48786(%rip), %rsi     # 0x5bda4
movl $0x49, %edx
leaq 0x48a29(%rip), %rcx     # 0x5c053
callq 0xd1c0
xorl %eax, %eax
cmpl $0x1, -0x14(%rbp)
movb %al, -0x1b(%rbp)
jbe 0x13644
cmpl $-0x2, -0x14(%rbp)
setbe %al
movb %al, -0x1b(%rbp)
movb -0x1b(%rbp), %al
testb $0x1, %al
jne 0x1364d
jmp 0x1364f
jmp 0x1366e
leaq 0x488c4(%rip), %rdi     # 0x5bf1a
leaq 0x48747(%rip), %rsi     # 0x5bda4
movl $0x4a, %edx
leaq 0x489ea(%rip), %rcx     # 0x5c053
callq 0xd1c0
xorl %eax, %eax
cmpl $0x1, -0x18(%rbp)
movb %al, -0x1c(%rbp)
jbe 0x13683
cmpl $-0x2, -0x18(%rbp)
setbe %al
movb %al, -0x1c(%rbp)
movb -0x1c(%rbp), %al
testb $0x1, %al
jne 0x1368c
jmp 0x1368e
jmp 0x136ad
leaq 0x4897e(%rip), %rdi     # 0x5c013
leaq 0x48708(%rip), %rsi     # 0x5bda4
movl $0x4b, %edx
leaq 0x489ab(%rip), %rcx     # 0x5c053
callq 0xd1c0
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movl -0xc(%rbp), %ecx
xorl $0x1, %ecx
callq 0x13a90
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x10(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0xc(%rbp), %ecx
xorl $0x1, %ecx
callq 0x13a90
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl -0xc(%rbp), %ecx
xorl $0x1, %ecx
callq 0x13a90
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x10(%rbp), %esi
xorl $0x1, %esi
movl -0x14(%rbp), %edx
xorl $0x1, %edx
movl -0xc(%rbp), %ecx
callq 0x13a90
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x10(%rbp), %esi
xorl $0x1, %esi
movl -0x18(%rbp), %edx
xorl $0x1, %edx
movl -0xc(%rbp), %ecx
callq 0x13a90
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x14(%rbp), %esi
xorl $0x1, %esi
movl -0x18(%rbp), %edx
xorl $0x1, %edx
movl -0xc(%rbp), %ecx
callq 0x13a90
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)