// File: /workspace/github_cpp_makefile_star2_O3/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 0xfcf1
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x1e869(%rip), %rcx     # 0x2d1ac
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 0x62f0
movq %rax, %r14
movq %rax, %rdi
callq 0x1d014
leaq 0x98(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1fa61(%rip), %rsi     # 0x2e3f5
leaq 0x1fa74(%rip), %rdx     # 0x2e40f
leaq 0x88(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x11, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x88(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfcf4
movq 0x98(%rsp), %rsi
jmp 0xf4e3
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 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0xd8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1f93f(%rip), %rsi     # 0x2e3aa
leaq 0x1f95c(%rip), %rdx     # 0x2e3ce
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x1d, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0xeab8
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1f904(%rip), %rsi     # 0x2e3cf
leaq 0x1f922(%rip), %rdx     # 0x2e3f4
leaq 0xa8(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0xb8(%rsp), %rsi
jmp 0xfc37
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 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x198(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1f741(%rip), %rsi     # 0x2e2e1
leaq 0x1f75a(%rip), %rdx     # 0x2e301
leaq 0x188(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x1a, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x188(%rsp), %rdi
cmpq %r13, %rdi
je 0xebed
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x178(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1f702(%rip), %rsi     # 0x2e302
leaq 0x1f71c(%rip), %rdx     # 0x2e323
leaq 0x168(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0x178(%rsp), %rsi
jmp 0xfc37
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 0x62f0
movq %rax, %r14
movq %rax, %rdi
callq 0x1d014
leaq 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f7da(%rip), %rsi     # 0x2e46b
leaq 0x1f7f0(%rip), %rdx     # 0x2e488
leaq 0x8(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x7, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfcf4
movq 0x18(%rsp), %rsi
jmp 0xf4e3
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 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x158(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1f5c5(%rip), %rsi     # 0x2e324
leaq 0x1f5e2(%rip), %rdx     # 0x2e348
leaq 0x148(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x1b, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0xedac
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1f58a(%rip), %rsi     # 0x2e349
leaq 0x1f5a8(%rip), %rdx     # 0x2e36e
leaq 0x128(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0x138(%rsp), %rsi
jmp 0xfc37
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 0xefe8
movl $0x18, %edi
callq 0x62f0
movq %rax, %r15
movq %rax, %rdi
callq 0x1d014
movq 0x58(%r14), %r12
addq $0x18, %r12
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d3f2
leaq 0x398(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f13d(%rip), %rsi     # 0x2dfc5
leaq 0x1f181(%rip), %rdx     # 0x2e010
leaq 0x388(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x388(%rsp), %rdi
cmpq %rbp, %rdi
je 0xeed2
movq 0x398(%rsp), %rsi
incq %rsi
callq 0x6300
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rbx, %rdi
callq 0x2b316
addl $0x2, %eax
movq %r12, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1d02a
leaq 0x378(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f105(%rip), %rsi     # 0x2e011
leaq 0x1f129(%rip), %rdx     # 0x2e03c
leaq 0x368(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x368(%rsp), %rdi
cmpq %rbp, %rdi
je 0xef57
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x6300
movq 0x58(%r14), %r12
addq $0x30, %r12
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d3f2
leaq 0x358(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f09f(%rip), %rsi     # 0x2e03d
leaq 0x1f0e4(%rip), %rdx     # 0x2e089
leaq 0x348(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0xefe8
movq 0x358(%rsp), %rsi
incq %rsi
callq 0x6300
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 0xf1c9
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
callq 0x1d014
movq 0x60(%r14), %r13
addq $0x18, %r13
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d3f2
leaq 0x338(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1f021(%rip), %rsi     # 0x2e08a
leaq 0x1f063(%rip), %rdx     # 0x2e0d3
leaq 0x328(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2b238
movq 0x328(%rsp), %rdi
cmpq %r15, %rdi
je 0xf0b3
movq 0x338(%rsp), %rsi
incq %rsi
callq 0x6300
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rbx, %rdi
callq 0x2b316
addl $0x2, %eax
movq %r13, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1d02a
leaq 0x318(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ef24(%rip), %rsi     # 0x2e011
leaq 0x1ef48(%rip), %rdx     # 0x2e03c
leaq 0x308(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r13, %r8
movq %rbp, %r9
callq 0x2b238
movq 0x308(%rsp), %rdi
cmpq %r15, %rdi
je 0xf138
movq 0x318(%rsp), %rsi
incq %rsi
callq 0x6300
movq 0x60(%r14), %r13
addq $0x30, %r13
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d3f2
leaq 0x2f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ef55(%rip), %rsi     # 0x2e0d4
leaq 0x1ef98(%rip), %rdx     # 0x2e11e
leaq 0x2e8(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2b238
movq 0x2e8(%rsp), %rdi
cmpq %r15, %rdi
je 0xf1c9
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x2d8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ef19(%rip), %rsi     # 0x2e11f
leaq 0x1ef31(%rip), %rdx     # 0x2e13e
leaq 0x2c8(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x18, %esi
movq (%rsp), %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x2c8(%rsp), %rdi
cmpq %r15, %rdi
je 0xf254
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x30(%r14), %r15
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r15, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x2b8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1eeae(%rip), %rsi     # 0x2e13f
leaq 0x1eec7(%rip), %rdx     # 0x2e15f
leaq 0x2a8(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x2a8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0x2b8(%rsp), %rsi
jmp 0xfc37
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 0x62f0
movq %rax, %r14
movq %rax, %rdi
callq 0x1d014
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f10a(%rip), %rsi     # 0x2e42c
leaq 0x1f121(%rip), %rdx     # 0x2e44a
leaq 0x48(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x13, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfcf4
movq 0x58(%rsp), %rsi
jmp 0xf4e3
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 0x62f0
movq %rax, %r14
movq %rax, %rdi
callq 0x1d014
leaq 0x38(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1f09f(%rip), %rsi     # 0x2e44b
leaq 0x1f0b7(%rip), %rdx     # 0x2e46a
leaq 0x28(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x14, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfcf4
movq 0x38(%rsp), %rsi
jmp 0xf4e3
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2b320
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %r15
movq 0x58(%r14), %rbx
leaq 0x30(%rbx), %rdx
movq 0x30(%rbx), %rsi
cmpq %rdx, %rsi
je 0xf734
movq %r15, %rdi
callq 0x6160
movq 0x40(%rbx), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x40(%rbx)
jmp 0xf734
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 0x62f0
movq %rax, %r14
movq %rax, %rdi
callq 0x1d014
leaq 0x78(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1ef6d(%rip), %rsi     # 0x2e410
leaq 0x1ef81(%rip), %rdx     # 0x2e42b
leaq 0x68(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x12, %esi
movq %r14, %rdx
movq %r15, %rcx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfcf4
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6300
jmp 0xfcf4
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2b320
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x30(%r14), %r15
movq 0x58(%r14), %rbx
leaq 0x30(%rbx), %rdx
movq 0x30(%rbx), %rsi
cmpq %rdx, %rsi
je 0xf554
movq %r15, %rdi
callq 0x6160
movq 0x40(%rbx), %rax
addq %rax, 0x40(%r14)
movq $0x0, 0x40(%rbx)
movq 0x60(%r14), %rbx
leaq 0x30(%rbx), %rdx
movq 0x30(%rbx), %rsi
cmpq %rdx, %rsi
je 0xf581
movq %r15, %rdi
callq 0x6160
movq 0x40(%rbx), %rax
addq %rax, 0x40(%r14)
movq $0x0, 0x40(%rbx)
movq 0x60(%r14), %rbx
cmpq %r14, %rbx
je 0xfcf1
addq $0x18, %r14
movq 0x18(%rbx), %rsi
addq $0x18, %rbx
jmp 0xfce6
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 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x30(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
incl %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x118(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x1ed4b(%rip), %rsi     # 0x2e36f
leaq 0x1ed60(%rip), %rdx     # 0x2e38b
leaq 0x108(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x1c, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0xf671
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1ed08(%rip), %rsi     # 0x2e38c
leaq 0x1ed1e(%rip), %rdx     # 0x2e3a9
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0xf8(%rsp), %rsi
jmp 0xfc37
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x58(%r14), %r15
addq $0x30, %r15
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2b320
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %r15
movq 0x58(%r14), %rbx
leaq 0x18(%rbx), %rdx
movq 0x18(%rbx), %rsi
cmpq %rdx, %rsi
je 0xf734
movq %r15, %rdi
callq 0x6160
movq 0x28(%rbx), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%rbx)
movq 0x60(%r14), %rbx
leaq 0x18(%rbx), %rdx
movq 0x18(%rbx), %rsi
cmpq %rdx, %rsi
je 0xfcd5
movq %r15, %rdi
callq 0x6160
movq 0x28(%rbx), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%rbx)
movq 0x60(%r14), %rbx
jmp 0xfcd5
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 0xf947
movl $0x18, %edi
callq 0x62f0
movq %rax, %r15
movq %rax, %rdi
callq 0x1d014
movq 0x58(%r14), %r12
addq $0x18, %r12
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d3f2
leaq 0x298(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e979(%rip), %rsi     # 0x2e160
leaq 0x1e9c0(%rip), %rdx     # 0x2e1ae
leaq 0x288(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x288(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf831
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x6300
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rbx, %rdi
callq 0x2b316
addl $0x2, %eax
movq %r12, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1d02a
leaq 0x278(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e7a6(%rip), %rsi     # 0x2e011
leaq 0x1e7ca(%rip), %rdx     # 0x2e03c
leaq 0x268(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
movq %r13, %r9
callq 0x2b238
movq 0x268(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf8b6
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x6300
movq 0x58(%r14), %r12
addq $0x30, %r12
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d3f2
leaq 0x258(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1e8b2(%rip), %rsi     # 0x2e1af
leaq 0x1e8fa(%rip), %rdx     # 0x2e1fe
leaq 0x248(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf947
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x6300
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 0xfb28
movl $0x18, %edi
callq 0x62f0
movq %rax, %r12
movq %rax, %rdi
callq 0x1d014
movq 0x60(%r14), %r13
addq $0x18, %r13
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rax, %rdi
movl $0x1, %esi
callq 0x1d3f2
leaq 0x238(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e837(%rip), %rsi     # 0x2e1ff
leaq 0x1e87c(%rip), %rdx     # 0x2e24b
leaq 0x228(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2b238
movq 0x228(%rsp), %rdi
cmpq %r15, %rdi
je 0xfa12
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x6300
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rbx, %rdi
callq 0x2b316
addl $0x2, %eax
movq %r13, %rdi
movl %eax, %esi
movl $0x6, %edx
callq 0x1d02a
leaq 0x218(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e5c5(%rip), %rsi     # 0x2e011
leaq 0x1e5e9(%rip), %rdx     # 0x2e03c
leaq 0x208(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r13, %r8
movq %rbp, %r9
callq 0x2b238
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0xfa97
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x6300
movq 0x60(%r14), %r13
addq $0x30, %r13
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r13, %rsi
movl %eax, %edx
callq 0x2b320
movl $0x18, %edi
callq 0x62f0
movq %rax, %r13
movq %rax, %rdi
xorl %esi, %esi
callq 0x1d3f2
leaq 0x1f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e76e(%rip), %rsi     # 0x2e24c
leaq 0x1e7b4(%rip), %rdx     # 0x2e299
leaq 0x1e8(%rsp), %rbp
movq %rbp, %rdi
callq 0x7008
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
xorl %r8d, %r8d
movq %rbp, %r9
callq 0x2b238
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfb28
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x18(%r14), %r13
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rsi
callq 0x6080
incq 0x28(%r14)
leaq 0x1d8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e735(%rip), %rsi     # 0x2e29a
leaq 0x1e750(%rip), %rdx     # 0x2e2bc
leaq 0x1c8(%rsp), %r13
movq %r13, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x19, %esi
movq (%rsp), %rdx
movq %r12, %rcx
xorl %r8d, %r8d
movq %r13, %r9
callq 0x2b238
movq 0x1c8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfbb3
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x6300
leaq 0x30(%r14), %r15
movq %rbx, %rdi
callq 0x2b316
movl %eax, %ebp
movl $0x18, %edi
callq 0x62f0
movl %ebp, 0x10(%rax)
movq %rax, %rdi
movq %r15, %rsi
callq 0x6080
incq 0x40(%r14)
leaq 0x1b8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1e6cd(%rip), %rsi     # 0x2e2bd
leaq 0x1e6e9(%rip), %rdx     # 0x2e2e0
leaq 0x1a8(%rsp), %r14
movq %r14, %rdi
callq 0x7008
movq %rbx, %rdi
movl $0x16, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
callq 0x2b238
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0xfcf1
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x6300
jmp 0xfcf1
movq 0x60(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq 0x60(%r14), %r15
addq $0x18, %r15
movq %rbx, %rdi
callq 0x2b316
movq %rbx, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x2b320
movq 0x58(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
leaq 0x18(%r14), %r15
movq 0x60(%r14), %rbx
leaq 0x30(%rbx), %rdx
movq 0x30(%rbx), %rsi
cmpq %rdx, %rsi
je 0xfca8
movq %r15, %rdi
callq 0x6160
movq 0x40(%rbx), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x40(%rbx)
movq 0x58(%r14), %rbx
leaq 0x18(%rbx), %rdx
movq 0x18(%rbx), %rsi
cmpq %rdx, %rsi
je 0xfcd5
movq %r15, %rdi
callq 0x6160
movq 0x28(%rbx), %rax
addq %rax, 0x28(%r14)
movq $0x0, 0x28(%rbx)
movq 0x58(%r14), %rbx
cmpq %r14, %rbx
je 0xfcf1
addq $0x30, %r14
movq 0x30(%rbx), %rsi
addq $0x30, %rbx
movq %r14, %rdi
movq %rbx, %rdx
callq 0x16cfe
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 0x10112
movq 0x1f8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x2e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x2f8(%rsp), %rsi
jmp 0x1010a
jmp 0xff5f
jmp 0xff5f
movq %rax, %rbx
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x218(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x308(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x318(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x248(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x258(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x358(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x238(%rsp), %rsi
jmp 0x1010a
jmp 0xff71
movq %rax, %rbx
movq 0x328(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x338(%rsp), %rsi
jmp 0x1010a
jmp 0xff71
jmp 0xff5f
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x278(%rsp), %rsi
jmp 0x1010a
jmp 0xff5f
movq %rax, %rbx
movq 0x368(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x378(%rsp), %rsi
jmp 0x1010a
jmp 0xff71
jmp 0xff71
movq %rax, %rbx
movq 0x288(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x298(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x388(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x398(%rsp), %rsi
jmp 0x1010a
jmp 0xff71
jmp 0xff71
jmp 0xfec9
movq %rax, %rbx
movl $0x18, %esi
movq %r15, %rdi
jmp 0x1010d
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x1b8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x2b8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x1d8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x2c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x2d8(%rsp), %rsi
jmp 0x1010a
jmp 0xff5f
movq %rax, %rbx
movl $0x18, %esi
movq %r13, %rdi
jmp 0x1010d
jmp 0xff71
movq %rax, %rbx
movl $0x18, %esi
movq %r12, %rdi
jmp 0x1010d
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0xf8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x78(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x38(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x98(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x58(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x138(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10112
movq 0x18(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0x178(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x10112
movq 0xb8(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0x10112
movq 0x118(%rsp), %rsi
jmp 0x1010a
jmp 0x100cb
jmp 0x100cb
jmp 0x100cb
jmp 0x100cb
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r13, %rdi
je 0x10112
movq 0x158(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movl $0x18, %esi
movq %r14, %rdi
jmp 0x1010d
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r13, %rdi
je 0x10112
movq 0x198(%rsp), %rsi
jmp 0x1010a
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0x10112
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6300
movq %rbx, %rdi
callq 0x6560