LetsLet's assume value that will be stored into "keyInsert" is only 0 and 1are either "1" or "0". Therefore, its a waste to declare them as an array byte
byte keyInsert[15] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
It means that you will have 15 * 8 bytes variable, and its overkill. it will be much simpler if you declare it as
uint16_t keyInsert;
Which have 16 bits data (2 bytes).
in your code, you can implement it by doing
void LedIFs() {
if (keyInsert == 0x0001) registerWrite(0xFF,0); else
if (keyInsert == 0x0002) registerWrite(......)......
......
}