typedef unsigned int uint32; static const uint32 table[1024]; #define table0(x) table[(x) * 4 + 0] #define table1(x) table[(x) * 4 + 2] #define table2(x) table[(x) * 4 + 1] #define table3(x) table[(x) * 4 + 3] #define table4(x) (table[(x) * 4 + 1] & 0xff) #define table5(x) (table[(x) * 4 + 3] & 0xff00) #define table6(x) (table[(x) * 4 + 0] & 0xff0000) #define table7(x) (table[(x) * 4 + 2] & 0xff000000) void aes(unsigned char *out,const unsigned char *k,const unsigned char *in) { register uint32 a; register uint32 b; register uint32 c; register uint32 d; register uint32 e; uint32 x[4]; uint32 y[4]; #define SCRAMBLE(constant,t0,t1,t2,t3) \ a = constant; \ a ^= table4((x[3] >> 8) & 0xff); \ a ^= table5((x[3] >> 16) & 0xff); \ a ^= table6(x[3] >> 24); \ a ^= table7(x[3] & 0xff); \ a ^= x[0]; \ b = x[1]; b ^= a; \ c = x[2]; c ^= b; \ d = x[3]; d ^= c; \ x[0] = a; \ x[1] = b; \ x[2] = c; \ x[3] = d; \ a ^= t0(y[0] & 0xff); \ a ^= t1((y[1] >> 8) & 0xff); \ a ^= t2((y[2] >> 16) & 0xff); \ a ^= t3(y[3] >> 24); \ b ^= t0(y[1] & 0xff); \ b ^= t1((y[2] >> 8) & 0xff); \ b ^= t2((y[3] >> 16) & 0xff); \ b ^= t3(y[0] >> 24); \ c ^= t0(y[2] & 0xff); \ c ^= t1((y[3] >> 8) & 0xff); \ c ^= t2((y[0] >> 16) & 0xff); \ c ^= t3(y[1] >> 24); \ d ^= t0(y[3] & 0xff); \ d ^= t1((y[0] >> 8) & 0xff); \ d ^= t2((y[1] >> 16) & 0xff); \ d ^= t3(y[2] >> 24); \ y[0] = a; \ y[1] = b; \ y[2] = c; \ y[3] = d; a = *(uint32 *) (k); x[0] = a; b = *(uint32 *) (k + 4); x[1] = b; c = *(uint32 *) (k + 8); x[2] = c; d = *(uint32 *) (k + 12); x[3] = d; a ^= *(uint32 *) (in + 0); y[0] = a; b ^= *(uint32 *) (in + 4); y[1] = b; c ^= *(uint32 *) (in + 8); y[2] = c; d ^= *(uint32 *) (in + 12); y[3] = d; SCRAMBLE(0x01,table0,table1,table2,table3) SCRAMBLE(0x02,table0,table1,table2,table3) SCRAMBLE(0x04,table0,table1,table2,table3) SCRAMBLE(0x08,table0,table1,table2,table3) SCRAMBLE(0x10,table0,table1,table2,table3) SCRAMBLE(0x20,table0,table1,table2,table3) SCRAMBLE(0x40,table0,table1,table2,table3) SCRAMBLE(0x80,table0,table1,table2,table3) SCRAMBLE(0x1b,table0,table1,table2,table3) SCRAMBLE(0x36,table4,table5,table6,table7) *(uint32 *) out = a; *(uint32 *) (out + 4) = b; *(uint32 *) (out + 8) = c; *(uint32 *) (out + 12) = d; } static const uint32 table[1024] = { 0xa56363c6,0x63c6a563,0x6363c6a5,0xc6a56363, 0x847c7cf8,0x7cf8847c,0x7c7cf884,0xf8847c7c, 0x997777ee,0x77ee9977,0x7777ee99,0xee997777, 0x8d7b7bf6,0x7bf68d7b,0x7b7bf68d,0xf68d7b7b, 0x0df2f2ff,0xf2ff0df2,0xf2f2ff0d,0xff0df2f2, 0xbd6b6bd6,0x6bd6bd6b,0x6b6bd6bd,0xd6bd6b6b, 0xb16f6fde,0x6fdeb16f,0x6f6fdeb1,0xdeb16f6f, 0x54c5c591,0xc59154c5,0xc5c59154,0x9154c5c5, 0x50303060,0x30605030,0x30306050,0x60503030, 0x03010102,0x01020301,0x01010203,0x02030101, 0xa96767ce,0x67cea967,0x6767cea9,0xcea96767, 0x7d2b2b56,0x2b567d2b,0x2b2b567d,0x567d2b2b, 0x19fefee7,0xfee719fe,0xfefee719,0xe719fefe, 0x62d7d7b5,0xd7b562d7,0xd7d7b562,0xb562d7d7, 0xe6abab4d,0xab4de6ab,0xabab4de6,0x4de6abab, 0x9a7676ec,0x76ec9a76,0x7676ec9a,0xec9a7676, 0x45caca8f,0xca8f45ca,0xcaca8f45,0x8f45caca, 0x9d82821f,0x821f9d82,0x82821f9d,0x1f9d8282, 0x40c9c989,0xc98940c9,0xc9c98940,0x8940c9c9, 0x877d7dfa,0x7dfa877d,0x7d7dfa87,0xfa877d7d, 0x15fafaef,0xfaef15fa,0xfafaef15,0xef15fafa, 0xeb5959b2,0x59b2eb59,0x5959b2eb,0xb2eb5959, 0xc947478e,0x478ec947,0x47478ec9,0x8ec94747, 0x0bf0f0fb,0xf0fb0bf0,0xf0f0fb0b,0xfb0bf0f0, 0xecadad41,0xad41ecad,0xadad41ec,0x41ecadad, 0x67d4d4b3,0xd4b367d4,0xd4d4b367,0xb367d4d4, 0xfda2a25f,0xa25ffda2,0xa2a25ffd,0x5ffda2a2, 0xeaafaf45,0xaf45eaaf,0xafaf45ea,0x45eaafaf, 0xbf9c9c23,0x9c23bf9c,0x9c9c23bf,0x23bf9c9c, 0xf7a4a453,0xa453f7a4,0xa4a453f7,0x53f7a4a4, 0x967272e4,0x72e49672,0x7272e496,0xe4967272, 0x5bc0c09b,0xc09b5bc0,0xc0c09b5b,0x9b5bc0c0, 0xc2b7b775,0xb775c2b7,0xb7b775c2,0x75c2b7b7, 0x1cfdfde1,0xfde11cfd,0xfdfde11c,0xe11cfdfd, 0xae93933d,0x933dae93,0x93933dae,0x3dae9393, 0x6a26264c,0x264c6a26,0x26264c6a,0x4c6a2626, 0x5a36366c,0x366c5a36,0x36366c5a,0x6c5a3636, 0x413f3f7e,0x3f7e413f,0x3f3f7e41,0x7e413f3f, 0x02f7f7f5,0xf7f502f7,0xf7f7f502,0xf502f7f7, 0x4fcccc83,0xcc834fcc,0xcccc834f,0x834fcccc, 0x5c343468,0x34685c34,0x3434685c,0x685c3434, 0xf4a5a551,0xa551f4a5,0xa5a551f4,0x51f4a5a5, 0x34e5e5d1,0xe5d134e5,0xe5e5d134,0xd134e5e5, 0x08f1f1f9,0xf1f908f1,0xf1f1f908,0xf908f1f1, 0x937171e2,0x71e29371,0x7171e293,0xe2937171, 0x73d8d8ab,0xd8ab73d8,0xd8d8ab73,0xab73d8d8, 0x53313162,0x31625331,0x31316253,0x62533131, 0x3f15152a,0x152a3f15,0x15152a3f,0x2a3f1515, 0x0c040408,0x04080c04,0x0404080c,0x080c0404, 0x52c7c795,0xc79552c7,0xc7c79552,0x9552c7c7, 0x65232346,0x23466523,0x23234665,0x46652323, 0x5ec3c39d,0xc39d5ec3,0xc3c39d5e,0x9d5ec3c3, 0x28181830,0x18302818,0x18183028,0x30281818, 0xa1969637,0x9637a196,0x969637a1,0x37a19696, 0x0f05050a,0x050a0f05,0x05050a0f,0x0a0f0505, 0xb59a9a2f,0x9a2fb59a,0x9a9a2fb5,0x2fb59a9a, 0x0907070e,0x070e0907,0x07070e09,0x0e090707, 0x36121224,0x12243612,0x12122436,0x24361212, 0x9b80801b,0x801b9b80,0x80801b9b,0x1b9b8080, 0x3de2e2df,0xe2df3de2,0xe2e2df3d,0xdf3de2e2, 0x26ebebcd,0xebcd26eb,0xebebcd26,0xcd26ebeb, 0x6927274e,0x274e6927,0x27274e69,0x4e692727, 0xcdb2b27f,0xb27fcdb2,0xb2b27fcd,0x7fcdb2b2, 0x9f7575ea,0x75ea9f75,0x7575ea9f,0xea9f7575, 0x1b090912,0x09121b09,0x0909121b,0x121b0909, 0x9e83831d,0x831d9e83,0x83831d9e,0x1d9e8383, 0x742c2c58,0x2c58742c,0x2c2c5874,0x58742c2c, 0x2e1a1a34,0x1a342e1a,0x1a1a342e,0x342e1a1a, 0x2d1b1b36,0x1b362d1b,0x1b1b362d,0x362d1b1b, 0xb26e6edc,0x6edcb26e,0x6e6edcb2,0xdcb26e6e, 0xee5a5ab4,0x5ab4ee5a,0x5a5ab4ee,0xb4ee5a5a, 0xfba0a05b,0xa05bfba0,0xa0a05bfb,0x5bfba0a0, 0xf65252a4,0x52a4f652,0x5252a4f6,0xa4f65252, 0x4d3b3b76,0x3b764d3b,0x3b3b764d,0x764d3b3b, 0x61d6d6b7,0xd6b761d6,0xd6d6b761,0xb761d6d6, 0xceb3b37d,0xb37dceb3,0xb3b37dce,0x7dceb3b3, 0x7b292952,0x29527b29,0x2929527b,0x527b2929, 0x3ee3e3dd,0xe3dd3ee3,0xe3e3dd3e,0xdd3ee3e3, 0x712f2f5e,0x2f5e712f,0x2f2f5e71,0x5e712f2f, 0x97848413,0x84139784,0x84841397,0x13978484, 0xf55353a6,0x53a6f553,0x5353a6f5,0xa6f55353, 0x68d1d1b9,0xd1b968d1,0xd1d1b968,0xb968d1d1, 0x00000000,0x00000000,0x00000000,0x00000000, 0x2cededc1,0xedc12ced,0xededc12c,0xc12ceded, 0x60202040,0x20406020,0x20204060,0x40602020, 0x1ffcfce3,0xfce31ffc,0xfcfce31f,0xe31ffcfc, 0xc8b1b179,0xb179c8b1,0xb1b179c8,0x79c8b1b1, 0xed5b5bb6,0x5bb6ed5b,0x5b5bb6ed,0xb6ed5b5b, 0xbe6a6ad4,0x6ad4be6a,0x6a6ad4be,0xd4be6a6a, 0x46cbcb8d,0xcb8d46cb,0xcbcb8d46,0x8d46cbcb, 0xd9bebe67,0xbe67d9be,0xbebe67d9,0x67d9bebe, 0x4b393972,0x39724b39,0x3939724b,0x724b3939, 0xde4a4a94,0x4a94de4a,0x4a4a94de,0x94de4a4a, 0xd44c4c98,0x4c98d44c,0x4c4c98d4,0x98d44c4c, 0xe85858b0,0x58b0e858,0x5858b0e8,0xb0e85858, 0x4acfcf85,0xcf854acf,0xcfcf854a,0x854acfcf, 0x6bd0d0bb,0xd0bb6bd0,0xd0d0bb6b,0xbb6bd0d0, 0x2aefefc5,0xefc52aef,0xefefc52a,0xc52aefef, 0xe5aaaa4f,0xaa4fe5aa,0xaaaa4fe5,0x4fe5aaaa, 0x16fbfbed,0xfbed16fb,0xfbfbed16,0xed16fbfb, 0xc5434386,0x4386c543,0x434386c5,0x86c54343, 0xd74d4d9a,0x4d9ad74d,0x4d4d9ad7,0x9ad74d4d, 0x55333366,0x33665533,0x33336655,0x66553333, 0x94858511,0x85119485,0x85851194,0x11948585, 0xcf45458a,0x458acf45,0x45458acf,0x8acf4545, 0x10f9f9e9,0xf9e910f9,0xf9f9e910,0xe910f9f9, 0x06020204,0x02040602,0x02020406,0x04060202, 0x817f7ffe,0x7ffe817f,0x7f7ffe81,0xfe817f7f, 0xf05050a0,0x50a0f050,0x5050a0f0,0xa0f05050, 0x443c3c78,0x3c78443c,0x3c3c7844,0x78443c3c, 0xba9f9f25,0x9f25ba9f,0x9f9f25ba,0x25ba9f9f, 0xe3a8a84b,0xa84be3a8,0xa8a84be3,0x4be3a8a8, 0xf35151a2,0x51a2f351,0x5151a2f3,0xa2f35151, 0xfea3a35d,0xa35dfea3,0xa3a35dfe,0x5dfea3a3, 0xc0404080,0x4080c040,0x404080c0,0x80c04040, 0x8a8f8f05,0x8f058a8f,0x8f8f058a,0x058a8f8f, 0xad92923f,0x923fad92,0x92923fad,0x3fad9292, 0xbc9d9d21,0x9d21bc9d,0x9d9d21bc,0x21bc9d9d, 0x48383870,0x38704838,0x38387048,0x70483838, 0x04f5f5f1,0xf5f104f5,0xf5f5f104,0xf104f5f5, 0xdfbcbc63,0xbc63dfbc,0xbcbc63df,0x63dfbcbc, 0xc1b6b677,0xb677c1b6,0xb6b677c1,0x77c1b6b6, 0x75dadaaf,0xdaaf75da,0xdadaaf75,0xaf75dada, 0x63212142,0x21426321,0x21214263,0x42632121, 0x30101020,0x10203010,0x10102030,0x20301010, 0x1affffe5,0xffe51aff,0xffffe51a,0xe51affff, 0x0ef3f3fd,0xf3fd0ef3,0xf3f3fd0e,0xfd0ef3f3, 0x6dd2d2bf,0xd2bf6dd2,0xd2d2bf6d,0xbf6dd2d2, 0x4ccdcd81,0xcd814ccd,0xcdcd814c,0x814ccdcd, 0x140c0c18,0x0c18140c,0x0c0c1814,0x18140c0c, 0x35131326,0x13263513,0x13132635,0x26351313, 0x2fececc3,0xecc32fec,0xececc32f,0xc32fecec, 0xe15f5fbe,0x5fbee15f,0x5f5fbee1,0xbee15f5f, 0xa2979735,0x9735a297,0x979735a2,0x35a29797, 0xcc444488,0x4488cc44,0x444488cc,0x88cc4444, 0x3917172e,0x172e3917,0x17172e39,0x2e391717, 0x57c4c493,0xc49357c4,0xc4c49357,0x9357c4c4, 0xf2a7a755,0xa755f2a7,0xa7a755f2,0x55f2a7a7, 0x827e7efc,0x7efc827e,0x7e7efc82,0xfc827e7e, 0x473d3d7a,0x3d7a473d,0x3d3d7a47,0x7a473d3d, 0xac6464c8,0x64c8ac64,0x6464c8ac,0xc8ac6464, 0xe75d5dba,0x5dbae75d,0x5d5dbae7,0xbae75d5d, 0x2b191932,0x19322b19,0x1919322b,0x322b1919, 0x957373e6,0x73e69573,0x7373e695,0xe6957373, 0xa06060c0,0x60c0a060,0x6060c0a0,0xc0a06060, 0x98818119,0x81199881,0x81811998,0x19988181, 0xd14f4f9e,0x4f9ed14f,0x4f4f9ed1,0x9ed14f4f, 0x7fdcdca3,0xdca37fdc,0xdcdca37f,0xa37fdcdc, 0x66222244,0x22446622,0x22224466,0x44662222, 0x7e2a2a54,0x2a547e2a,0x2a2a547e,0x547e2a2a, 0xab90903b,0x903bab90,0x90903bab,0x3bab9090, 0x8388880b,0x880b8388,0x88880b83,0x0b838888, 0xca46468c,0x468cca46,0x46468cca,0x8cca4646, 0x29eeeec7,0xeec729ee,0xeeeec729,0xc729eeee, 0xd3b8b86b,0xb86bd3b8,0xb8b86bd3,0x6bd3b8b8, 0x3c141428,0x14283c14,0x1414283c,0x283c1414, 0x79dedea7,0xdea779de,0xdedea779,0xa779dede, 0xe25e5ebc,0x5ebce25e,0x5e5ebce2,0xbce25e5e, 0x1d0b0b16,0x0b161d0b,0x0b0b161d,0x161d0b0b, 0x76dbdbad,0xdbad76db,0xdbdbad76,0xad76dbdb, 0x3be0e0db,0xe0db3be0,0xe0e0db3b,0xdb3be0e0, 0x56323264,0x32645632,0x32326456,0x64563232, 0x4e3a3a74,0x3a744e3a,0x3a3a744e,0x744e3a3a, 0x1e0a0a14,0x0a141e0a,0x0a0a141e,0x141e0a0a, 0xdb494992,0x4992db49,0x494992db,0x92db4949, 0x0a06060c,0x060c0a06,0x06060c0a,0x0c0a0606, 0x6c242448,0x24486c24,0x2424486c,0x486c2424, 0xe45c5cb8,0x5cb8e45c,0x5c5cb8e4,0xb8e45c5c, 0x5dc2c29f,0xc29f5dc2,0xc2c29f5d,0x9f5dc2c2, 0x6ed3d3bd,0xd3bd6ed3,0xd3d3bd6e,0xbd6ed3d3, 0xefacac43,0xac43efac,0xacac43ef,0x43efacac, 0xa66262c4,0x62c4a662,0x6262c4a6,0xc4a66262, 0xa8919139,0x9139a891,0x919139a8,0x39a89191, 0xa4959531,0x9531a495,0x959531a4,0x31a49595, 0x37e4e4d3,0xe4d337e4,0xe4e4d337,0xd337e4e4, 0x8b7979f2,0x79f28b79,0x7979f28b,0xf28b7979, 0x32e7e7d5,0xe7d532e7,0xe7e7d532,0xd532e7e7, 0x43c8c88b,0xc88b43c8,0xc8c88b43,0x8b43c8c8, 0x5937376e,0x376e5937,0x37376e59,0x6e593737, 0xb76d6dda,0x6ddab76d,0x6d6ddab7,0xdab76d6d, 0x8c8d8d01,0x8d018c8d,0x8d8d018c,0x018c8d8d, 0x64d5d5b1,0xd5b164d5,0xd5d5b164,0xb164d5d5, 0xd24e4e9c,0x4e9cd24e,0x4e4e9cd2,0x9cd24e4e, 0xe0a9a949,0xa949e0a9,0xa9a949e0,0x49e0a9a9, 0xb46c6cd8,0x6cd8b46c,0x6c6cd8b4,0xd8b46c6c, 0xfa5656ac,0x56acfa56,0x5656acfa,0xacfa5656, 0x07f4f4f3,0xf4f307f4,0xf4f4f307,0xf307f4f4, 0x25eaeacf,0xeacf25ea,0xeaeacf25,0xcf25eaea, 0xaf6565ca,0x65caaf65,0x6565caaf,0xcaaf6565, 0x8e7a7af4,0x7af48e7a,0x7a7af48e,0xf48e7a7a, 0xe9aeae47,0xae47e9ae,0xaeae47e9,0x47e9aeae, 0x18080810,0x08101808,0x08081018,0x10180808, 0xd5baba6f,0xba6fd5ba,0xbaba6fd5,0x6fd5baba, 0x887878f0,0x78f08878,0x7878f088,0xf0887878, 0x6f25254a,0x254a6f25,0x25254a6f,0x4a6f2525, 0x722e2e5c,0x2e5c722e,0x2e2e5c72,0x5c722e2e, 0x241c1c38,0x1c38241c,0x1c1c3824,0x38241c1c, 0xf1a6a657,0xa657f1a6,0xa6a657f1,0x57f1a6a6, 0xc7b4b473,0xb473c7b4,0xb4b473c7,0x73c7b4b4, 0x51c6c697,0xc69751c6,0xc6c69751,0x9751c6c6, 0x23e8e8cb,0xe8cb23e8,0xe8e8cb23,0xcb23e8e8, 0x7cdddda1,0xdda17cdd,0xdddda17c,0xa17cdddd, 0x9c7474e8,0x74e89c74,0x7474e89c,0xe89c7474, 0x211f1f3e,0x1f3e211f,0x1f1f3e21,0x3e211f1f, 0xdd4b4b96,0x4b96dd4b,0x4b4b96dd,0x96dd4b4b, 0xdcbdbd61,0xbd61dcbd,0xbdbd61dc,0x61dcbdbd, 0x868b8b0d,0x8b0d868b,0x8b8b0d86,0x0d868b8b, 0x858a8a0f,0x8a0f858a,0x8a8a0f85,0x0f858a8a, 0x907070e0,0x70e09070,0x7070e090,0xe0907070, 0x423e3e7c,0x3e7c423e,0x3e3e7c42,0x7c423e3e, 0xc4b5b571,0xb571c4b5,0xb5b571c4,0x71c4b5b5, 0xaa6666cc,0x66ccaa66,0x6666ccaa,0xccaa6666, 0xd8484890,0x4890d848,0x484890d8,0x90d84848, 0x05030306,0x03060503,0x03030605,0x06050303, 0x01f6f6f7,0xf6f701f6,0xf6f6f701,0xf701f6f6, 0x120e0e1c,0x0e1c120e,0x0e0e1c12,0x1c120e0e, 0xa36161c2,0x61c2a361,0x6161c2a3,0xc2a36161, 0x5f35356a,0x356a5f35,0x35356a5f,0x6a5f3535, 0xf95757ae,0x57aef957,0x5757aef9,0xaef95757, 0xd0b9b969,0xb969d0b9,0xb9b969d0,0x69d0b9b9, 0x91868617,0x86179186,0x86861791,0x17918686, 0x58c1c199,0xc19958c1,0xc1c19958,0x9958c1c1, 0x271d1d3a,0x1d3a271d,0x1d1d3a27,0x3a271d1d, 0xb99e9e27,0x9e27b99e,0x9e9e27b9,0x27b99e9e, 0x38e1e1d9,0xe1d938e1,0xe1e1d938,0xd938e1e1, 0x13f8f8eb,0xf8eb13f8,0xf8f8eb13,0xeb13f8f8, 0xb398982b,0x982bb398,0x98982bb3,0x2bb39898, 0x33111122,0x11223311,0x11112233,0x22331111, 0xbb6969d2,0x69d2bb69,0x6969d2bb,0xd2bb6969, 0x70d9d9a9,0xd9a970d9,0xd9d9a970,0xa970d9d9, 0x898e8e07,0x8e07898e,0x8e8e0789,0x07898e8e, 0xa7949433,0x9433a794,0x949433a7,0x33a79494, 0xb69b9b2d,0x9b2db69b,0x9b9b2db6,0x2db69b9b, 0x221e1e3c,0x1e3c221e,0x1e1e3c22,0x3c221e1e, 0x92878715,0x87159287,0x87871592,0x15928787, 0x20e9e9c9,0xe9c920e9,0xe9e9c920,0xc920e9e9, 0x49cece87,0xce8749ce,0xcece8749,0x8749cece, 0xff5555aa,0x55aaff55,0x5555aaff,0xaaff5555, 0x78282850,0x28507828,0x28285078,0x50782828, 0x7adfdfa5,0xdfa57adf,0xdfdfa57a,0xa57adfdf, 0x8f8c8c03,0x8c038f8c,0x8c8c038f,0x038f8c8c, 0xf8a1a159,0xa159f8a1,0xa1a159f8,0x59f8a1a1, 0x80898909,0x89098089,0x89890980,0x09808989, 0x170d0d1a,0x0d1a170d,0x0d0d1a17,0x1a170d0d, 0xdabfbf65,0xbf65dabf,0xbfbf65da,0x65dabfbf, 0x31e6e6d7,0xe6d731e6,0xe6e6d731,0xd731e6e6, 0xc6424284,0x4284c642,0x424284c6,0x84c64242, 0xb86868d0,0x68d0b868,0x6868d0b8,0xd0b86868, 0xc3414182,0x4182c341,0x414182c3,0x82c34141, 0xb0999929,0x9929b099,0x999929b0,0x29b09999, 0x772d2d5a,0x2d5a772d,0x2d2d5a77,0x5a772d2d, 0x110f0f1e,0x0f1e110f,0x0f0f1e11,0x1e110f0f, 0xcbb0b07b,0xb07bcbb0,0xb0b07bcb,0x7bcbb0b0, 0xfc5454a8,0x54a8fc54,0x5454a8fc,0xa8fc5454, 0xd6bbbb6d,0xbb6dd6bb,0xbbbb6dd6,0x6dd6bbbb, 0x3a16162c,0x162c3a16,0x16162c3a,0x2c3a1616, } ;