// File: /workspace/github_cpp_makefile_star2_O2/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 %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x6db3(%rip), %r15      # 0xb2c6
leaq 0x7644(%rip), %r13      # 0xbb5e
movq %rsi, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x5af6
testb %al, %al
je 0x4562
testl %ebp, %ebp
je 0x4558
cmpl $0x1, %ebp
jne 0x4567
movq 0x10(%r12), %rax
movq 0x18(%r12), %rcx
subq %rax, %rcx
cmpq $0x10, %rcx
jne 0x4558
movq 0x8(%rax), %rdi
movq %r13, %rsi
callq 0x5af6
testb %al, %al
jne 0x4562
movq 0x10(%r12), %rax
movq (%rax), %r12
jmp 0x451d
movq %r12, %r14
jmp 0x4570
cmpl $0x2, %ebp
jne 0x4783
cmpb $0x1, 0x28(%r14)
jne 0x4582
pushq $0x28
popq %rsi
movq %rbx, %rdi
callq 0x3240
movq (%r14), %rdi
cmpq $0x0, -0x18(%rdi)
je 0x45f7
cmpb $0x0, 0xeced(%rip)      # 0x13280
jne 0x45ec
cmpb $0x0, 0x8(%r14)
je 0x45ec
callq 0x3891
testq %rax, %rax
je 0x45ec
movq 0xed4b(%rip), %rdx      # 0x132f8
movq 0xed3c(%rip), %rcx      # 0x132f0
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq %rdx, %rax
jae 0x47a2
movq (%rcx,%rax,8), %rsi
leaq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0x440e
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3290
leaq 0x8(%rsp), %rdi
callq 0x3438
jmp 0x45f7
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3290
movq 0xe99a(%rip), %rax      # 0x12f98
addq $0x18, %rax
movq %rax, 0x8(%rsp)
cmpb $0x1, 0xec74(%rip)      # 0x13282
jne 0x4647
leaq 0x8b27(%rip), %rsi      # 0xd13e
movq %r14, %rdi
callq 0x5af6
testb %al, %al
je 0x4647
leaq 0x10(%rsp), %rdi
callq 0x447d
leaq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x3380
movq %r15, %rdi
callq 0x3438
movq 0x8(%rsp), %rax
cmpq $0x0, -0x18(%rax)
je 0x4662
leaq 0x6c6a(%rip), %rsi      # 0xb2c4
movq %rbx, %rdi
callq 0x3210
xorl %r12d, %r12d
pushq $0x20
popq %r15
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r12
jae 0x46ae
testq %r12, %r12
jne 0x468c
movq (%r14), %rcx
cmpq $0x0, -0x18(%rcx)
je 0x469b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x3240
movq 0x10(%r14), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
movl %ebp, %edx
callq 0x44f6
incq %r12
jmp 0x4669
movq 0x8(%rsp), %rax
cmpq $0x0, -0x18(%rax)
je 0x46e5
leaq 0x6c07(%rip), %rsi      # 0xb2c8
movq %rbx, %rdi
callq 0x3210
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x3290
leaq 0x6b9b(%rip), %rsi      # 0xb278
movq %rax, %rdi
callq 0x3210
cmpb $0x1, 0x28(%r14)
jne 0x46f7
pushq $0x29
popq %rsi
movq %rbx, %rdi
callq 0x3240
leaq 0x6bd3(%rip), %rsi      # 0xb2d1
movq %r14, %rdi
callq 0x5af6
testb %al, %al
je 0x476a
cmpb $0x1, 0xeb71(%rip)      # 0x13282
jne 0x472a
movq %rbx, %rdi
callq 0x30f0
leaq 0x6bb9(%rip), %rsi      # 0xb2db
movq %rax, %rdi
callq 0x3210
cmpb $0x1, 0xeb52(%rip)      # 0x13283
jne 0x474a
movq %rbx, %rdi
callq 0x30f0
leaq 0x6baa(%rip), %rsi      # 0xb2ec
movq %rax, %rdi
callq 0x3210
cmpb $0x1, 0xeb33(%rip)      # 0x13284
jne 0x476a
movq %rbx, %rdi
callq 0x30f0
leaq 0x6b96(%rip), %rsi      # 0xb2f8
movq %rax, %rdi
callq 0x3210
leaq 0x8(%rsp), %rdi
callq 0x3438
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x7379(%rip), %rdi      # 0xbb03
leaq 0x689c(%rip), %rsi      # 0xb02d
leaq 0x7387(%rip), %rcx      # 0xbb1f
movl $0x261, %edx            # imm = 0x261
callq 0x3160
leaq 0x6aae(%rip), %rdi      # 0xb257
leaq 0x687d(%rip), %rsi      # 0xb02d
leaq 0x6ac3(%rip), %rcx      # 0xb27a
movl $0x275, %edx            # imm = 0x275
callq 0x3160
jmp 0x47c7
jmp 0x47c7
jmp 0x47c7
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3438
movq %rbx, %rdi
callq 0x33c0