// File: /workspace/github_cpp_makefile_star2_O2/carellano8[P]Proyecto-Redes-I-2017/main.cpp
// Function: receptor(int)
void receptor(int c){
    string tramas="";
    char buff;
    bool error=false;
	if(c){
	    ifstream archivo2("canalcrc.txt");
	    if(archivo2.is_open()){
	        while (! archivo2.eof() &&!error){

	             buff=archivo2.get();
	             if(buff=='0'||buff=='1'){
                         tramas+=buff;
	               }else{
                        
                        if(buff!= EOF&&buff!='\n'){
                            error=true;
                            
                        }
                    
                 }
	        }
            if(!error){
	           crc16::recibir(tramas);
                }
	        archivo2.close();
            if(error){
                cout<<"Se ha detectado algun un error"<<endl;
                ofstream archivo("salidacrc.txt");  
                if(archivo.is_open()){
                    archivo<<"Se ha detectado algun un error"<<endl;
                    archivo.close();
                }else{
                    cout<<"Se ha detectado algun un error"<<endl;
                }
            }
	    }else{
            ofstream archivo("salidacrc.txt");  
            if(archivo.is_open()){
            archivo<<"Se ha detectado algun un error"<<endl;
            archivo.close();
            }else{
                cout<<"Se ha detectado algun un error"<<endl;
            }

            cout<<"Se ha detectado algun un error"<<endl;
        }
	}
	else{
	    ifstream archivo2("canalh.txt");
	    if(archivo2.is_open()){
	        while (! archivo2.eof() ){

	             buff=archivo2.get();
	             if(buff=='0'||buff=='1'){
                         tramas+=buff;
                   }else{
                        
                        if(buff!= EOF&&buff!='\n'){
                            error=true;
                            
                        }
                    
                 }
	        }
            if(!error){
	           hamming::recibir(tramas);
	        }
            archivo2.close();
            if(error){
                cout<<"Se ha detectado algun un error"<<endl;
                ofstream archivo("salidah.txt");
                if(archivo.is_open()){
                    archivo<<"Se ha detectado algun un error"<<endl;
                    archivo.close();
                }else{
                    cout<<"Se ha detectado algun un error"<<endl;
                }
            }
	    }else{
            ofstream archivo("salidah.txt");
            if(archivo.is_open()){
                archivo<<"Se ha detectado algun un error"<<endl;
                archivo.close();
            }else{
                cout<<"Se ha detectado algun un error"<<endl;
            }
            cout<<"Se ha detectado algun un error"<<endl;
        }

	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x468, %rsp            # imm = 0x468
movl %edi, %ebx
leaq 0x39ac(%rip), %rsi      # 0x6159
leaq -0x38(%rbp), %rdi
leaq -0x480(%rbp), %rdx
callq 0x2c1a
testl %ebx, %ebx
je 0x2855
leaq 0x38b6(%rip), %rsi      # 0x6082
leaq -0x480(%rbp), %rdi
pushq $0x8
popq %rdx
callq 0x2250
leaq -0x408(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x28db
xorl %r15d, %r15d
leaq -0x480(%rbp), %rbx
leaq -0x38(%rbp), %r14
movq -0x480(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x460(%rbp,%rax)
jne 0x2931
testb $0x1, %r15b
jne 0x2931
movq %rbx, %rdi
callq 0x2190
movl %eax, %ecx
andl $0xfe, %ecx
cmpl $0x30, %ecx
jne 0x2845
xorl %r15d, %r15d
movsbl %al, %esi
movq %r14, %rdi
callq 0x2110
jmp 0x27fd
cmpb $-0x1, %al
setne %cl
cmpb $0xa, %al
setne %r15b
andb %cl, %r15b
jmp 0x27fd
leaq 0x3860(%rip), %rsi      # 0x60bc
leaq -0x480(%rbp), %rdi
pushq $0x8
popq %rdx
callq 0x2250
leaq -0x408(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x29dd
xorl %r15d, %r15d
leaq -0x480(%rbp), %rbx
leaq -0x38(%rbp), %r14
movq -0x480(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x460(%rbp,%rax)
jne 0x2a33
movq %rbx, %rdi
callq 0x2190
movl %eax, %ecx
andl $0xfe, %ecx
cmpl $0x30, %ecx
jne 0x28c8
movsbl %al, %esi
movq %r14, %rdi
callq 0x2110
jmp 0x288d
cmpb $0xa, %al
je 0x288d
movzbl %al, %eax
cmpl $0xff, %eax
je 0x288d
movb $0x1, %r15b
jmp 0x288d
leaq 0x37cc(%rip), %rsi      # 0x60ae
leaq -0x278(%rbp), %rdi
pushq $0x10
popq %rdx
callq 0x2180
leaq -0x208(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x2adf
leaq 0x3783(%rip), %rsi      # 0x608f
leaq -0x278(%rbp), %rdi
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq -0x278(%rbp), %rdi
callq 0x21d0
jmp 0x2afa
testb $0x1, %r15b
jne 0x2956
leaq -0x78(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x21c0
leaq -0x78(%rbp), %rdi
callq 0x365c
leaq -0x78(%rbp), %rdi
callq 0x20a0
leaq -0x480(%rbp), %rdi
callq 0x2040
testb $0x1, %r15b
je 0x2b93
movq 0x665d(%rip), %rdi      # 0x8fd0
leaq 0x3715(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq 0x3720(%rip), %rsi      # 0x60ae
leaq -0x278(%rbp), %rdi
pushq $0x10
popq %rdx
callq 0x2180
leaq -0x208(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x2b4f
leaq 0x36d7(%rip), %rsi      # 0x608f
leaq -0x278(%rbp), %rdi
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq -0x278(%rbp), %rdi
callq 0x21d0
jmp 0x2b87
leaq 0x36e3(%rip), %rsi      # 0x60c7
leaq -0x278(%rbp), %rdi
pushq $0x10
popq %rdx
callq 0x2180
leaq -0x208(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x2b17
leaq 0x3681(%rip), %rsi      # 0x608f
leaq -0x278(%rbp), %rdi
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq -0x278(%rbp), %rdi
callq 0x21d0
jmp 0x2b32
testb $0x1, %r15b
jne 0x2a58
leaq -0x58(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x21c0
leaq -0x58(%rbp), %rdi
callq 0x48e6
leaq -0x58(%rbp), %rdi
callq 0x20a0
leaq -0x480(%rbp), %rdi
callq 0x2040
testb $0x1, %r15b
je 0x2b93
movq 0x655b(%rip), %rdi      # 0x8fd0
leaq 0x3613(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq 0x3637(%rip), %rsi      # 0x60c7
leaq -0x278(%rbp), %rdi
pushq $0x10
popq %rdx
callq 0x2180
leaq -0x208(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x2b6c
leaq 0x35d5(%rip), %rsi      # 0x608f
leaq -0x278(%rbp), %rdi
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq -0x278(%rbp), %rdi
callq 0x21d0
jmp 0x2b87
movq 0x64ea(%rip), %rdi      # 0x8fd0
leaq 0x35a2(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
movq 0x64cf(%rip), %rdi      # 0x8fd0
leaq 0x3587(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
jmp 0x2b87
movq 0x64b2(%rip), %rdi      # 0x8fd0
leaq 0x356a(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
movq 0x6497(%rip), %rdi      # 0x8fd0
leaq 0x354f(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
jmp 0x2b87
movq 0x647a(%rip), %rdi      # 0x8fd0
leaq 0x3532(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
jmp 0x2b87
movq 0x645d(%rip), %rdi      # 0x8fd0
leaq 0x3515(%rip), %rsi      # 0x608f
callq 0x2150
movq %rax, %rdi
callq 0x20b0
leaq -0x278(%rbp), %rdi
callq 0x21e0
leaq -0x480(%rbp), %rdi
callq 0x2070
leaq -0x38(%rbp), %rdi
callq 0x20a0
addq $0x468, %rsp            # imm = 0x468
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2bf9
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
jmp 0x2bca
jmp 0x2bf9
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20a0
jmp 0x2bfc
jmp 0x2bf9
jmp 0x2be6
jmp 0x2bf9
jmp 0x2bdd
jmp 0x2be6
jmp 0x2bf9
movq %rax, %rbx
jmp 0x2c08
jmp 0x2bf9
jmp 0x2be6
movq %rax, %rbx
leaq -0x278(%rbp), %rdi
callq 0x21e0
jmp 0x2bfc
jmp 0x2bf9
movq %rax, %rbx
leaq -0x480(%rbp), %rdi
callq 0x2070
leaq -0x38(%rbp), %rdi
callq 0x20a0
movq %rbx, %rdi
callq 0x2230
nop