Arduino as Keeloq receiver decoder

Hello,
i make project of RF receiver decode keeloq with arduino on 433 or 434 Mhz. I have "REMOTE OPEN ELECTRIC GATE" and i would like to store SERIAL NUMBER OF TRANSMITER by time like access control module.

Receivers:
Firsth Electric Gate have small receiver based on some chip 10358 7E26
Second Electric Gate have bigger receiver based on chip TDA5200
All gates works wery well with my transmiters (transmiter from another keeloq product or brand do not work with gate).

Transmiters:
10 pieces of remote control knob (all have uniq serial code) (all is based on HCS200 chip) but !!! ALL is pre-programed and full functioned with another application (propably with own PRODUCT CODE and SERIAL CODE of remote knob)
Some have 4 button and another have 2 button

I have connected one of this receiver to arduino (arduino ethernet) and data is comming (configured at 2400):

0 -B5-AB -0 -2B-D2-2D-5B-D6-2D-52-2D-B-56-6D-D2-61-16-69-5B-1B-4B-0 -B5-AB -0 -2B-D2-.........
or
0 -B5-A9 -0 -69-19-1B-B-49-52-25-49-4B-49-49-4B-56-69-5B-5B-59-0 -B5-A9 -0 -69-19...........
or
0 -95-A8 -0 -2B-1B-D2-2D-D2-65-9-D6-25-16-69-92-61-16-69-5B-5B-59 -0 -95-A8 -0 -2B-1B........
or.......

I want to find some "key" to search and decode SERIAL NUMBER of the transmiter (RC knob) and pressed number of transmitter.

So, the idea is that the project is for "REMOTE GATE OPEN" and save time and serial number of access.

I spend two weeks of time but with no resolution. I read datasheet ok keeloq hoping code, TDA5200 but im not oriented.

It is possibly to get function of this ?

Thanks for reply
With regards Robert

Robert,
Could you send your source code?

#include <SoftwareSerial.h>

#define rxPin 2
#define txPin 3

byte incomingByte = 0;
byte val = 0;
SoftwareSerial rfSerial = SoftwareSerial(rxPin, txPin);

///RFID//////////////
//int  val = 0; 
char code[4];
int bytesread = 0;
int cislokodu = 0;
int received = 0;
///RFID END//////////

void setup() {
  
 pinMode(rxPin, INPUT);
 pinMode(txPin, OUTPUT);
 rfSerial.begin(2400);
 Serial.begin(9600);
 Serial.println("START");
}

void loop() {
   //rfid();
   incomingByte = rfSerial.read();
   if(incomingByte==255){
   }else{
       if(incomingByte==91){            //mame 5B
           incomingByte = rfSerial.read(); //mame prvni FF
           Serial.println(incomingByte,HEX);//mame prvni FF       
           if(incomingByte==255){
               incomingByte = rfSerial.read(); //mame druhe FF
               Serial.println(incomingByte,HEX); //mame druhe FF             
               if(incomingByte==255){
                   incomingByte = rfSerial.read(); //mame treti FF
                   Serial.println(incomingByte,HEX); //mame treti FF
                   if(incomingByte==255){
                       incomingByte = rfSerial.read();    //mame 4B nebo 59
                       Serial.println(incomingByte,HEX);  //mame 4B nebo 59
                       if(incomingByte==75){
                           incomingByte = rfSerial.read();  //mame prvni FF         
                           Serial.println(incomingByte,HEX);//mame prvni FF       
                           if(incomingByte==255){
                               incomingByte = rfSerial.read();   //mame prvni FF
                               Serial.println(incomingByte,HEX); //mame prvni FF              
                               if(incomingByte==255){
                                   incomingByte = rfSerial.read();   //mame B
                                   Serial.println(incomingByte,HEX); //mame B              
                                   if(incomingByte==11){
                                       Serial.println("BUTTON 1");
                                   }
                               }
                           }
                       }else if(incomingByte==89){
                           incomingByte = rfSerial.read();  //mame prvni FF         
                           Serial.println(incomingByte,HEX);//mame prvni FF       
                           if(incomingByte==22){
                               Serial.println(incomingByte,HEX);              
                               Serial.println("BUTTON 3");
                           }
                       }
                   }
               }
           }
       }
   }
   incomingByte = 0;
       
      
}

For others reading this later:

rfserial can't be used to read Keeloq's data from a receiver. It's capturing garbage.

rc-switch is closer to what you need, but it can only capture up to 32 bits, and Keeloq sends 66, so it can't work without modification.

The best code I've seen out there for capturing the code words is from a russian: Библиотека чтения ID брелков сигнализациий HCS301 KEELOQ | Аппаратная платформа Arduino

(I'm not using it, because I already wrote my own, and it's working well enough.)

Grabbing a code word out of the air is the easy part - the data in the clear is the serial number and what buttons are pressed. Now you need to figure out the 64-bit manufacturer's code that's used to encrypt the other 32 bits of the code word. That's... not so easy.

Did you guys figure it out?
I'm just trying to copy the code from a keeloq remote control to be able to send it by using a 433mhz transmitter.

Thank you

I'm just trying to copy the code from a keeloq remote control

The code is encrypted and rolling, so it can't simply be copied and reused.

I understand. Thank you for the prompt response.