// File: /workspace/github_cpp_makefile_star2_O3/SMT-COMP[P]scrambler/scrambler.cpp
// Function: main
int main(int argc, char **argv)
{
    annotation_mode keep_annotations = all;

    bool create_core = false;
    std::string core_file;

    set_seed(time(0));

    for (int i = 1; i < argc; ) {
        if (strcmp(argv[i], "-seed") == 0 && i+1 < argc) {
            std::istringstream s(argv[i+1]);
            int x;
            if (s >> x && x >= 0) {
                if (x > 0) {
                    set_seed(x);
                } else {
                    no_scramble = true;
                }
            } else {
                std::cerr << "Invalid value for -seed: " << argv[i+1] << std::endl;
                return 1;
            }
            i += 2;
        } else if (strcmp(argv[i], "-term_annot") == 0 && i+1 < argc) {
            if (strcmp(argv[i+1], "true") == 0) {
                keep_annotations = all;
            } else if (strcmp(argv[i+1], "pattern") == 0) {
                keep_annotations = pattern;
            } else if (strcmp(argv[i+1], "false") == 0) {
                keep_annotations = none;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-core") == 0 && i+1 < argc) {
            create_core = true;
            core_file = argv[i+1];
            i += 2;
        } else if (strcmp(argv[i], "-incremental") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                gen_incremental = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                gen_incremental = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-gen-unsat-core") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                gen_ucore = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                gen_ucore = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-gen-model-val") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                gen_mval = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                gen_mval = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-gen-proof") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                gen_proof = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                gen_proof = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-support-non-smtcomp") == 0 &&
                   i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                support_non_smtcomp = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                support_non_smtcomp = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-support-z3") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                support_z3 = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                support_z3 = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else if (strcmp(argv[i], "-count-asserts") == 0 && i + 1 < argc) {
            if (strcmp(argv[i + 1], "true") == 0) {
                count_asrts = true;
            } else if (strcmp(argv[i + 1], "false") == 0) {
                count_asrts = false;
            } else {
                usage(argv[0]);
            }
            i += 2;
        } else {
            usage(argv[0]);
        }
    }

    StringSet core_names;
    if (create_core) {
        std::ifstream src(core_file.c_str());
        if (!parse_core(src, core_names)) {
            std::cerr << "ERROR parsing core names from " << core_file << std::endl;
            return 1;
        }
    }

    if (!gen_incremental && !count_asrts) {
        // prepend SMT-LIB command that suppresses success for non-incremental
        // tracks
        std::cout << "(set-option :print-success false)" << std::endl;
    }

    if (gen_ucore) {
        // prepend SMT-LIB command that enables production of unsat cores
        std::cout << "(set-option :produce-unsat-cores true)" << std::endl;
    }

    if (gen_mval) {
        // prepend SMT-LIB command that enables production of models
        std::cout << "(set-option :produce-models true)" << std::endl;
    }

    if (gen_proof) {
        // prepend SMT-LIB command that enables production of models
        std::cout << "(set-option :produce-proofs true)" << std::endl;
    }

    if (count_asrts) {
        while (!std::cin.eof()) {
            yyparse();
        }
        int asrt_count = 0;
        for (std::vector<scrambler::node*>::iterator it = commands.begin(); it != commands.end(); ++it) {
            if ((*it)->symbol == "assert") {
                asrt_count++;
            }
        }
        std::cerr << "; Number of assertions: " << asrt_count << "\n";
        exit(0);
    }

    while (!std::cin.eof()) {
        yyparse();
        if (!commands.empty() && commands.back()->symbol == "check-sat") {
            if (create_core) {
                filter_named(core_names);
            }
            assert(!commands.empty());
            print_scrambled(std::cout, keep_annotations);
        }
    }

    if (create_core) {
        filter_named(core_names);
    }
    if (!commands.empty()) {
        print_scrambled(std::cout, keep_annotations);
    }

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movq %rsi, %r14
movl %edi, %ebx
movq 0xd490(%rip), %rax      # 0x12f88
addq $0x18, %rax
movq %rax, 0x18(%rsp)
xorl %edi, %edi
callq 0x3220
cltq
movq %rax, 0xd797(%rip)      # 0x132a8
movl %ebx, (%rsp)
cmpl $0x2, %ebx
jl 0x605e
movq $0x0, 0x10(%rsp)
movl $0x2, 0x8(%rsp)
movl $0x1, %r13d
leaq 0x6e3c(%rip), %r15      # 0xc977
leaq 0x28(%rsp), %r12
movq $0x0, 0x20(%rsp)
movslq %r13d, %rax
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3330
testl %eax, %eax
jne 0x5bf7
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5bf7
movslq %eax, %rbx
movq (%r14,%rbx,8), %rsi
movq %r12, %r15
movq %r12, %rdi
leaq 0xf(%rsp), %rdx
callq 0x3180
leaq 0x60(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
movl $0x8, %edx
callq 0x3430
movq 0x28(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x7(%rsp), %rsi
callq 0x3170
movq %rbp, %rdi
movq %r15, %rsi
callq 0x3160
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
sete %cl
movl 0x28(%rsp), %eax
testl %eax, %eax
setns %r15b
andb %cl, %r15b
cmpb $0x1, %r15b
jne 0x5f17
movl %eax, %eax
testq %rax, %rax
je 0x5f88
movq %rax, 0xd6b6(%rip)      # 0x132a8
jmp 0x5f8f
movq %rbx, %rdi
leaq 0x6d96(%rip), %rsi      # 0xc997
callq 0x3330
testl %eax, %eax
jne 0x5c6b
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5c6b
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6d80(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x5f61
movq %rbx, %rdi
leaq 0x6edd(%rip), %rsi      # 0xcb17
callq 0x3330
testl %eax, %eax
je 0x5f7b
movq %rbx, %rdi
leaq 0x6d57(%rip), %rsi      # 0xc9a8
callq 0x3330
movl $0x0, 0x8(%rsp)
testl %eax, %eax
je 0x604e
jmp 0x6396
movq %rbx, %rdi
leaq 0x6d50(%rip), %rsi      # 0xc9c5
callq 0x3330
testl %eax, %eax
jne 0x5cb5
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5cb5
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
callq 0x3100
leaq 0x18(%rsp), %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x32b0
addl $0x2, %r13d
movb $0x1, %al
movq %rax, 0x20(%rsp)
jmp 0x6052
movq %rbx, %rdi
leaq 0x6cef(%rip), %rsi      # 0xc9ae
callq 0x3330
testl %eax, %eax
jne 0x5d0c
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5d0c
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6cc2(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x5f6e
movq %rbx, %rdi
leaq 0x6cb0(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x5f70
movq %rbx, %rdi
leaq 0x6ca5(%rip), %rsi      # 0xc9bb
callq 0x3330
testl %eax, %eax
jne 0x5d63
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5d63
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6c6b(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x601e
movq %rbx, %rdi
leaq 0x6c59(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x6020
movq %rbx, %rdi
leaq 0x6c5e(%rip), %rsi      # 0xc9cb
callq 0x3330
testl %eax, %eax
jne 0x5dba
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5dba
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6c14(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x6028
movq %rbx, %rdi
leaq 0x6c02(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x602a
movq %rbx, %rdi
leaq 0x6c16(%rip), %rsi      # 0xc9da
callq 0x3330
testl %eax, %eax
jne 0x5e11
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5e11
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6bbd(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x6032
movq %rbx, %rdi
leaq 0x6bab(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x6034
movq %rbx, %rdi
leaq 0x6bca(%rip), %rsi      # 0xc9e5
callq 0x3330
testl %eax, %eax
jne 0x5e68
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5e68
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6b66(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x603c
movq %rbx, %rdi
leaq 0x6b54(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x603e
movq %rbx, %rdi
leaq 0x6b88(%rip), %rsi      # 0xc9fa
callq 0x3330
testl %eax, %eax
jne 0x5ebf
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x5ebf
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6b0f(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x6046
movq %rbx, %rdi
leaq 0x6afd(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x6048
movq %rbx, %rdi
leaq 0x6b3d(%rip), %rsi      # 0xca06
callq 0x3330
testl %eax, %eax
jne 0x6396
leal 0x1(%r13), %eax
cmpl (%rsp), %eax
jge 0x6396
cltq
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
leaq 0x6ab0(%rip), %rsi      # 0xc9a3
callq 0x3330
testl %eax, %eax
je 0x5f54
movq %rbx, %rdi
leaq 0x6aa2(%rip), %rsi      # 0xc9a8
callq 0x3330
testl %eax, %eax
jne 0x6396
xorl %eax, %eax
jmp 0x5f56
movl $0x19, %edx
movq 0xd0cd(%rip), %rdi      # 0x12ff0
leaq 0x6a53(%rip), %rsi      # 0xc97d
callq 0x32a0
movq (%r14,%rbx,8), %rbx
testq %rbx, %rbx
je 0x5f95
movq %rbx, %rdi
callq 0x3100
movq 0xd0a9(%rip), %rdi      # 0x12ff0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x32a0
jmp 0x5fb3
movb $0x1, %al
movb %al, 0xd35b(%rip)       # 0x132b7
jmp 0x604e
movl $0x2, 0x8(%rsp)
jmp 0x604e
movb $0x1, %al
movb %al, 0xd33b(%rip)       # 0x132b1
jmp 0x604e
movl $0x1, 0x8(%rsp)
jmp 0x604e
movb $0x1, 0xd321(%rip)      # 0x132b0
addl $0x2, %r13d
jmp 0x5fef
movq 0xd054(%rip), %rcx      # 0x12ff0
movq (%rcx), %rax
movq -0x18(%rax), %rax
leaq (%rcx,%rax), %rdi
movl 0x20(%rcx,%rax), %esi
orl $0x1, %esi
callq 0x33c0
movq 0xd036(%rip), %rcx      # 0x12ff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq 0xd018(%rip), %rdi      # 0x12ff0
callq 0x3030
movl $0x1, %ecx
movq %rcx, 0x10(%rsp)
movq %rax, %rdi
callq 0x31c0
leaq 0x60(%rsp), %rdi
movq 0xcf95(%rip), %rsi      # 0x12f90
callq 0x3470
leaq 0xc0(%rsp), %rdi
callq 0x30d0
testb %r15b, %r15b
leaq 0x6960(%rip), %r15      # 0xc977
jne 0x6052
jmp 0x636c
movb $0x1, %al
movb %al, 0xd28c(%rip)       # 0x132b2
jmp 0x604e
movb $0x1, %al
movb %al, 0xd283(%rip)       # 0x132b3
jmp 0x604e
movb $0x1, %al
movb %al, 0xd27a(%rip)       # 0x132b4
jmp 0x604e
movb $0x1, %al
movb %al, 0xd271(%rip)       # 0x132b5
jmp 0x604e
movb $0x1, %al
movb %al, 0xd268(%rip)       # 0x132b6
addl $0x2, %r13d
cmpl (%rsp), %r13d
jl 0x5b49
jmp 0x606f
movl $0x2, 0x8(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x58(%rsp), %rax
movq %rax, -0x30(%rax)
movq $0x1, -0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rax)
movl $0x3f800000, -0x10(%rax) # imm = 0x3F800000
movups %xmm0, -0x8(%rax)
movq 0x20(%rsp), %r13
testb $0x1, %r13b
movl 0x8(%rsp), %ebp
je 0x60d6
movq 0x18(%rsp), %rsi
leaq 0x60(%rsp), %rdi
movl $0x8, %edx
callq 0x3440
leaq 0x60(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x5229
testb %al, %al
je 0x62f7
leaq 0x60(%rsp), %rdi
callq 0x30b0
cmpb $0x0, 0xd1d4(%rip)      # 0x132b1
jne 0x612e
cmpb $0x0, 0xd1d1(%rip)      # 0x132b7
jne 0x612e
movq 0xcec9(%rip), %rbx      # 0x12fb8
leaq 0x693e(%rip), %rsi      # 0xca34
movl $0x21, %edx
movq %rbx, %rdi
callq 0x32a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq 0xce97(%rip), %rdi      # 0x12fb8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
cmpb $0x1, 0xd17d(%rip)      # 0x132b2
jne 0x617d
movq 0xce7a(%rip), %rbx      # 0x12fb8
leaq 0x6911(%rip), %rsi      # 0xca56
movl $0x26, %edx
movq %rbx, %rdi
callq 0x32a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq 0xce48(%rip), %rdi      # 0x12fb8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
cmpb $0x1, 0xd12f(%rip)      # 0x132b3
jne 0x61cc
movq 0xce2b(%rip), %rbx      # 0x12fb8
leaq 0x68e9(%rip), %rsi      # 0xca7d
movl $0x21, %edx
movq %rbx, %rdi
callq 0x32a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq 0xcdf9(%rip), %rdi      # 0x12fb8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
cmpb $0x1, 0xd0e1(%rip)      # 0x132b4
jne 0x621b
movq 0xcddc(%rip), %rbx      # 0x12fb8
leaq 0x68bc(%rip), %rsi      # 0xca9f
movl $0x21, %edx
movq %rbx, %rdi
callq 0x32a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq 0xcdaa(%rip), %rdi      # 0x12fb8
callq 0x3030
movq %rax, %rdi
callq 0x31c0
cmpb $0x1, 0xd095(%rip)      # 0x132b7
je 0x63bd
movq 0xcda9(%rip), %r12      # 0x12fd8
movq (%r12), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x20(%r12,%rax)
jne 0x62b3
leaq 0x608b(%rip), %rbx      # 0xc2d1
leaq 0x28(%rsp), %r14
movq 0xcd66(%rip), %r15      # 0x12fb8
callq 0x80c0
movq 0xd0aa(%rip), %rax      # 0x13308
cmpq %rax, 0xd09b(%rip)      # 0x13300
je 0x62a3
movq -0x8(%rax), %rdi
movq %rbx, %rsi
callq 0x30a0
testl %eax, %eax
jne 0x62a3
testb $0x1, %r13b
je 0x6285
movq %r14, %rdi
callq 0x5735
movq 0xd074(%rip), %rax      # 0x13300
cmpq 0xd075(%rip), %rax      # 0x13308
je 0x639e
movq %r15, %rdi
movl %ebp, %esi
callq 0x4e87
movq (%r12), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x20(%r12,%rax)
je 0x6252
testb $0x1, %r13b
je 0x62c3
leaq 0x28(%rsp), %rdi
callq 0x5735
movq 0xd036(%rip), %rax      # 0x13300
cmpq 0xd037(%rip), %rax      # 0x13308
je 0x62ec
movq $0x0, 0x10(%rsp)
movq 0xccd5(%rip), %rdi      # 0x12fb8
movl %ebp, %esi
callq 0x4e87
jmp 0x6362
movq $0x0, 0x10(%rsp)
jmp 0x6362
movq 0xccf2(%rip), %rdi      # 0x12ff0
leaq 0x6710(%rip), %rsi      # 0xca15
movl $0x1e, %edx
callq 0x32a0
movq 0x18(%rsp), %rsi
movq -0x18(%rsi), %rdx
movq 0xccd1(%rip), %rdi      # 0x12ff0
callq 0x32a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x3250
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31c0
leaq 0x60(%rsp), %rdi
callq 0x30b0
movl $0x1, %eax
movq %rax, 0x10(%rsp)
leaq 0x28(%rsp), %rdi
callq 0x674e
movq 0x18(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x60(%rsp), %rsi
callq 0x3170
movq 0x10(%rsp), %rax
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rdi
callq 0x586a
leaq 0x6735(%rip), %rdi      # 0xcada
leaq 0x5c81(%rip), %rsi      # 0xc02d
leaq 0x6739(%rip), %rcx      # 0xcaec
movl $0x445, %edx            # imm = 0x445
callq 0x31a0
movq 0xcc14(%rip), %rbx      # 0x12fd8
movq (%rbx), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x20(%rbx,%rax)
jne 0x63d9
callq 0x80c0
jmp 0x63c4
movq 0xcf20(%rip), %r15      # 0x13300
xorl %ebx, %ebx
cmpq 0xcf1f(%rip), %r15      # 0x13308
je 0x6412
xorl %ebx, %ebx
leaq 0x7d6a(%rip), %r14      # 0xe15e
movq (%r15), %rdi
movq %r14, %rsi
callq 0x30a0
cmpl $0x1, %eax
adcl $0x0, %ebx
addq $0x8, %r15
cmpq 0xcef8(%rip), %r15      # 0x13308
jne 0x63f4
movq 0xcbd7(%rip), %rdi      # 0x12ff0
leaq 0x66a1(%rip), %rsi      # 0xcac1
movl $0x18, %edx
callq 0x32a0
movq 0xcbbf(%rip), %rdi      # 0x12ff0
movl %ebx, %esi
callq 0x33e0
leaq 0x6536(%rip), %rsi      # 0xc975
movq %rax, %rdi
callq 0x3260
xorl %edi, %edi
callq 0x32d0
jmp 0x64a9
jmp 0x64a9
jmp 0x64a9
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x30b0
jmp 0x64ac
jmp 0x64a4
movq %rax, %rbx
movq 0x28(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x7(%rsp), %rsi
callq 0x3170
jmp 0x64b6
jmp 0x64a4
jmp 0x64a9
movq %rax, %rbx
movq 0xcb05(%rip), %rsi      # 0x12f90
leaq 0x60(%rsp), %rdi
callq 0x3470
leaq 0xc0(%rsp), %rdi
callq 0x30d0
jmp 0x64b6
movq %rax, %rbx
jmp 0x64b6
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x674e
movq 0x18(%rsp), %rdi
addq $-0x18, %rdi
leaq 0x60(%rsp), %rsi
callq 0x3170
movq %rbx, %rdi
callq 0x3410
nop