// File: /workspace/github_cpp_makefile_star2_O2/carellano8[P]Proyecto-Redes-I-2017/main.cpp
// Function: emisor(int)
void emisor(int c){
    ifstream archivo("entrada.txt");
    string mensaje="";
    int i,j=0;
    char buff;
    bool error=false;
    if(archivo.is_open()){
        i=0;
        while (!archivo.eof()&&!error)
        {

             buff=archivo.get();
             if((buff>=32&&buff<=126)/*||buff=='\n'*/){
                mensaje+=buff;
            }else{
                
                if(buff!= EOF&&buff!='\n' ){//solo se ecepta un salto de linea y fin de archivo
                   // cout<<buff<<endl;
                    error=true;
                }
                if(buff=='\n'){
                        j++;
                   }
                if(buff==EOF){i--;}
            }
            if(j>=2){error=true;}
            i++;
        }
        
        if(i-1>MAXMSJ){error=true;}
        if(!error){
            if(c){
                crc16::enviar(mensaje);
                }
            else{
                hamming::enviar(mensaje);
                }   
        }
        if(error){
            cout<<"Se ha detectado algun un error"<<endl;
        }
        archivo.close();
    }else{

            cout<<"Se ha detectado algun un error"<<endl;
        }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
movl %edi, %ebx
leaq 0x3b0b(%rip), %rsi      # 0x60d3
leaq -0x298(%rbp), %rdi
pushq $0x8
popq %rdx
callq 0x2250
leaq 0x3b7b(%rip), %rsi      # 0x6159
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x2c1a
leaq -0x220(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x2694
movl %ebx, -0x30(%rbp)
xorl %r12d, %r12d
leaq -0x298(%rbp), %r14
pushq $0x1
popq %rbx
xorl %r15d, %r15d
xorl %r13d, %r13d
movq -0x298(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x278(%rbp,%rax)
jne 0x26b1
testb $0x1, %r13b
jne 0x26b1
movq %r14, %rdi
callq 0x2190
movsbl %al, %ecx
addl $-0x20, %ecx
cmpl $0x5e, %ecx
ja 0x2655
movsbl %al, %esi
leaq -0x50(%rbp), %rdi
callq 0x2110
jmp 0x2683
shll $0x18, %eax
cmpl $0xff000000, %eax       # imm = 0xFF000000
je 0x2669
cmpl $0xa000000, %eax        # imm = 0xA000000
je 0x2669
movb $0x1, %r13b
xorl %ecx, %ecx
cmpl $0xa000000, %eax        # imm = 0xA000000
sete %cl
addl %ecx, %r15d
xorl %ecx, %ecx
cmpl $0xff000000, %eax       # imm = 0xFF000000
sete %cl
subl %ecx, %r12d
cmpl $0x2, %r15d
movzbl %r13b, %r13d
cmovgel %ebx, %r13d
incl %r12d
jmp 0x2615
movq 0x6935(%rip), %rdi      # 0x8fd0
leaq 0x39ed(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
jmp 0x272c
cmpl $0x7d1, %r12d           # imm = 0x7D1
jg 0x26e3
testb $0x1, %r13b
jne 0x26e3
cmpl $0x0, -0x30(%rbp)
je 0x2700
leaq -0x90(%rbp), %rbx
leaq -0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0x21c0
movq %rbx, %rdi
callq 0x2cf4
jmp 0x2718
movq 0x68e6(%rip), %rdi      # 0x8fd0
leaq 0x399e(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
jmp 0x2720
leaq -0x70(%rbp), %rbx
leaq -0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0x21c0
movq %rbx, %rdi
callq 0x4108
movq %rbx, %rdi
callq 0x20a0
leaq -0x298(%rbp), %rdi
callq 0x2040
leaq -0x50(%rbp), %rdi
callq 0x20a0
leaq -0x298(%rbp), %rdi
callq 0x2070
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
jmp 0x2766
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x20a0
jmp 0x2777
movq %rax, %rbx
jmp 0x2780
jmp 0x2774
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20a0
leaq -0x298(%rbp), %rdi
callq 0x2070
movq %rbx, %rdi
callq 0x2230