I'm not at all sure what you expect that to do (or any idea what you actually get) but you have to realize that the number that you input is almost certainly stored in little endian format anyway: least significant byte of the data in the lowest memory address, and even within each byte, the least significant bit is stored in the lowest numbered bit.
And since none of your data appears to be "real binary" data but binary values expressed in decimal numbers (you have to prefix each with "0b" to get binary literal values:
[0b1100, 0b1011, ...
what is actually stored in your input array would be
[0b10001001100, 0b10011101111111, ...
I think you will need to be a lot more specific in exactly what you are inputting, and exactly what you expect to get as an output before you go any further, and then think about exactly how you would check if it is working before you start coding: it's very unlikely that there is any "standard function" which will do exactly what you are asking for!