// File: /workspace/github_cpp_makefile_star2_O2/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, 0xf122(%rip)      # 0x13280
jne 0x418b
movabsq $0x5deece66d, %rax      # imm = 0x5DEECE66D
imulq 0xf106(%rip), %rax      # 0x13278
addq $0xb, %rax
movq %rax, %rcx
btrq $0x31, %rcx
movq %rcx, 0xf0f3(%rip)      # 0x13278
btl $0x10, %eax
jb 0x4192
xorl %eax, %eax
jmp 0x43c1
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x6f87(%rip), %rsi      # 0xb126
callq 0x5af6
testb %al, %al
je 0x41b9
movq 0x10(%r14), %rax
cmpq %rax, 0x18(%r14)
je 0x43ef
movq (%rax), %r14
movq (%r14), %rax
cmpq $0x0, -0x18(%rax)
je 0x43d0
callq 0x3dc0
testb %al, %al
je 0x4242
leaq 0x702c(%rip), %r15      # 0xb203
movq %r14, %rdi
movq %r15, %rsi
callq 0x5af6
testb %al, %al
je 0x41f2
leaq 0x7018(%rip), %r15      # 0xb205
jmp 0x43b0
leaq 0x700c(%rip), %rsi      # 0xb205
movq %r14, %rdi
callq 0x5af6
testb %al, %al
jne 0x43b0
leaq 0x6ff7(%rip), %r15      # 0xb207
movq %r14, %rdi
movq %r15, %rsi
callq 0x5af6
testb %al, %al
je 0x422b
leaq 0x6fe4(%rip), %r15      # 0xb20a
jmp 0x43b0
leaq 0x6fd8(%rip), %rsi      # 0xb20a
movq %r14, %rdi
callq 0x5af6
testb %al, %al
jne 0x43b0
callq 0x3e49
testb %al, %al
je 0x4338
leaq 0x6fb7(%rip), %r15      # 0xb20d
movq %r14, %rdi
movq %r15, %rsi
callq 0x5af6
testb %al, %al
je 0x4271
leaq 0x6fa7(%rip), %r15      # 0xb213
jmp 0x43b0
leaq 0x6fa1(%rip), %rbp      # 0xb219
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5af6
testb %al, %al
je 0x4293
leaq 0x6f91(%rip), %r15      # 0xb21f
jmp 0x43b0
leaq 0x6f8b(%rip), %r13      # 0xb225
movq %r14, %rdi
movq %r13, %rsi
callq 0x5af6
testb %al, %al
je 0x42b5
leaq 0x6f7b(%rip), %r15      # 0xb22b
jmp 0x43b0
leaq 0x6f75(%rip), %r12      # 0xb231
movq %r14, %rdi
movq %r12, %rsi
callq 0x5af6
testb %al, %al
je 0x42d7
leaq 0x6f65(%rip), %r15      # 0xb237
jmp 0x43b0
leaq 0x6f35(%rip), %rsi      # 0xb213
movq %r14, %rdi
callq 0x5af6
testb %al, %al
jne 0x43b0
leaq 0x6f2a(%rip), %rsi      # 0xb21f
movq %r14, %rdi
callq 0x5af6
movq %rbp, %r15
testb %al, %al
jne 0x43b0
leaq 0x6f1c(%rip), %rsi      # 0xb22b
movq %r14, %rdi
callq 0x5af6
movq %r13, %r15
testb %al, %al
jne 0x43b0
leaq 0x6f0e(%rip), %rsi      # 0xb237
movq %r14, %rdi
callq 0x5af6
movq %r12, %r15
testb %al, %al
jne 0x43b0
callq 0x3eb2
testb %al, %al
je 0x418b
leaq 0x6ef1(%rip), %r15      # 0xb23d
movq %r14, %rdi
movq %r15, %rsi
callq 0x5af6
testb %al, %al
je 0x4364
leaq 0x6ee2(%rip), %r15      # 0xb244
jmp 0x43b0
leaq 0x6ee0(%rip), %r12      # 0xb24b
movq %r14, %rdi
movq %r12, %rsi
callq 0x5af6
testb %al, %al
je 0x4383
leaq 0x6ed0(%rip), %r15      # 0xb251
jmp 0x43b0
leaq 0x6eba(%rip), %rsi      # 0xb244
movq %r14, %rdi
callq 0x5af6
testb %al, %al
jne 0x43b0
leaq 0x6eb4(%rip), %rsi      # 0xb251
movq %r14, %rdi
callq 0x5af6
movq %r12, %r15
testb %al, %al
je 0x418b
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3a08
movq %rax, (%rbx)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6d95(%rip), %rdi      # 0xb16c
leaq 0x6c4f(%rip), %rsi      # 0xb02d
leaq 0x6de4(%rip), %rcx      # 0xb1c9
movl $0x1fb, %edx            # imm = 0x1FB
callq 0x3160
leaq 0x6d33(%rip), %rdi      # 0xb129
leaq 0x6c30(%rip), %rsi      # 0xb02d
leaq 0x6dc5(%rip), %rcx      # 0xb1c9
movl $0x1f7, %edx            # imm = 0x1F7
callq 0x3160