// File: /workspace/github_cpp_makefile_star2_O1/SMT-COMP[P]scrambler/scrambler.cpp
// Function: scrambler::flip_antisymm(scrambler::node const*, scrambler::node**)
bool flip_antisymm(const node *n, node ** const out_n)
{
    if (no_scramble) {
        return false;
    }

    if (!next_rand_int(2)) {
        return false;
    }

    // *n might be a qualified identifier of the form ('as' identifier sort)
    const std::string *symbol = &(n->symbol);
    if (*symbol == "as") {
        assert(n->children.size() > 0);
        symbol = &(n->children[0]->symbol);
    }
    const std::string &s = *symbol;
    assert(!s.empty());

    // arithmetic (IA, RA, IRA) (but not difference logic)
    if (logic_is_arith()) {
        if (s == "<") {
            *out_n = make_node(">");
            return true;
        } else if (s == ">") {
            *out_n = make_node("<");
            return true;
        } else if (s == "<=") {
            *out_n = make_node(">=");
            return true;
        } else if (s == ">=") {
            *out_n = make_node("<=");
            return true;
        }
    }

    // BitVectors
    if (logic_is_bv()) {
        if (s == "bvslt") {
            *out_n = make_node("bvsgt");
            return true;
        } else if (s == "bvsle") {
            *out_n = make_node("bvsge");
            return true;
        } else if (s == "bvult") {
            *out_n = make_node("bvugt");
            return true;
        } else if (s == "bvule") {
            *out_n = make_node("bvuge");
            return true;
        } else if (s == "bvsgt") {
            *out_n = make_node("bvslt");
            return true;
        } else if (s == "bvsge") {
            *out_n = make_node("bvsle");
            return true;
        } else if (s == "bvugt") {
            *out_n = make_node("bvult");
            return true;
        } else if (s == "bvuge") {
            *out_n = make_node("bvule");
            return true;
        }
    }

    // FloatingPoint
    if (logic_is_fp()) {
        if (s == "fp.leq") {
            *out_n = make_node("fp.geq");
            return true;
        } else if (s == "fp.lt") {
            *out_n = make_node("fp.gt");
            return true;
        } else if (s == "fp.geq") {
            *out_n = make_node("fp.leq");
            return true;
        } else if (s == "fp.gt") {
            *out_n = make_node("fp.lt");
            return true;
        }
    }

    return false;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpb $0x0, 0xebfa(%rip)      # 0x132a8
jne 0x46db
movabsq $0x5deece66d, %rax      # imm = 0x5DEECE66D
imulq 0xebde(%rip), %rax      # 0x132a0
addq $0xb, %rax
movq %rax, %rcx
btrq $0x31, %rcx
movq %rcx, 0xebcb(%rip)      # 0x132a0
btl $0x10, %eax
jb 0x46e2
xorl %eax, %eax
jmp 0x491b
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x7a37(%rip), %rsi      # 0xc126
callq 0x30a0
testl %eax, %eax
jne 0x4709
movq 0x10(%r14), %rax
cmpq %rax, 0x18(%r14)
je 0x4949
movq (%rax), %r14
movq (%r14), %rax
cmpq $0x0, -0x18(%rax)
je 0x492a
callq 0x42e9
testb %al, %al
je 0x4782
leaq 0x7adc(%rip), %r15      # 0xc203
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48c4
leaq 0x7ac4(%rip), %rsi      # 0xc205
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x490a
leaq 0x7aaf(%rip), %r15      # 0xc207
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48d6
leaq 0x7a98(%rip), %rsi      # 0xc20a
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x490a
callq 0x4380
testb %al, %al
je 0x485c
leaq 0x7a77(%rip), %r15      # 0xc20d
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48cd
leaq 0x7a69(%rip), %rbp      # 0xc219
movq %r14, %rdi
movq %rbp, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48df
leaq 0x7a5b(%rip), %r13      # 0xc225
movq %r14, %rdi
movq %r13, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48f1
leaq 0x7a4d(%rip), %r12      # 0xc231
movq %r14, %rdi
movq %r12, %rsi
callq 0x30a0
testl %eax, %eax
je 0x4903
leaq 0x7a15(%rip), %rsi      # 0xc213
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x490a
leaq 0x7a0a(%rip), %rsi      # 0xc21f
movq %r14, %rdi
callq 0x30a0
movq %rbp, %r15
testl %eax, %eax
je 0x490a
leaq 0x79fc(%rip), %rsi      # 0xc22b
movq %r14, %rdi
callq 0x30a0
movq %r13, %r15
testl %eax, %eax
je 0x490a
leaq 0x79ee(%rip), %rsi      # 0xc237
movq %r14, %rdi
callq 0x30a0
movq %r12, %r15
testl %eax, %eax
je 0x490a
callq 0x43f2
testb %al, %al
je 0x46db
leaq 0x79cd(%rip), %r15      # 0xc23d
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48e8
leaq 0x79c5(%rip), %r12      # 0xc24b
movq %r14, %rdi
movq %r12, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48fa
leaq 0x79a8(%rip), %rsi      # 0xc244
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x490a
leaq 0x79a2(%rip), %rsi      # 0xc251
movq %r14, %rdi
callq 0x30a0
movq %r12, %r15
testl %eax, %eax
jne 0x46db
jmp 0x490a
leaq 0x793a(%rip), %r15      # 0xc205
jmp 0x490a
leaq 0x793f(%rip), %r15      # 0xc213
jmp 0x490a
leaq 0x792d(%rip), %r15      # 0xc20a
jmp 0x490a
leaq 0x7939(%rip), %r15      # 0xc21f
jmp 0x490a
leaq 0x7955(%rip), %r15      # 0xc244
jmp 0x490a
leaq 0x7933(%rip), %r15      # 0xc22b
jmp 0x490a
leaq 0x7950(%rip), %r15      # 0xc251
jmp 0x490a
leaq 0x792d(%rip), %r15      # 0xc237
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3e7e
movq %rax, (%rbx)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x783b(%rip), %rdi      # 0xc16c
leaq 0x76f5(%rip), %rsi      # 0xc02d
leaq 0x788a(%rip), %rcx      # 0xc1c9
movl $0x1fb, %edx            # imm = 0x1FB
callq 0x3190
leaq 0x77d9(%rip), %rdi      # 0xc129
leaq 0x76d6(%rip), %rsi      # 0xc02d
leaq 0x786b(%rip), %rcx      # 0xc1c9
movl $0x1f7, %edx            # imm = 0x1F7
callq 0x3190