// File: /workspace/github_cpp_makefile_star2_O2/kelwinfc[P]ci4721-Fernandez-Gyomrey/src/inst.cpp
// Function: quad::to_string[abi:cxx11](bool)
string quad::to_string(bool with_comment){

    std::stringstream out;
    out << label;
    string r = "", _ = (with_comment ? comment : "" ) + "L" + out.str() + ": ";

    opd *opds[] = {arg0, arg1, arg2};
    
    // Modo alternativo de impresion: si es preferible el otro basta con remover
    // este segmento, me parece mas claro para Novich imprimir x := a + b que
    // ADD x a b, o x := a que CP x a.
    switch (op ){
        case CP:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string();
        case REF:
            return _ + opds[0]->to_string() + " := &" + opds[1]->to_string();
        case DEREF:
            return _ + opds[0]->to_string() + " := *" + opds[1]->to_string();
        case GOTO:
            return _ + "goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IFEQ:
            return _ + "if " + opds[0]->to_string() + " = " + opds[1]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IFL:
            return _ + "if " + opds[0]->to_string() + " < " + opds[1]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IFLEQ:
            return _ + "if " + opds[0]->to_string() + " <= " + opds[1]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IF:
            return _ + "if " + opds[0]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IFG:
            return _ + "if " + opds[0]->to_string() + " > " + opds[1]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case IFGEQ:
            return _ + "if " + opds[0]->to_string() + " >= " + opds[1]->to_string()
                    + " goto " + ( opds[2] ? opds[2]->to_string() : "unknown");
        case ADD:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string()
                    + " + " + opds[2]->to_string();
        case SUB:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string()
                    + " - " + opds[2]->to_string();
        case MUL:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string()
                    + " * " + opds[2]->to_string();
        case DIV:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string()
                    + " / " + opds[2]->to_string();
        case MOD:
            return _ + opds[0]->to_string() + " := " + opds[1]->to_string()
                    + " % " + opds[2]->to_string();
        case UMINUS:
            return _ + opds[0]->to_string() + " := -" + opds[1]->to_string();
        case PROLOGUE:
            return _ + "prologue " + opds[2]->data.sym->getName();
        case EPILOGUE:
            return _ + "epilogue " + opds[2]->data.sym->getName();
        case RETURN:
            return _ + "return " + opds[0]->to_string()
                     + " " + (opds[2] ? opds[2]->to_string() : "unkown");
        default:
            break;
    }
    
    for (int i = 0; i < 3; ++ i) {
        if (opds[i]) {
            r += (0 == i ? "" : ", ") + opds[i]->to_string();
        }
    }
    switch (op) {
        case CALL:   return _ + "CALL   " + r;
        case PARAM:  return _ + "PARAM  " + r;
        case LD:     return _ + "LD     " + r;
        case ST:     return _ + "ST     " + r;
        case ERR:    return _ + "ERR    " + r;
        case CONV:   return _ + "CONV   " + r;
        case GOTO:   return _ + "GOTO   " + r;
        case IFEQ:   return _ + "IFEQ   " + r;
        case IFNEQ:  return _ + "IFNEQ  " + r;
        case IFL:    return _ + "IFLESS " + r;
        case INIT:   return _ + "INIT   " + r;
        case WRITE:  return _ + "WRITE  " + r;
        case READ:   return _ + "READ   " + r;
        case MAP:    return _ + "MAP    " + r;
        case FILL:   return _ + "FILL   " + r;
        case EXEC:   return _ + "EXEC   " + r;

        default:
            break;
    }
    
    return r;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x308, %rsp            # imm = 0x308
movl %edx, %ebp
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x180(%rsp), %rdi
callq 0x6200
leaq 0x190(%rsp), %rdi
movl 0x8(%r12), %esi
callq 0x61e0
leaq 0xca27(%rip), %r13      # 0x25372
leaq 0x120(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
movq %r13, %rsi
callq 0x6d6c
testb %bpl, %bpl
je 0x18979
leaq 0x28(%r12), %rsi
leaq 0x58(%rsp), %rdi
callq 0x63e0
jmp 0x18992
leaq 0xc9f2(%rip), %rsi      # 0x25372
leaq 0x58(%rsp), %rdi
leaq 0x11f(%rsp), %rdx
callq 0x6d6c
leaq 0xcd28(%rip), %rdx      # 0x256c1
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x12447
leaq 0x198(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x6480
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x12466
leaq 0xace2(%rip), %rdx      # 0x236b7
leaq 0xf8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x12447
leaq 0x10(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0x30(%rsp), %rdi
callq 0x65c8
leaq 0x58(%rsp), %rdi
callq 0x65c8
testb %bpl, %bpl
movq 0x10(%r12), %rbp
movq %rbp, 0x160(%rsp)
movq 0x18(%r12), %r15
movq %r15, 0x168(%rsp)
movq 0x20(%r12), %r14
movq %r14, 0x170(%rsp)
movl 0xc(%r12), %eax
cmpq $0x1d, %rax
ja 0x19490
leaq 0xcaa1(%rip), %rcx      # 0x254f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x1a21f
leaq 0xcc40(%rip), %rdx      # 0x256c3
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x18ef6
leaq 0xcc1f(%rip), %rdx      # 0x256dc
leaq 0x98(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0xb8(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xcbf1(%rip), %rdx      # 0x256f4
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x12466
leaq 0xcba4(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x1962d
leaq 0x140(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x19646
leaq 0xcb68(%rip), %rdx      # 0x256dc
leaq 0x58(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0x78(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x12466
leaq 0xcb36(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x19591
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x195ad
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1a21f
leaq 0xcab7(%rip), %rdx      # 0x256c3
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xcab4(%rip), %rdx      # 0x256fd
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x192e0
leaq 0xca82(%rip), %rdx      # 0x2570b
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq (%r14), %rsi
leaq 0x30(%rsp), %rdi
callq 0x13efa
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x18d89
leaq 0xca1f(%rip), %rdx      # 0x256e5
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
testq %r14, %r14
je 0x19552
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x19568
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x1a21f
leaq 0xc9aa(%rip), %rdx      # 0x256c8
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x18ef6
leaq 0xc9bd(%rip), %rdx      # 0x25715
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq (%r14), %rsi
leaq 0x30(%rsp), %rdi
callq 0x13efa
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19587
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x1a21f
leaq 0xc942(%rip), %rdx      # 0x25705
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x18ef6
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1a21f
leaq 0xc89c(%rip), %rdx      # 0x256c3
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc89d(%rip), %rdx      # 0x25701
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x192e0
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x1a21f
leaq 0xc806(%rip), %rdx      # 0x256ce
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0x78(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0x10(%rsp), %rdi
callq 0x65c8
leaq 0x30(%rsp), %rdi
jmp 0x1961e
leaq 0xc804(%rip), %rdx      # 0x2571f
leaq 0x58(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0x78(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x12466
leaq 0xc7ef(%rip), %rdx      # 0x25744
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x195c4
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x195e0
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1a21f
leaq 0xc710(%rip), %rdx      # 0x256c3
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc709(%rip), %rdx      # 0x256f9
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x192e0
leaq 0xc6ac(%rip), %rdx      # 0x256dc
leaq 0x98(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0xb8(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc66a(%rip), %rdx      # 0x256e0
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x12466
leaq 0xc631(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x19660
leaq 0x140(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x19679
leaq 0xc5f5(%rip), %rdx      # 0x256dc
leaq 0x98(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0xb8(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc5be(%rip), %rdx      # 0x256eb
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x12466
leaq 0xc57a(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x19693
leaq 0x140(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x196ac
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1a21f
leaq 0xc4fb(%rip), %rdx      # 0x256c3
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc044(%rip), %rdx      # 0x25249
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x192e0
leaq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1a21f
leaq 0xc454(%rip), %rdx      # 0x256c3
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xbfd1(%rip), %rdx      # 0x2527d
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
leaq 0x10(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0xd8(%rsp), %rdi
callq 0x65c8
leaq 0x10(%rsp), %rdi
callq 0x65c8
leaq 0x30(%rsp), %rdi
callq 0x65c8
leaq 0xb8(%rsp), %rdi
callq 0x65c8
leaq 0x58(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
jmp 0x1976e
leaq 0xc3b3(%rip), %rdx      # 0x256dc
leaq 0x98(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0xb8(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc0f5(%rip), %rdx      # 0x25464
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x12466
leaq 0xc338(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x196c3
leaq 0x140(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x196dc
leaq 0xc2fc(%rip), %rdx      # 0x256dc
leaq 0x98(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
leaq 0xb8(%rsp), %rdi
movq %rbp, %rsi
callq 0x18390
leaq 0x78(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x12466
leaq 0xc2c9(%rip), %rdx      # 0x256ef
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12447
leaq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x18390
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x12466
leaq 0xc281(%rip), %rdx      # 0x256e4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x12447
testq %r14, %r14
je 0x196f3
leaq 0x140(%rsp), %rdi
movq %r14, %rsi
callq 0x18390
jmp 0x1970c
movq %rbx, 0x50(%rsp)
xorl %ebx, %ebx
leaq 0x30(%rsp), %r14
leaq 0x10(%rsp), %r15
leaq 0x120(%rsp), %rbp
cmpq $0x3, %rbx
je 0x194fd
movq 0x160(%rsp,%rbx,8), %rsi
testq %rsi, %rsi
je 0x194f8
movq %r14, %rdi
callq 0x18390
testq %rbx, %rbx
leaq 0xa578(%rip), %rsi      # 0x23a46
cmoveq %r13, %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x1256a
movq %rbp, %rdi
movq %r15, %rsi
callq 0x65b0
movq %r15, %rdi
callq 0x65c8
movq %r14, %rdi
callq 0x65c8
incq %rbx
jmp 0x194a9
movl 0xc(%r12), %eax
decl %eax
cmpl $0x21, %eax
ja 0x19b04
leaq 0xc054(%rip), %rcx      # 0x25568
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xc20a(%rip), %rdx      # 0x2572e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xc17b(%rip), %rsi      # 0x256d4
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0x30(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
leaq 0x10(%rsp), %rdi
jmp 0x1977b
leaq 0xc13c(%rip), %rsi      # 0x256d4
leaq 0x98(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x98(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x195f5
leaq 0xc15c(%rip), %rsi      # 0x25727
leaq 0x98(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x98(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0x98(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
leaq 0x10(%rsp), %rdi
callq 0x65c8
leaq 0x30(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0x58(%rsp), %rdi
jmp 0x1977b
leaq 0xc0a0(%rip), %rsi      # 0x256d4
leaq 0x140(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x19721
leaq 0xc06d(%rip), %rsi      # 0x256d4
leaq 0x140(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x19721
leaq 0xc03a(%rip), %rsi      # 0x256d4
leaq 0x140(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x19721
leaq 0xc00a(%rip), %rsi      # 0x256d4
leaq 0x140(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
jmp 0x19721
leaq 0xbfda(%rip), %rsi      # 0x256d4
leaq 0x140(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x6d6c
leaq 0x10(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movq %rbx, %rdi
callq 0x12466
leaq 0x140(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
leaq 0x10(%rsp), %rdi
callq 0x65c8
leaq 0x30(%rsp), %rdi
callq 0x65c8
leaq 0xd8(%rsp), %rdi
callq 0x65c8
leaq 0x58(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0xb8(%rsp), %rdi
callq 0x65c8
leaq 0x98(%rsp), %rdi
callq 0x65c8
leaq 0xf8(%rsp), %rdi
callq 0x65c8
leaq 0x120(%rsp), %rdi
callq 0x65c8
leaq 0x180(%rsp), %rdi
callq 0x6240
movq %rbx, %rax
addq $0x308, %rsp            # imm = 0x308
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xbfb3(%rip), %rdx      # 0x25776
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbf63(%rip), %rdx      # 0x2575e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbf3b(%rip), %rdx      # 0x2576e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbee3(%rip), %rdx      # 0x2574e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbedb(%rip), %rdx      # 0x2577e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbe8b(%rip), %rdx      # 0x25766
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbe23(%rip), %rdx      # 0x25736
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbe3b(%rip), %rdx      # 0x25786
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbe0b(%rip), %rdx      # 0x2578e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbd83(%rip), %rdx      # 0x2573e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbd53(%rip), %rdx      # 0x25746
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbd2b(%rip), %rdx      # 0x25756
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbd43(%rip), %rdx      # 0x257a6
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbd03(%rip), %rdx      # 0x2579e
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
leaq 0xbcc3(%rip), %rdx      # 0x25796
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x125c2
movq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %rsi
leaq 0x120(%rsp), %rdx
movq %rbx, %rdi
callq 0x179b4
jmp 0x19587
movq 0x50(%rsp), %rbx
leaq 0x10(%rbx), %rcx
movq %rcx, (%rbx)
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdx
cmpq %rax, %rdx
je 0x19b32
movq %rdx, (%rbx)
movq 0x130(%rsp), %rcx
movq %rcx, 0x10(%rbx)
jmp 0x19b38
movups (%rax), %xmm0
movups %xmm0, (%rcx)
movq 0x128(%rsp), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x120(%rsp)
andq $0x0, 0x128(%rsp)
movb $0x0, 0x130(%rsp)
jmp 0x19780
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e29
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c24
jmp 0x19c24
jmp 0x19e29
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c1d
jmp 0x19c1d
movq %rax, %rbx
jmp 0x19c4c
jmp 0x19c24
movq %rax, %rbx
jmp 0x19cd4
jmp 0x19e29
jmp 0x19c39
jmp 0x19c39
jmp 0x19c39
jmp 0x19c39
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19c94
jmp 0x19c60
jmp 0x19c60
jmp 0x19c60
jmp 0x19c60
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0x65c8
jmp 0x19c85
jmp 0x19c91
jmp 0x19c91
jmp 0x19c82
jmp 0x19c82
jmp 0x19c91
jmp 0x19c91
jmp 0x19c82
jmp 0x19c82
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19cb5
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19ce6
jmp 0x19ce3
jmp 0x19ce3
jmp 0x19cb2
jmp 0x19cb2
jmp 0x19ce3
jmp 0x19ce3
jmp 0x19cc1
jmp 0x19cb2
jmp 0x19cb2
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19d1d
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19d9b
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0x65c8
jmp 0x19d2f
jmp 0x19d2c
jmp 0x19d2c
jmp 0x19d1a
jmp 0x19d1a
jmp 0x19d2c
jmp 0x19d2c
jmp 0x19d1a
jmp 0x19d0b
jmp 0x19d1a
jmp 0x19d0b
jmp 0x19d0b
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x65c8
jmp 0x19d68
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0x65c8
jmp 0x19d77
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0xb8(%rsp), %rdi
jmp 0x19d86
jmp 0x19da7
jmp 0x19da7
jmp 0x19d74
jmp 0x19d74
jmp 0x19da7
jmp 0x19da7
jmp 0x19d74
jmp 0x19d98
jmp 0x19d65
jmp 0x19d74
jmp 0x19d65
jmp 0x19d65
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19dc9
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x65c8
leaq 0x78(%rsp), %rdi
callq 0x65c8
leaq 0x98(%rsp), %rdi
jmp 0x19e90
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19df9
movq %rax, %rbx
jmp 0x19d39
jmp 0x19e05
jmp 0x19e05
jmp 0x19df1
jmp 0x19df1
jmp 0x19e05
jmp 0x19e05
jmp 0x19df1
jmp 0x19df6
jmp 0x19dc6
jmp 0x19df1
jmp 0x19dc6
jmp 0x19de2
jmp 0x19dc6
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0x19dfe
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
testq %r14, %r14
jmp 0x19e2c
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19e2c
movq %rax, %rbx
jmp 0x19d81
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x65c8
jmp 0x19e38
movq %rax, %rbx
jmp 0x19d43
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e3f
jmp 0x19e35
jmp 0x19e35
jmp 0x19e3f
jmp 0x19e35
jmp 0x19e29
jmp 0x19e35
jmp 0x19e35
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x19e90
jmp 0x19e3f
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x19e90
movq %rax, %rbx
jmp 0x19d8b
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e83
jmp 0x19e6f
movq %rax, %rbx
jmp 0x19ee1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19e8b
movq %rax, %rbx
jmp 0x19e95
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
leaq 0xf8(%rsp), %rdi
callq 0x65c8
jmp 0x19ee1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x65c8
jmp 0x19eb6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x65c8
jmp 0x19ec5
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x65c8
jmp 0x19ed4
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x65c8
testb %bpl, %bpl
leaq 0x120(%rsp), %rdi
callq 0x65c8
leaq 0x180(%rsp), %rdi
callq 0x6240
movq %rbx, %rdi
callq 0x6530
jmp 0x19f05
movq %rax, %rbx
jmp 0x19eee