// File: /workspace/github_cpp_makefile_star2_O1/kelwinfc[P]ci4721-Fernandez-Gyomrey/src/AST/to_tac.cpp
// Function: AST_op::to_tac(Tac*)
opd *AST_op::to_tac(Tac* t){
    switch( oper_type ){
        case AND:
            left->to_tac(t);
            t->backpatch(left->truelist, t->next_instruction() );
            
            right->to_tac(t);
            
            falselist.splice(falselist.end(),left->falselist);
            falselist.splice(falselist.end(),right->falselist);
            truelist  = right->truelist;
            break;
            
        case OR:
            left->to_tac(t);
            t->backpatch(left->falselist, t->next_instruction() );
            
            right->to_tac(t);
            
            truelist.splice(truelist.end(),left->truelist);
            truelist.splice(truelist.end(),right->truelist);
            falselist  = right->falselist;
            break;
            
        case IMP:
            left->to_tac(t);
            t->backpatch(left->truelist, t->next_instruction() );

            right->to_tac(t);

            truelist.splice(truelist.end(),left->falselist);
            truelist.splice(truelist.end(),right->truelist);
            falselist  = right->falselist;
            break;

        case CONSEQ:
            right->to_tac(t);
            t->backpatch(right->truelist, t->next_instruction() );

            left->to_tac(t);

            truelist.splice(truelist.end(),right->falselist);
            truelist.splice(truelist.end(),left->truelist);
            falselist  = left->falselist;
            break;
        
        /* Operadores de comparación de igualdad: ==, != */
        case EQ:
            {
                opd* l = left->to_tac(t);

                if (BOOLEAN == left->type) {
                    l = new opd();
                    // almacenar en un temporal el valor booleano de la rama izquierda
                    t->backpatch( left->truelist, t->next_instruction() );
                    t->append_quad(inst::CP, l, new opd(true), 0, "asignación del valor booleano obtenido (true) a rama izquierda de igualdad");
                    t->append_quad(inst::GOTO, 0, 0, new opd(t->next_instruction() + 2, O_LABEL), "salto después de asignar el valor booleano");

                    t->backpatch( left->falselist, t->next_instruction() );
                    t->append_quad(inst::CP, l, new opd(false), 0, "asignación del valor booleano obtenido (false) a rama izquierda de igualdad");
                }
                
                opd* r = right->to_tac(t);

                if (BOOLEAN == right->type) {
                    r = new opd();
                    // almacenar en un temporal el valor booleano de la rama derecha
                    t->backpatch( right->truelist, t->next_instruction() );
                    t->append_quad(inst::CP, r, new opd(true), 0, "asignación del valor booleano obtenido (true) a rama derecha de igualdad");
                    t->append_quad(inst::GOTO, 0, 0, new opd(t->next_instruction() + 2, O_LABEL), "salto después de asignar el valor booleano");

                    t->backpatch( right->falselist, t->next_instruction() );
                    t->append_quad(inst::CP, r, new opd(false), 0, "asignación del valor booleano obtenido (false) a rama derecha de igualdad");
                }

                truelist.push_back( t->next_instruction() );
                t->append_quad(inst::IFEQ, l, r, 0, "comparación de igualdad (true)");
                falselist.push_back( t->next_instruction() );
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de igualdad (false)");
            }
            break;
        case UNEQ:
            {
                opd* l = left->to_tac(t);

                if (BOOLEAN == left->type) {
                    l = new opd();
                    // almacenar en un temporal el valor booleano de la rama izquierda
                    t->backpatch( left->truelist, t->next_instruction() );
                    t->append_quad(inst::CP, l, new opd(true), 0, "asignación del valor booleano obtenido (true) a rama izquierda de desigualdad");
                    t->append_quad(inst::GOTO, 0, 0, new opd(t->next_instruction() + 2, O_LABEL), "salto después de asignar el valor booleano");

                    t->backpatch( left->falselist, t->next_instruction() );
                    t->append_quad(inst::CP, l, new opd(false), 0, "asignación del valor booleano obtenido (false) a rama izquierda de desigualdad");
                }
                
                opd* r = right->to_tac(t);

                if (BOOLEAN == right->type) {
                    r = new opd();
                    // almacenar en un temporal el valor booleano de la rama derecha
                    t->backpatch( right->truelist, t->next_instruction() );
                    t->append_quad(inst::CP, r, new opd(true), 0, "asignación del valor booleano obtenido (true) a rama derecha de desigualdad");
                    t->append_quad(inst::GOTO, 0, 0, new opd(t->next_instruction() + 2, O_LABEL), "salto después de asignar el valor booleano");

                    t->backpatch( right->falselist, t->next_instruction() );
                    t->append_quad(inst::CP, r, new opd(false), 0, "asignación del valor booleano obtenido (false) a rama derecha de desigualdad");
                }
                
                truelist.push_back( t->next_instruction() );
                t->append_quad(inst::IFNEQ, l, r, 0, "comparación de desigualdad (true)");
                falselist.push_back( t->next_instruction() );
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de desigualdad (false)");
            }
            break;
        
        /* Operadores de relación de orden: <, <=, >, >= */
        case LESS:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                truelist.push_back( t->next_instruction() );
                falselist.push_back( t->next_instruction() + 1);
                
                t->append_quad(inst::IFL, l, r, 0, "comparación de menor que (true)");
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de menor que (false)");
            }
            break;
        case LESS_EQ:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                truelist.push_back( t->next_instruction() );
                falselist.push_back( t->next_instruction() + 1);
                
                t->append_quad(inst::IFLEQ, l, r, 0, "comparación de menor o igual (true)");
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de menor o igual (false)");
            }
            break;
        case GREAT:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                truelist.push_back( t->next_instruction() );
                falselist.push_back( t->next_instruction() + 1);
                
                t->append_quad(inst::IFG, l, r, 0, "comparación de mayor (true)");
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de mayor (false)");
            }
            break;
        case GREAT_EQ:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                truelist.push_back( t->next_instruction() );
                falselist.push_back( t->next_instruction() + 1);
                
                t->append_quad(inst::IFGEQ, l, r, 0, "comparación de mayor o igual (true)");
                t->append_quad(inst::GOTO, 0, 0, 0, "comparación de mayor o igual (false)");
            }
            break;
        case PLUS:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                opd* d = new opd();
                t->append_quad(inst::ADD, d, l, r, "operación binaria de suma");
                
                return d;
            }
            break;
        case MINUS:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                opd* d = new opd();
                t->append_quad(inst::SUB, d, l, r, "operación binaria de resta");
                
                return d;
            }
            break;
        case PROD:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                opd* d = new opd();
                t->append_quad(inst::MUL, d, l, r, "operación binaria de producto");
                
                return d;
            }
            break;
        case DIV:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                opd* d = new opd();
                t->append_quad(inst::DIV, d, l, r, "operación binaria de división");
                
                return d;
            }
            break;
        case MOD:
            {
                opd* l = left->to_tac(t);
                opd* r = right->to_tac(t);
                
                opd* d = new opd();
                t->append_quad(inst::MOD, d, l, r, "operación binaria de módulo");
                
                return d;
            }
            break;
        default:
            break;
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3a8, %rsp            # imm = 0x3A8
movl 0x68(%rdi), %eax
cmpq $0xe, %rax
ja 0xfc94
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x1d8bf(%rip), %rcx     # 0x2c1ac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movl $0x18, %edi
callq 0x62e0
movq %rax, %r14
movq %rax, %rdi
callq 0x1cfb4
leaq 0x98(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1eab7(%rip), %rsi     # 0x2d3f5
leaq 0x1eaca(%rip), %rdx     # 0x2d40f
leaq 0x88(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x11, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x88(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfc97
movq 0x98(%rsp), %rsi
jmp 0xf48d
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0xd8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1e995(%rip), %rsi     # 0x2d3aa
leaq 0x1e9b2(%rip), %rdx     # 0x2d3ce
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x1d, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0xea62
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e95a(%rip), %rsi     # 0x2d3cf
leaq 0x1e978(%rip), %rdx     # 0x2d3f4
leaq 0xa8(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0xb8(%rsp), %rsi
jmp 0xfbdd
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x198(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1e797(%rip), %rsi     # 0x2d2e1
leaq 0x1e7b0(%rip), %rdx     # 0x2d301
leaq 0x188(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x1a, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x188(%rsp), %rdi
cmpq %r13, %rdi
je 0xeb97
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x178(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e758(%rip), %rsi     # 0x2d302
leaq 0x1e772(%rip), %rdx     # 0x2d323
leaq 0x168(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0x178(%rsp), %rsi
jmp 0xfbdd
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movl $0x18, %edi
callq 0x62e0
movq %rax, %r14
movq %rax, %rdi
callq 0x1cfb4
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e830(%rip), %rsi     # 0x2d46b
leaq 0x1e846(%rip), %rdx     # 0x2d488
leaq 0x8(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x7, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfc97
movq 0x18(%rsp), %rsi
jmp 0xf48d
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x158(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1e61b(%rip), %rsi     # 0x2d324
leaq 0x1e638(%rip), %rdx     # 0x2d348
leaq 0x148(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x1b, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0xed56
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e5e0(%rip), %rsi     # 0x2d349
leaq 0x1e5fe(%rip), %rdx     # 0x2d36e
leaq 0x128(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0x138(%rsp), %rsi
jmp 0xfbdd
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x58(%r14), %rax
cmpl $0x6, 0x10(%rax)
jne 0xef92
movl $0x18, %edi
callq 0x62e0
movq %rax, %r15
movq %rax, %rdi
callq 0x1cfb4
movq 0x58(%r14), %r12
addq $0x18, %r12
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d36e
leaq 0x398(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e193(%rip), %rsi     # 0x2cfc5
leaq 0x1e1d7(%rip), %rdx     # 0x2d010
leaq 0x388(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x388(%rsp), %rdi
cmpq %rbp, %rdi
je 0xee7c
movq 0x398(%rsp), %rsi
incq %rsi
callq 0x62f0
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rbx, %rdi
callq 0x2af04
addl $0x2, %eax
movq %r12, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1cfca
leaq 0x378(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e15b(%rip), %rsi     # 0x2d011
leaq 0x1e17f(%rip), %rdx     # 0x2d03c
leaq 0x368(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x368(%rsp), %rdi
cmpq %rbp, %rdi
je 0xef01
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x58(%r14), %r12
addq $0x30, %r12
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d36e
leaq 0x358(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e0f5(%rip), %rsi     # 0x2d03d
leaq 0x1e13a(%rip), %rdx     # 0x2d089
leaq 0x348(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0xef92
movq 0x358(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movq 0x60(%r14), %rax
cmpl $0x6, 0x10(%rax)
movq %r15, (%rsp)
jne 0xf173
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
callq 0x1cfb4
movq 0x60(%r14), %r13
addq $0x18, %r13
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d36e
leaq 0x338(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e077(%rip), %rsi     # 0x2d08a
leaq 0x1e0b9(%rip), %rdx     # 0x2d0d3
leaq 0x328(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2ae24
movq 0x328(%rsp), %rdi
cmpq %r15, %rdi
je 0xf05d
movq 0x338(%rsp), %rsi
incq %rsi
callq 0x62f0
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rbx, %rdi
callq 0x2af04
addl $0x2, %eax
movq %r13, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1cfca
leaq 0x318(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1df7a(%rip), %rsi     # 0x2d011
leaq 0x1df9e(%rip), %rdx     # 0x2d03c
leaq 0x308(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r13, %r8
movq %rbp, %r9
callq 0x2ae24
movq 0x308(%rsp), %rdi
cmpq %r15, %rdi
je 0xf0e2
movq 0x318(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x60(%r14), %r13
addq $0x30, %r13
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d36e
leaq 0x2f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dfab(%rip), %rsi     # 0x2d0d4
leaq 0x1dfee(%rip), %rdx     # 0x2d11e
leaq 0x2e8(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2ae24
movq 0x2e8(%rsp), %rdi
cmpq %r15, %rdi
je 0xf173
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x2d8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1df6f(%rip), %rsi     # 0x2d11f
leaq 0x1df87(%rip), %rdx     # 0x2d13e
leaq 0x2c8(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x18, %esi
movq (%rsp), %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x2c8(%rsp), %rdi
cmpq %r15, %rdi
je 0xf1fe
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x30(%r14), %r15
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r15, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x2b8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1df04(%rip), %rsi     # 0x2d13f
leaq 0x1df1d(%rip), %rdx     # 0x2d15f
leaq 0x2a8(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x2a8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0x2b8(%rsp), %rsi
jmp 0xfbdd
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movl $0x18, %edi
callq 0x62e0
movq %rax, %r14
movq %rax, %rdi
callq 0x1cfb4
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e160(%rip), %rsi     # 0x2d42c
leaq 0x1e177(%rip), %rdx     # 0x2d44a
leaq 0x48(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x13, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfc97
movq 0x58(%rsp), %rsi
jmp 0xf48d
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movl $0x18, %edi
callq 0x62e0
movq %rax, %r14
movq %rax, %rdi
callq 0x1cfb4
leaq 0x38(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e0f5(%rip), %rsi     # 0x2d44b
leaq 0x1e10d(%rip), %rdx     # 0x2d46a
leaq 0x28(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x14, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfc97
movq 0x38(%rsp), %rsi
jmp 0xf48d
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2af0e
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %rbx
movq 0x58(%r14), %r15
leaq 0x30(%r15), %rdx
movq 0x30(%r15), %rsi
cmpq %rdx, %rsi
je 0xf6de
movq %rbx, %rdi
callq 0x6160
movq 0x40(%r15), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x40(%r15)
jmp 0xf6de
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movl $0x18, %edi
callq 0x62e0
movq %rax, %r14
movq %rax, %rdi
callq 0x1cfb4
leaq 0x78(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1dfc3(%rip), %rsi     # 0x2d410
leaq 0x1dfd7(%rip), %rdx     # 0x2d42b
leaq 0x68(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x12, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfc97
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x62f0
jmp 0xfc97
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2af0e
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x30(%r14), %rbx
movq 0x58(%r14), %r15
leaq 0x30(%r15), %rdx
movq 0x30(%r15), %rsi
cmpq %rdx, %rsi
je 0xf4fe
movq %rbx, %rdi
callq 0x6160
movq 0x40(%r15), %rax
addq %rax, 0x40(%r14)
movq $0x0, 0x40(%r15)
movq 0x60(%r14), %r15
leaq 0x30(%r15), %rdx
movq 0x30(%r15), %rsi
cmpq %rdx, %rsi
je 0xf527
movq %rbx, %rdi
callq 0x6160
movq 0x40(%r15), %rax
addq %rax, 0x40(%r14)
movq $0x0, 0x40(%r15)
movq 0x60(%r14), %rdx
cmpq %r14, %rdx
je 0xfc94
addq $0x18, %r14
movq 0x18(%rdx), %rsi
addq $0x18, %rdx
jmp 0xfc8c
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x118(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1dda1(%rip), %rsi     # 0x2d36f
leaq 0x1ddb6(%rip), %rdx     # 0x2d38b
leaq 0x108(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x1c, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0xf61b
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dd5e(%rip), %rsi     # 0x2d38c
leaq 0x1dd74(%rip), %rdx     # 0x2d3a9
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0xf8(%rsp), %rsi
jmp 0xfbdd
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x30, %r15
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2af0e
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %rbx
movq 0x58(%r14), %r15
leaq 0x18(%r15), %rdx
movq 0x18(%r15), %rsi
cmpq %rdx, %rsi
je 0xf6de
movq %rbx, %rdi
callq 0x6160
movq 0x28(%r15), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%r15)
movq 0x60(%r14), %r15
leaq 0x18(%r15), %rdx
movq 0x18(%r15), %rsi
cmpq %rdx, %rsi
je 0xf707
movq %rbx, %rdi
callq 0x6160
movq 0x28(%r15), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%r15)
movq 0x60(%r14), %rdx
jmp 0xfc7b
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r15
movq 0x58(%r14), %rax
cmpl $0x6, 0x10(%rax)
jne 0xf8ed
movl $0x18, %edi
callq 0x62e0
movq %rax, %r15
movq %rax, %rdi
callq 0x1cfb4
movq 0x58(%r14), %r12
addq $0x18, %r12
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d36e
leaq 0x298(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1d9d3(%rip), %rsi     # 0x2d160
leaq 0x1da1a(%rip), %rdx     # 0x2d1ae
leaq 0x288(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x288(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf7d7
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x62f0
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rbx, %rdi
callq 0x2af04
addl $0x2, %eax
movq %r12, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1cfca
leaq 0x278(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1d800(%rip), %rsi     # 0x2d011
leaq 0x1d824(%rip), %rdx     # 0x2d03c
leaq 0x268(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
movq %r13, %r9
callq 0x2ae24
movq 0x268(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf85c
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x58(%r14), %r12
addq $0x30, %r12
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d36e
leaq 0x258(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1d90c(%rip), %rsi     # 0x2d1af
leaq 0x1d954(%rip), %rdx     # 0x2d1fe
leaq 0x248(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf8ed
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq %rax, %r12
movq 0x60(%r14), %rax
cmpl $0x6, 0x10(%rax)
movq %r15, (%rsp)
jne 0xface
movl $0x18, %edi
callq 0x62e0
movq %rax, %r12
movq %rax, %rdi
callq 0x1cfb4
movq 0x60(%r14), %r13
addq $0x18, %r13
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d36e
leaq 0x238(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d891(%rip), %rsi     # 0x2d1ff
leaq 0x1d8d6(%rip), %rdx     # 0x2d24b
leaq 0x228(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2ae24
movq 0x228(%rsp), %rdi
cmpq %r15, %rdi
je 0xf9b8
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x62f0
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rbx, %rdi
callq 0x2af04
addl $0x2, %eax
movq %r13, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1cfca
leaq 0x218(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d61f(%rip), %rsi     # 0x2d011
leaq 0x1d643(%rip), %rdx     # 0x2d03c
leaq 0x208(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r13, %r8
movq %rbp, %r9
callq 0x2ae24
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0xfa3d
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x62f0
movq 0x60(%r14), %r13
addq $0x30, %r13
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2af0e
movl $0x18, %edi
callq 0x62e0
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d36e
leaq 0x1f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d7c8(%rip), %rsi     # 0x2d24c
leaq 0x1d80e(%rip), %rdx     # 0x2d299
leaq 0x1e8(%rsp), %rbp
movq %rbp, %rdi
callq 0x6fec
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2ae24
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0xface
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x1d8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d78f(%rip), %rsi     # 0x2d29a
leaq 0x1d7aa(%rip), %rdx     # 0x2d2bc
leaq 0x1c8(%rsp), %r13
movq %r13, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x19, %esi
movq (%rsp), %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2ae24
movq 0x1c8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfb59
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x62f0
leaq 0x30(%r14), %r15
movq %rbx, %rdi
callq 0x2af04
movl %eax, %ebp
movl $0x18, %edi
callq 0x62e0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r15, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x1b8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d727(%rip), %rsi     # 0x2d2bd
leaq 0x1d743(%rip), %rdx     # 0x2d2e0
leaq 0x1a8(%rsp), %r14
movq %r14, %rdi
callq 0x6fec
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2ae24
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfc94
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x62f0
jmp 0xfc94
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x60(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2af04
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2af0e
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %rbx
movq 0x60(%r14), %r15
leaq 0x30(%r15), %rdx
movq 0x30(%r15), %rsi
cmpq %rdx, %rsi
je 0xfc4e
movq %rbx, %rdi
callq 0x6160
movq 0x40(%r15), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x40(%r15)
movq 0x58(%r14), %r15
leaq 0x18(%r15), %rdx
movq 0x18(%r15), %rsi
cmpq %rdx, %rsi
je 0xfc77
movq %rbx, %rdi
callq 0x6160
movq 0x28(%r15), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%r15)
movq 0x58(%r14), %rdx
cmpq %r14, %rdx
je 0xfc94
addq $0x30, %r14
movq 0x30(%rdx), %rsi
addq $0x30, %rdx
movq %r14, %rdi
callq 0x16cd2
xorl %r14d, %r14d
movq %r14, %rax
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x1f8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x2e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x2f8(%rsp), %rsi
jmp 0x100ad
jmp 0xff02
jmp 0xff02
movq %rax, %rbx
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x218(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x308(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x318(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x258(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x358(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x238(%rsp), %rsi
jmp 0x100ad
jmp 0xff14
movq %rax, %rbx
movq 0x328(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x338(%rsp), %rsi
jmp 0x100ad
jmp 0xff14
jmp 0xff02
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x278(%rsp), %rsi
jmp 0x100ad
jmp 0xff02
movq %rax, %rbx
movq 0x368(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x378(%rsp), %rsi
jmp 0x100ad
jmp 0xff14
jmp 0xff14
movq %rax, %rbx
movq 0x288(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x298(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x388(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x398(%rsp), %rsi
jmp 0x100ad
jmp 0xff14
jmp 0xff14
jmp 0xfe6c
movq %rax, %rbx
movl $0x18, %esi
movq %r15, %rdi
jmp 0x100b0
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x1b8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x2b8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x1d8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x2c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x2d8(%rsp), %rsi
jmp 0x100ad
jmp 0xff02
movq %rax, %rbx
movl $0x18, %esi
movq %r13, %rdi
jmp 0x100b0
jmp 0xff14
movq %rax, %rbx
movl $0x18, %esi
movq %r12, %rdi
jmp 0x100b0
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0xf8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x78(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x38(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x98(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x58(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x138(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x100b5
movq 0x18(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0x178(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x100b5
movq 0xb8(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0x100b5
movq 0x118(%rsp), %rsi
jmp 0x100ad
jmp 0x1006e
jmp 0x1006e
jmp 0x1006e
jmp 0x1006e
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x100b5
movq 0x158(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movl $0x18, %esi
movq %r14, %rdi
jmp 0x100b0
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r13, %rdi
je 0x100b5
movq 0x198(%rsp), %rsi
jmp 0x100ad
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0x100b5
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x62f0
movq %rbx, %rdi
callq 0x6550
nop