// File: /workspace/github_cpp_makefile_star2_O1/SMT-COMP[P]scrambler/scrambler.cpp
// Function: print_node(std::ostream&, scrambler::node const*, annotation_mode)
void print_node(std::ostream &out, const scrambler::node *n, annotation_mode keep_annotations)
{
    if (n->symbol == "!" && !keep_annotation(n, keep_annotations)) {
        print_node(out, n->children[0], keep_annotations);
    } else {
        if (n->needs_parens) {
            out << '(';
        }
        if (!n->symbol.empty()) {
            if (no_scramble || !n->is_name) {
                out << n->symbol;
            } else {
                uint64_t name_id = get_name_id(n->symbol.c_str());
                if (name_id == 0) {
                    out << n->symbol;
                } else {
                    assert(name_id < permuted_name_ids.size());
                    out << make_name(permuted_name_ids[name_id]);
                }
            }
        }
        std::string name;
        if (gen_ucore && n->symbol == "assert") {
            name = make_annotation_name();
        }
        if (!name.empty()) {
            out << " (!";
        }
        for (size_t i = 0; i < n->children.size(); ++i) {
            if (i > 0 || !n->symbol.empty()) {
                out << ' ';
            }
            print_node(out, n->children[i], keep_annotations);
        }
        if (!name.empty()) {
            out << " :named " << name << ")";
        }
        if (n->needs_parens) {
            out << ')';
        }
        if (n->symbol == "check-sat") {
            if (gen_ucore) {
                // insert (get-unsat-core) after each check-sat
                out << std::endl << "(get-unsat-core)";
            }
            if (gen_mval) {
                // insert (get-model) after each check-sat
                out << std::endl << "(get-model)";
            }
            if (gen_proof) {
                // insert (get-proof) after each check-sat
                out << std::endl << "(get-proof)";
            }
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x780b(%rip), %r15      # 0xc2c6
leaq 0x809c(%rip), %r12      # 0xcb5e
movq %r14, %rdi
movq %r15, %rsi
callq 0x30a0
testl %eax, %eax
jne 0x4b0d
testl %ebp, %ebp
je 0x4afb
cmpl $0x1, %ebp
jne 0x4b04
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
subq %rax, %rcx
cmpq $0x10, %rcx
jne 0x4afb
movq 0x8(%rax), %rdi
movq %r12, %rsi
callq 0x30a0
testl %eax, %eax
je 0x4b0d
movq 0x10(%r14), %rax
movq (%rax), %r14
jmp 0x4ac2
cmpl $0x2, %ebp
jne 0x4ded
cmpb $0x1, 0x28(%r14)
jne 0x4b29
leaq 0x10(%rsp), %rsi
movb $0x28, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3290
movq (%r14), %rsi
movq -0x18(%rsi), %rdx
testq %rdx, %rdx
je 0x4bb4
cmpb $0x0, 0xe76c(%rip)      # 0x132a8
jne 0x4bac
cmpb $0x0, 0x8(%r14)
je 0x4bac
movq %rsi, %rdi
callq 0x3c55
testq %rax, %rax
je 0x4ba5
movq 0xe7c7(%rip), %rdx      # 0x13320
movq 0xe7b8(%rip), %rcx      # 0x13318
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq %rdx, %rax
jae 0x4e0c
movq (%rcx,%rax,8), %rsi
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x4968
movq (%r15), %rsi
movq -0x18(%rsi), %rdx
movq %rbx, %rdi
callq 0x3290
movq 0x10(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x18(%rsp), %rsi
callq 0x3170
jmp 0x4bb4
movq (%r14), %rsi
movq -0x18(%rsi), %rdx
movq %rbx, %rdi
callq 0x3290
movq 0xe3cd(%rip), %rax      # 0x12f88
addq $0x18, %rax
movq %rax, 0x10(%rsp)
cmpb $0x1, 0xe6df(%rip)      # 0x132aa
jne 0x4c0d
leaq 0x958a(%rip), %rsi      # 0xe15e
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
jne 0x4c0d
leaq 0x18(%rsp), %rdi
callq 0x49fe
leaq 0x10(%rsp), %rdi
leaq 0x18(%rsp), %r15
movq %r15, %rsi
callq 0x33c0
movq (%r15), %rdi
addq $-0x18, %rdi
leaq 0xf(%rsp), %rsi
callq 0x3170
movq 0x10(%rsp), %rax
cmpq $0x0, -0x18(%rax)
je 0x4c2d
leaq 0x76a4(%rip), %rsi      # 0xc2c4
movl $0x3, %edx
movq %rbx, %rdi
callq 0x3290
movq 0x18(%r14), %rax
cmpq 0x10(%r14), %rax
je 0x4c89
xorl %r12d, %r12d
leaq 0xf(%rsp), %r15
testq %r12, %r12
jne 0x4c4e
movq (%r14), %rax
cmpq $0x0, -0x18(%rax)
je 0x4c63
movb $0x20, 0xf(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3290
movq 0x10(%r14), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
movl %ebp, %edx
callq 0x4aa0
incq %r12
movq 0x18(%r14), %rax
subq 0x10(%r14), %rax
sarq $0x3, %rax
cmpq %rax, %r12
jb 0x4c3f
movq 0x10(%rsp), %rax
cmpq $0x0, -0x18(%rax)
je 0x4cce
leaq 0x762c(%rip), %rsi      # 0xc2c8
movl $0x8, %edx
movq %rbx, %rdi
callq 0x3290
movq 0x10(%rsp), %rsi
movq -0x18(%rsi), %rdx
movq %rbx, %rdi
callq 0x3290
leaq 0x75b7(%rip), %rsi      # 0xc278
movl $0x1, %edx
movq %rax, %rdi
callq 0x3290
cmpb $0x1, 0x28(%r14)
jne 0x4cea
leaq 0xf(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3290
leaq 0x75e0(%rip), %rsi      # 0xc2d1
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
jne 0x4dcd
cmpb $0x1, 0xe5a2(%rip)      # 0x132aa
jne 0x4d45
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31b0
leaq 0x75a3(%rip), %rsi      # 0xc2db
movl $0x10, %edx
movq %rax, %rdi
callq 0x3290
cmpb $0x1, 0xe55f(%rip)      # 0x132ab
jne 0x4d89
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31b0
leaq 0x7570(%rip), %rsi      # 0xc2ec
movl $0xb, %edx
movq %rax, %rdi
callq 0x3290
cmpb $0x1, 0xe51c(%rip)      # 0x132ac
jne 0x4dcd
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3240
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31b0
leaq 0x7538(%rip), %rsi      # 0xc2f8
movl $0xb, %edx
movq %rax, %rdi
callq 0x3290
movq 0x10(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x18(%rsp), %rsi
callq 0x3170
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x7d0f(%rip), %rdi      # 0xcb03
leaq 0x7232(%rip), %rsi      # 0xc02d
leaq 0x7d1d(%rip), %rcx      # 0xcb1f
movl $0x261, %edx            # imm = 0x261
callq 0x3190
leaq 0x7444(%rip), %rdi      # 0xc257
leaq 0x7213(%rip), %rsi      # 0xc02d
leaq 0x7459(%rip), %rcx      # 0xc27a
movl $0x275, %edx            # imm = 0x275
callq 0x3190
jmp 0x4e31
jmp 0x4e31
jmp 0x4e31
movq %rax, %rbx
movq 0x10(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x18(%rsp), %rsi
callq 0x3170
movq %rbx, %rdi
callq 0x3400