+// read a 32-bit value that might only be 16-bit-aligned in memory
+static inline le_uint32 READ_LONG(le_uint32 code) {
+ le_uint16* first = ((le_uint16*)&code);
+ le_uint16* second = (((le_uint16*)&code) + 1);
+ return (le_uint32)((SWAPW(*first) << 16) + SWAPW(*second));
+}