// File: /workspace/github_cpp_makefile_star2_O3/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, 0xec1b(%rip)      # 0x132b0
jne 0x46c2
movabsq $0x5deece66d, %rax      # imm = 0x5DEECE66D
imulq 0xebff(%rip), %rax      # 0x132a8
addq $0xb, %rax
movq %rax, %rcx
btrq $0x31, %rcx
movq %rcx, 0xebec(%rip)      # 0x132a8
btl $0x10, %eax
jb 0x46c9
xorl %eax, %eax
jmp 0x4902
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x7a50(%rip), %rsi      # 0xc126
callq 0x30a0
testl %eax, %eax
jne 0x46f0
movq 0x10(%r14), %rax
cmpq %rax, 0x18(%r14)
je 0x4930
movq (%rax), %r14
movq (%r14), %rax
cmpq $0x0, -0x18(%rax)
je 0x4911
callq 0x42d6
testb %al, %al
je 0x4769
leaq 0x7af5(%rip), %r15      # 0xc203
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48ab
leaq 0x7add(%rip), %rsi      # 0xc205
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x48f1
leaq 0x7ac8(%rip), %r15      # 0xc207
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48bd
leaq 0x7ab1(%rip), %rsi      # 0xc20a
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x48f1
callq 0x436b
testb %al, %al
je 0x4843
leaq 0x7a90(%rip), %r15      # 0xc20d
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48b4
leaq 0x7a82(%rip), %rbp      # 0xc219
movq %r14, %rdi
movq %rbp, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48c6
leaq 0x7a74(%rip), %r13      # 0xc225
movq %r14, %rdi
movq %r13, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48d8
leaq 0x7a66(%rip), %r12      # 0xc231
movq %r14, %rdi
movq %r12, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48ea
leaq 0x7a2e(%rip), %rsi      # 0xc213
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x48f1
leaq 0x7a23(%rip), %rsi      # 0xc21f
movq %r14, %rdi
callq 0x30a0
movq %rbp, %r15
testl %eax, %eax
je 0x48f1
leaq 0x7a15(%rip), %rsi      # 0xc22b
movq %r14, %rdi
callq 0x30a0
movq %r13, %r15
testl %eax, %eax
je 0x48f1
leaq 0x7a07(%rip), %rsi      # 0xc237
movq %r14, %rdi
callq 0x30a0
movq %r12, %r15
testl %eax, %eax
je 0x48f1
callq 0x43db
testb %al, %al
je 0x46c2
leaq 0x79e6(%rip), %r15      # 0xc23d
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48cf
leaq 0x79de(%rip), %r12      # 0xc24b
movq %r14, %rdi
movq %r12, %rsi
callq 0x30a0
testl %eax, %eax
je 0x48e1
leaq 0x79c1(%rip), %rsi      # 0xc244
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x48f1
leaq 0x79bb(%rip), %rsi      # 0xc251
movq %r14, %rdi
callq 0x30a0
movq %r12, %r15
testl %eax, %eax
jne 0x46c2
jmp 0x48f1
leaq 0x7953(%rip), %r15      # 0xc205
jmp 0x48f1
leaq 0x7958(%rip), %r15      # 0xc213
jmp 0x48f1
leaq 0x7946(%rip), %r15      # 0xc20a
jmp 0x48f1
leaq 0x7952(%rip), %r15      # 0xc21f
jmp 0x48f1
leaq 0x796e(%rip), %r15      # 0xc244
jmp 0x48f1
leaq 0x794c(%rip), %r15      # 0xc22b
jmp 0x48f1
leaq 0x7969(%rip), %r15      # 0xc251
jmp 0x48f1
leaq 0x7946(%rip), %r15      # 0xc237
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3e61
movq %rax, (%rbx)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x7854(%rip), %rdi      # 0xc16c
leaq 0x770e(%rip), %rsi      # 0xc02d
leaq 0x78a3(%rip), %rcx      # 0xc1c9
movl $0x1fb, %edx            # imm = 0x1FB
callq 0x31a0
leaq 0x77f2(%rip), %rdi      # 0xc129
leaq 0x76ef(%rip), %rsi      # 0xc02d
leaq 0x7884(%rip), %rcx      # 0xc1c9
movl $0x1f7, %edx            # imm = 0x1F7
callq 0x31a0