MSB first as opposed to LSB

So I am using binary numbers to light leds:

enum combo{ 
A = 0b100010010000, 
B = 0b001000100100, 
C = 0b000010001001, 
D=  0b100001000100, 
E= 0b001000010001, 
F= 0b010010000100, 
G= 0b000100100001, 
};

if its a 1, then led on, if its a zero then led off…
Here is the function that decides this:

void play(unsigned int combo){
  int mask = 1;
  for(int i=0; i<12; i++){
    if((mask & chord) == 0) digitalWrite(pins[i], LOW); 
    else digitalWrite(pins[i], HIGH);
    mask = mask << 1;
delay(500);
  }
}

however it lights up from least significant bit first.
Is there a way I can get it to light up most significant bit first?
My bit manipulation isnt all that good. Can anyone point me the the right direction please

Set mask to equal the MSB value, then shift right not left?

void play(unsigned int combo){
  for(int i=11; i>=0; i--)
    digitalWrite(pins[i],bitRead(chord,i));
  delay(500);
}