I dont know about the data that will be stored in "keyInsert", so i assume its only 0 and 1, 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 byte variable, and its overkill. it will be much simpler if you declare it as
uint16_t keyInsert;
Which have 16 bit 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(......)......
......
}