// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x470, %rsp            # imm = 0x470
movl %edi, %ebx
leaq -0x30(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x57ed(%rip), %rdx      # 0x8159
leaq -0x40(%rbp), %rdi
movq %rdx, %rsi
callq 0x315a
testl %ebx, %ebx
je 0x2a2a
leaq 0x56fb(%rip), %rsi      # 0x8082
leaq -0x488(%rbp), %rdi
movl $0x8, %edx
callq 0x2260
leaq -0x410(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2aca
movq -0x488(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x468(%rbp,%rax)
jne 0x2bd8
xorl %r12d, %r12d
leaq -0x488(%rbp), %rbx
leaq -0x40(%rbp), %r14
movq %rbx, %rdi
callq 0x21b0
movl %eax, %ecx
andl $0xfe, %ecx
cmpl $0x30, %ecx
jne 0x29f5
movsbl %al, %esi
movq %r14, %rdi
callq 0x2120
jmp 0x2a06
cmpb $0xa, %al
je 0x2a06
movzbl %al, %eax
cmpl $0xff, %eax
je 0x2a06
movb $0x1, %r12b
movq -0x488(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x468(%rbp,%rax)
jne 0x2bdb
testb $0x1, %r12b
je 0x29d3
jmp 0x2bdb
leaq 0x568b(%rip), %rsi      # 0x80bc
leaq -0x488(%rbp), %rdi
movl $0x8, %edx
callq 0x2260
leaq -0x410(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2b51
movq -0x488(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x468(%rbp,%rax)
jne 0x2d8f
xorl %r12d, %r12d
leaq -0x488(%rbp), %rbx
leaq -0x40(%rbp), %r14
movq %rbx, %rdi
callq 0x21b0
movl %eax, %ecx
andl $0xfe, %ecx
cmpl $0x30, %ecx
jne 0x2a9f
movsbl %al, %esi
movq %r14, %rdi
callq 0x2120
jmp 0x2ab0
cmpb $0xa, %al
je 0x2ab0
movzbl %al, %eax
cmpl $0xff, %eax
je 0x2ab0
movb $0x1, %r12b
movq -0x488(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x468(%rbp,%rax)
je 0x2a7d
jmp 0x2d92
leaq 0x55dd(%rip), %rsi      # 0x80ae
leaq -0x280(%rbp), %rdi
movl $0x10, %edx
callq 0x2180
leaq -0x210(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2cfe
leaq 0x5592(%rip), %rsi      # 0x808f
leaq -0x280(%rbp), %rbx
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq -0x280(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
leaq -0x280(%rbp), %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq -0x280(%rbp), %rdi
callq 0x21d0
jmp 0x2d44
leaq 0x556f(%rip), %rsi      # 0x80c7
leaq -0x280(%rbp), %rdi
movl $0x10, %edx
callq 0x2180
leaq -0x210(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2eb5
leaq 0x550b(%rip), %rsi      # 0x808f
leaq -0x280(%rbp), %rbx
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq -0x280(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
leaq -0x280(%rbp), %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq -0x280(%rbp), %rdi
callq 0x21d0
jmp 0x2efb
xorl %r12d, %r12d
testb $0x1, %r12b
jne 0x2c1b
leaq -0x70(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
leaq -0x80(%rbp), %rdi
callq 0x30c0
leaq -0x80(%rbp), %rdi
callq 0x4466
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x2c1b
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2160
leaq -0x488(%rbp), %rdi
callq 0x2050
testb $0x1, %r12b
je 0x300a
movq 0x8398(%rip), %rbx      # 0xafd0
leaq 0x5450(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x8366(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq 0x5430(%rip), %rsi      # 0x80ae
leaq -0x280(%rbp), %rdi
movl $0x10, %edx
callq 0x2180
leaq -0x210(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2f46
leaq 0x53e5(%rip), %rsi      # 0x808f
leaq -0x280(%rbp), %rbx
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq -0x280(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
leaq -0x280(%rbp), %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq -0x280(%rbp), %rdi
callq 0x21d0
jmp 0x2fd4
movq 0x82cb(%rip), %rbx      # 0xafd0
leaq 0x5383(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x8299(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movq 0x8285(%rip), %rbx      # 0xafd0
leaq 0x533d(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x8253(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
jmp 0x2fd4
xorl %r12d, %r12d
testb $0x1, %r12b
jne 0x2dd2
leaq -0x50(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
addq %rsi, %rdx
leaq -0x60(%rbp), %rdi
callq 0x30c0
leaq -0x60(%rbp), %rdi
callq 0x60d0
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0x2dd2
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x2160
leaq -0x488(%rbp), %rdi
callq 0x2050
testb $0x1, %r12b
je 0x300a
movq 0x81e1(%rip), %rbx      # 0xafd0
leaq 0x5299(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x81af(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq 0x5292(%rip), %rsi      # 0x80c7
leaq -0x280(%rbp), %rdi
movl $0x10, %edx
callq 0x2180
leaq -0x210(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2f8e
leaq 0x522e(%rip), %rsi      # 0x808f
leaq -0x280(%rbp), %rbx
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq -0x280(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
leaq -0x280(%rbp), %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
leaq -0x280(%rbp), %rdi
callq 0x21d0
jmp 0x2fd4
movq 0x8114(%rip), %rbx      # 0xafd0
leaq 0x51cc(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x80e2(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movq 0x80ce(%rip), %rbx      # 0xafd0
leaq 0x5186(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x809c(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
jmp 0x2fd4
movq 0x8083(%rip), %rbx      # 0xafd0
leaq 0x513b(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x8051(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
jmp 0x2fd4
movq 0x803b(%rip), %rbx      # 0xafd0
leaq 0x50f3(%rip), %rsi      # 0x808f
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq 0x8009(%rip), %rdi      # 0xafd0
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movq 0x7fed(%rip), %rax      # 0xafc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x278(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x280(%rbp,%rcx)
callq 0x2110
leaq -0x188(%rbp), %rdi
callq 0x20a0
leaq -0x488(%rbp), %rdi
callq 0x2070
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0x302b
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x2160
addq $0x470, %rsp            # imm = 0x470
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3093
movq %rax, %rbx
movq -0x60(%rbp), %rdi
cmpq %r14, %rdi
je 0x3096
movq -0x50(%rbp), %rsi
jmp 0x3061
jmp 0x3093
movq %rax, %rbx
movq -0x80(%rbp), %rdi
cmpq %r14, %rdi
je 0x3096
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x2160
jmp 0x3096
jmp 0x3093
jmp 0x3093
jmp 0x3073
jmp 0x3080
movq %rax, %rbx
jmp 0x30a2
jmp 0x3093
jmp 0x3080
jmp 0x3093
jmp 0x3080
movq %rax, %rbx
leaq -0x280(%rbp), %rdi
callq 0x21e0
jmp 0x3096
jmp 0x3093
movq %rax, %rbx
leaq -0x488(%rbp), %rdi
callq 0x2070
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0x30b7
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x2160
movq %rbx, %rdi
callq 0x2240
nop