ccGladmanTables.h   [plain text]


/*
 * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved.
 * 
 * @APPLE_LICENSE_HEADER_START@
 * 
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apple Public Source License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. Please obtain a copy of the License at
 * http://www.opensource.apple.com/apsl/ and read it before using this
 * file.
 * 
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 * 
 * @APPLE_LICENSE_HEADER_END@
 */

/* 
 * gladmanTables.h - static declarations of lookup tables for Gladman AES
 *					 implementation (128-bit key and block ONLY).
 *
 * This is based on tables generated by the gladmanTables program. 
 * Tables declared here are static const; this is intended to be included
 * in the implementation file rijndaelGladman.c. This must be include
 * after the following symbols have been #defined:
 *
 *		AES_LARGE_TABLES
 *		AES_DYNAMIC_TABLES	(if nonzero, these tables are disabled)
 */
 
#ifndef	_GLADMAN_TABLES_H_
#define _GLADMAN_TABLES_H_

#ifndef	AES_LARGE_TABLES
#error Please define AES_LARGE_TABLES.
#endif
#ifndef	AES_DYNAMIC_TABLES
#error Please define AES_DYNAMIC_TABLES.
#endif

#if		!AES_DYNAMIC_TABLES

#if		!AES_LARGE_TABLES

static const u1byte _sbx_tab[256] = {
    0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, 
    0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, 
    0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, 
    0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, 
    0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, 
    0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, 
    0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, 
    0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, 
    0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, 
    0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, 
    0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, 
    0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, 
    0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, 
    0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 
    0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 
    0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16
};
/*
 * This level of indirection is necessary to avoid a ~4% performance hit 
 * caused the compiler. 
 */
static const u1byte *sbx_tab = _sbx_tab;

static const u1byte _isb_tab[256] = {
    0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 
    0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 
    0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 
    0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, 
    0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 
    0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, 
    0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, 
    0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 
    0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, 
    0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, 
    0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 
    0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 
    0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 
    0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, 
    0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 
    0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7d
};
static const u1byte *isb_tab = _isb_tab;

#endif	/* !AES_LARGE_TABLES */

static const u4byte _rco_tab[10] = {
    0x00000001UL, 0x00000002UL, 0x00000004UL, 0x00000008UL, 0x00000010UL, 0x00000020UL, 0x00000040UL, 0x00000080UL, 
    0x0000001BUL, 0x00000036UL
};
static const u4byte *rco_tab = _rco_tab;

static const u4byte _ft_tab[4][256] = {
    {
        0xA56363C6UL, 0x847C7CF8UL, 0x997777EEUL, 0x8D7B7BF6UL, 0x0DF2F2FFUL, 0xBD6B6BD6UL, 0xB16F6FDEUL, 0x54C5C591UL, 
        0x50303060UL, 0x03010102UL, 0xA96767CEUL, 0x7D2B2B56UL, 0x19FEFEE7UL, 0x62D7D7B5UL, 0xE6ABAB4DUL, 0x9A7676ECUL, 
        0x45CACA8FUL, 0x9D82821FUL, 0x40C9C989UL, 0x877D7DFAUL, 0x15FAFAEFUL, 0xEB5959B2UL, 0xC947478EUL, 0x0BF0F0FBUL, 
        0xECADAD41UL, 0x67D4D4B3UL, 0xFDA2A25FUL, 0xEAAFAF45UL, 0xBF9C9C23UL, 0xF7A4A453UL, 0x967272E4UL, 0x5BC0C09BUL, 
        0xC2B7B775UL, 0x1CFDFDE1UL, 0xAE93933DUL, 0x6A26264CUL, 0x5A36366CUL, 0x413F3F7EUL, 0x02F7F7F5UL, 0x4FCCCC83UL, 
        0x5C343468UL, 0xF4A5A551UL, 0x34E5E5D1UL, 0x08F1F1F9UL, 0x937171E2UL, 0x73D8D8ABUL, 0x53313162UL, 0x3F15152AUL, 
        0x0C040408UL, 0x52C7C795UL, 0x65232346UL, 0x5EC3C39DUL, 0x28181830UL, 0xA1969637UL, 0x0F05050AUL, 0xB59A9A2FUL, 
        0x0907070EUL, 0x36121224UL, 0x9B80801BUL, 0x3DE2E2DFUL, 0x26EBEBCDUL, 0x6927274EUL, 0xCDB2B27FUL, 0x9F7575EAUL, 
        0x1B090912UL, 0x9E83831DUL, 0x742C2C58UL, 0x2E1A1A34UL, 0x2D1B1B36UL, 0xB26E6EDCUL, 0xEE5A5AB4UL, 0xFBA0A05BUL, 
        0xF65252A4UL, 0x4D3B3B76UL, 0x61D6D6B7UL, 0xCEB3B37DUL, 0x7B292952UL, 0x3EE3E3DDUL, 0x712F2F5EUL, 0x97848413UL, 
        0xF55353A6UL, 0x68D1D1B9UL, 0x00000000UL, 0x2CEDEDC1UL, 0x60202040UL, 0x1FFCFCE3UL, 0xC8B1B179UL, 0xED5B5BB6UL, 
        0xBE6A6AD4UL, 0x46CBCB8DUL, 0xD9BEBE67UL, 0x4B393972UL, 0xDE4A4A94UL, 0xD44C4C98UL, 0xE85858B0UL, 0x4ACFCF85UL, 
        0x6BD0D0BBUL, 0x2AEFEFC5UL, 0xE5AAAA4FUL, 0x16FBFBEDUL, 0xC5434386UL, 0xD74D4D9AUL, 0x55333366UL, 0x94858511UL, 
        0xCF45458AUL, 0x10F9F9E9UL, 0x06020204UL, 0x817F7FFEUL, 0xF05050A0UL, 0x443C3C78UL, 0xBA9F9F25UL, 0xE3A8A84BUL, 
        0xF35151A2UL, 0xFEA3A35DUL, 0xC0404080UL, 0x8A8F8F05UL, 0xAD92923FUL, 0xBC9D9D21UL, 0x48383870UL, 0x04F5F5F1UL, 
        0xDFBCBC63UL, 0xC1B6B677UL, 0x75DADAAFUL, 0x63212142UL, 0x30101020UL, 0x1AFFFFE5UL, 0x0EF3F3FDUL, 0x6DD2D2BFUL, 
        0x4CCDCD81UL, 0x140C0C18UL, 0x35131326UL, 0x2FECECC3UL, 0xE15F5FBEUL, 0xA2979735UL, 0xCC444488UL, 0x3917172EUL, 
        0x57C4C493UL, 0xF2A7A755UL, 0x827E7EFCUL, 0x473D3D7AUL, 0xAC6464C8UL, 0xE75D5DBAUL, 0x2B191932UL, 0x957373E6UL, 
        0xA06060C0UL, 0x98818119UL, 0xD14F4F9EUL, 0x7FDCDCA3UL, 0x66222244UL, 0x7E2A2A54UL, 0xAB90903BUL, 0x8388880BUL, 
        0xCA46468CUL, 0x29EEEEC7UL, 0xD3B8B86BUL, 0x3C141428UL, 0x79DEDEA7UL, 0xE25E5EBCUL, 0x1D0B0B16UL, 0x76DBDBADUL, 
        0x3BE0E0DBUL, 0x56323264UL, 0x4E3A3A74UL, 0x1E0A0A14UL, 0xDB494992UL, 0x0A06060CUL, 0x6C242448UL, 0xE45C5CB8UL, 
        0x5DC2C29FUL, 0x6ED3D3BDUL, 0xEFACAC43UL, 0xA66262C4UL, 0xA8919139UL, 0xA4959531UL, 0x37E4E4D3UL, 0x8B7979F2UL, 
        0x32E7E7D5UL, 0x43C8C88BUL, 0x5937376EUL, 0xB76D6DDAUL, 0x8C8D8D01UL, 0x64D5D5B1UL, 0xD24E4E9CUL, 0xE0A9A949UL, 
        0xB46C6CD8UL, 0xFA5656ACUL, 0x07F4F4F3UL, 0x25EAEACFUL, 0xAF6565CAUL, 0x8E7A7AF4UL, 0xE9AEAE47UL, 0x18080810UL, 
        0xD5BABA6FUL, 0x887878F0UL, 0x6F25254AUL, 0x722E2E5CUL, 0x241C1C38UL, 0xF1A6A657UL, 0xC7B4B473UL, 0x51C6C697UL, 
        0x23E8E8CBUL, 0x7CDDDDA1UL, 0x9C7474E8UL, 0x211F1F3EUL, 0xDD4B4B96UL, 0xDCBDBD61UL, 0x868B8B0DUL, 0x858A8A0FUL, 
        0x907070E0UL, 0x423E3E7CUL, 0xC4B5B571UL, 0xAA6666CCUL, 0xD8484890UL, 0x05030306UL, 0x01F6F6F7UL, 0x120E0E1CUL, 
        0xA36161C2UL, 0x5F35356AUL, 0xF95757AEUL, 0xD0B9B969UL, 0x91868617UL, 0x58C1C199UL, 0x271D1D3AUL, 0xB99E9E27UL, 
        0x38E1E1D9UL, 0x13F8F8EBUL, 0xB398982BUL, 0x33111122UL, 0xBB6969D2UL, 0x70D9D9A9UL, 0x898E8E07UL, 0xA7949433UL, 
        0xB69B9B2DUL, 0x221E1E3CUL, 0x92878715UL, 0x20E9E9C9UL, 0x49CECE87UL, 0xFF5555AAUL, 0x78282850UL, 0x7ADFDFA5UL, 
        0x8F8C8C03UL, 0xF8A1A159UL, 0x80898909UL, 0x170D0D1AUL, 0xDABFBF65UL, 0x31E6E6D7UL, 0xC6424284UL, 0xB86868D0UL, 
        0xC3414182UL, 0xB0999929UL, 0x772D2D5AUL, 0x110F0F1EUL, 0xCBB0B07BUL, 0xFC5454A8UL, 0xD6BBBB6DUL, 0x3a16162cUL
    },
    {
        0x6363C6A5UL, 0x7C7CF884UL, 0x7777EE99UL, 0x7B7BF68DUL, 0xF2F2FF0DUL, 0x6B6BD6BDUL, 0x6F6FDEB1UL, 0xC5C59154UL, 
        0x30306050UL, 0x01010203UL, 0x6767CEA9UL, 0x2B2B567DUL, 0xFEFEE719UL, 0xD7D7B562UL, 0xABAB4DE6UL, 0x7676EC9AUL, 
        0xCACA8F45UL, 0x82821F9DUL, 0xC9C98940UL, 0x7D7DFA87UL, 0xFAFAEF15UL, 0x5959B2EBUL, 0x47478EC9UL, 0xF0F0FB0BUL, 
        0xADAD41ECUL, 0xD4D4B367UL, 0xA2A25FFDUL, 0xAFAF45EAUL, 0x9C9C23BFUL, 0xA4A453F7UL, 0x7272E496UL, 0xC0C09B5BUL, 
        0xB7B775C2UL, 0xFDFDE11CUL, 0x93933DAEUL, 0x26264C6AUL, 0x36366C5AUL, 0x3F3F7E41UL, 0xF7F7F502UL, 0xCCCC834FUL, 
        0x3434685CUL, 0xA5A551F4UL, 0xE5E5D134UL, 0xF1F1F908UL, 0x7171E293UL, 0xD8D8AB73UL, 0x31316253UL, 0x15152A3FUL, 
        0x0404080CUL, 0xC7C79552UL, 0x23234665UL, 0xC3C39D5EUL, 0x18183028UL, 0x969637A1UL, 0x05050A0FUL, 0x9A9A2FB5UL, 
        0x07070E09UL, 0x12122436UL, 0x80801B9BUL, 0xE2E2DF3DUL, 0xEBEBCD26UL, 0x27274E69UL, 0xB2B27FCDUL, 0x7575EA9FUL, 
        0x0909121BUL, 0x83831D9EUL, 0x2C2C5874UL, 0x1A1A342EUL, 0x1B1B362DUL, 0x6E6EDCB2UL, 0x5A5AB4EEUL, 0xA0A05BFBUL, 
        0x5252A4F6UL, 0x3B3B764DUL, 0xD6D6B761UL, 0xB3B37DCEUL, 0x2929527BUL, 0xE3E3DD3EUL, 0x2F2F5E71UL, 0x84841397UL, 
        0x5353A6F5UL, 0xD1D1B968UL, 0x00000000UL, 0xEDEDC12CUL, 0x20204060UL, 0xFCFCE31FUL, 0xB1B179C8UL, 0x5B5BB6EDUL, 
        0x6A6AD4BEUL, 0xCBCB8D46UL, 0xBEBE67D9UL, 0x3939724BUL, 0x4A4A94DEUL, 0x4C4C98D4UL, 0x5858B0E8UL, 0xCFCF854AUL, 
        0xD0D0BB6BUL, 0xEFEFC52AUL, 0xAAAA4FE5UL, 0xFBFBED16UL, 0x434386C5UL, 0x4D4D9AD7UL, 0x33336655UL, 0x85851194UL, 
        0x45458ACFUL, 0xF9F9E910UL, 0x02020406UL, 0x7F7FFE81UL, 0x5050A0F0UL, 0x3C3C7844UL, 0x9F9F25BAUL, 0xA8A84BE3UL, 
        0x5151A2F3UL, 0xA3A35DFEUL, 0x404080C0UL, 0x8F8F058AUL, 0x92923FADUL, 0x9D9D21BCUL, 0x38387048UL, 0xF5F5F104UL, 
        0xBCBC63DFUL, 0xB6B677C1UL, 0xDADAAF75UL, 0x21214263UL, 0x10102030UL, 0xFFFFE51AUL, 0xF3F3FD0EUL, 0xD2D2BF6DUL, 
        0xCDCD814CUL, 0x0C0C1814UL, 0x13132635UL, 0xECECC32FUL, 0x5F5FBEE1UL, 0x979735A2UL, 0x444488CCUL, 0x17172E39UL, 
        0xC4C49357UL, 0xA7A755F2UL, 0x7E7EFC82UL, 0x3D3D7A47UL, 0x6464C8ACUL, 0x5D5DBAE7UL, 0x1919322BUL, 0x7373E695UL, 
        0x6060C0A0UL, 0x81811998UL, 0x4F4F9ED1UL, 0xDCDCA37FUL, 0x22224466UL, 0x2A2A547EUL, 0x90903BABUL, 0x88880B83UL, 
        0x46468CCAUL, 0xEEEEC729UL, 0xB8B86BD3UL, 0x1414283CUL, 0xDEDEA779UL, 0x5E5EBCE2UL, 0x0B0B161DUL, 0xDBDBAD76UL, 
        0xE0E0DB3BUL, 0x32326456UL, 0x3A3A744EUL, 0x0A0A141EUL, 0x494992DBUL, 0x06060C0AUL, 0x2424486CUL, 0x5C5CB8E4UL, 
        0xC2C29F5DUL, 0xD3D3BD6EUL, 0xACAC43EFUL, 0x6262C4A6UL, 0x919139A8UL, 0x959531A4UL, 0xE4E4D337UL, 0x7979F28BUL, 
        0xE7E7D532UL, 0xC8C88B43UL, 0x37376E59UL, 0x6D6DDAB7UL, 0x8D8D018CUL, 0xD5D5B164UL, 0x4E4E9CD2UL, 0xA9A949E0UL, 
        0x6C6CD8B4UL, 0x5656ACFAUL, 0xF4F4F307UL, 0xEAEACF25UL, 0x6565CAAFUL, 0x7A7AF48EUL, 0xAEAE47E9UL, 0x08081018UL, 
        0xBABA6FD5UL, 0x7878F088UL, 0x25254A6FUL, 0x2E2E5C72UL, 0x1C1C3824UL, 0xA6A657F1UL, 0xB4B473C7UL, 0xC6C69751UL, 
        0xE8E8CB23UL, 0xDDDDA17CUL, 0x7474E89CUL, 0x1F1F3E21UL, 0x4B4B96DDUL, 0xBDBD61DCUL, 0x8B8B0D86UL, 0x8A8A0F85UL, 
        0x7070E090UL, 0x3E3E7C42UL, 0xB5B571C4UL, 0x6666CCAAUL, 0x484890D8UL, 0x03030605UL, 0xF6F6F701UL, 0x0E0E1C12UL, 
        0x6161C2A3UL, 0x35356A5FUL, 0x5757AEF9UL, 0xB9B969D0UL, 0x86861791UL, 0xC1C19958UL, 0x1D1D3A27UL, 0x9E9E27B9UL, 
        0xE1E1D938UL, 0xF8F8EB13UL, 0x98982BB3UL, 0x11112233UL, 0x6969D2BBUL, 0xD9D9A970UL, 0x8E8E0789UL, 0x949433A7UL, 
        0x9B9B2DB6UL, 0x1E1E3C22UL, 0x87871592UL, 0xE9E9C920UL, 0xCECE8749UL, 0x5555AAFFUL, 0x28285078UL, 0xDFDFA57AUL, 
        0x8C8C038FUL, 0xA1A159F8UL, 0x89890980UL, 0x0D0D1A17UL, 0xBFBF65DAUL, 0xE6E6D731UL, 0x424284C6UL, 0x6868D0B8UL, 
        0x414182C3UL, 0x999929B0UL, 0x2D2D5A77UL, 0x0F0F1E11UL, 0xB0B07BCBUL, 0x5454A8FCUL, 0xBBBB6DD6UL, 0x16162c3aUL
    },
    {
        0x63C6A563UL, 0x7CF8847CUL, 0x77EE9977UL, 0x7BF68D7BUL, 0xF2FF0DF2UL, 0x6BD6BD6BUL, 0x6FDEB16FUL, 0xC59154C5UL, 
        0x30605030UL, 0x01020301UL, 0x67CEA967UL, 0x2B567D2BUL, 0xFEE719FEUL, 0xD7B562D7UL, 0xAB4DE6ABUL, 0x76EC9A76UL, 
        0xCA8F45CAUL, 0x821F9D82UL, 0xC98940C9UL, 0x7DFA877DUL, 0xFAEF15FAUL, 0x59B2EB59UL, 0x478EC947UL, 0xF0FB0BF0UL, 
        0xAD41ECADUL, 0xD4B367D4UL, 0xA25FFDA2UL, 0xAF45EAAFUL, 0x9C23BF9CUL, 0xA453F7A4UL, 0x72E49672UL, 0xC09B5BC0UL, 
        0xB775C2B7UL, 0xFDE11CFDUL, 0x933DAE93UL, 0x264C6A26UL, 0x366C5A36UL, 0x3F7E413FUL, 0xF7F502F7UL, 0xCC834FCCUL, 
        0x34685C34UL, 0xA551F4A5UL, 0xE5D134E5UL, 0xF1F908F1UL, 0x71E29371UL, 0xD8AB73D8UL, 0x31625331UL, 0x152A3F15UL, 
        0x04080C04UL, 0xC79552C7UL, 0x23466523UL, 0xC39D5EC3UL, 0x18302818UL, 0x9637A196UL, 0x050A0F05UL, 0x9A2FB59AUL, 
        0x070E0907UL, 0x12243612UL, 0x801B9B80UL, 0xE2DF3DE2UL, 0xEBCD26EBUL, 0x274E6927UL, 0xB27FCDB2UL, 0x75EA9F75UL, 
        0x09121B09UL, 0x831D9E83UL, 0x2C58742CUL, 0x1A342E1AUL, 0x1B362D1BUL, 0x6EDCB26EUL, 0x5AB4EE5AUL, 0xA05BFBA0UL, 
        0x52A4F652UL, 0x3B764D3BUL, 0xD6B761D6UL, 0xB37DCEB3UL, 0x29527B29UL, 0xE3DD3EE3UL, 0x2F5E712FUL, 0x84139784UL, 
        0x53A6F553UL, 0xD1B968D1UL, 0x00000000UL, 0xEDC12CEDUL, 0x20406020UL, 0xFCE31FFCUL, 0xB179C8B1UL, 0x5BB6ED5BUL, 
        0x6AD4BE6AUL, 0xCB8D46CBUL, 0xBE67D9BEUL, 0x39724B39UL, 0x4A94DE4AUL, 0x4C98D44CUL, 0x58B0E858UL, 0xCF854ACFUL, 
        0xD0BB6BD0UL, 0xEFC52AEFUL, 0xAA4FE5AAUL, 0xFBED16FBUL, 0x4386C543UL, 0x4D9AD74DUL, 0x33665533UL, 0x85119485UL, 
        0x458ACF45UL, 0xF9E910F9UL, 0x02040602UL, 0x7FFE817FUL, 0x50A0F050UL, 0x3C78443CUL, 0x9F25BA9FUL, 0xA84BE3A8UL, 
        0x51A2F351UL, 0xA35DFEA3UL, 0x4080C040UL, 0x8F058A8FUL, 0x923FAD92UL, 0x9D21BC9DUL, 0x38704838UL, 0xF5F104F5UL, 
        0xBC63DFBCUL, 0xB677C1B6UL, 0xDAAF75DAUL, 0x21426321UL, 0x10203010UL, 0xFFE51AFFUL, 0xF3FD0EF3UL, 0xD2BF6DD2UL, 
        0xCD814CCDUL, 0x0C18140CUL, 0x13263513UL, 0xECC32FECUL, 0x5FBEE15FUL, 0x9735A297UL, 0x4488CC44UL, 0x172E3917UL, 
        0xC49357C4UL, 0xA755F2A7UL, 0x7EFC827EUL, 0x3D7A473DUL, 0x64C8AC64UL, 0x5DBAE75DUL, 0x19322B19UL, 0x73E69573UL, 
        0x60C0A060UL, 0x81199881UL, 0x4F9ED14FUL, 0xDCA37FDCUL, 0x22446622UL, 0x2A547E2AUL, 0x903BAB90UL, 0x880B8388UL, 
        0x468CCA46UL, 0xEEC729EEUL, 0xB86BD3B8UL, 0x14283C14UL, 0xDEA779DEUL, 0x5EBCE25EUL, 0x0B161D0BUL, 0xDBAD76DBUL, 
        0xE0DB3BE0UL, 0x32645632UL, 0x3A744E3AUL, 0x0A141E0AUL, 0x4992DB49UL, 0x060C0A06UL, 0x24486C24UL, 0x5CB8E45CUL, 
        0xC29F5DC2UL, 0xD3BD6ED3UL, 0xAC43EFACUL, 0x62C4A662UL, 0x9139A891UL, 0x9531A495UL, 0xE4D337E4UL, 0x79F28B79UL, 
        0xE7D532E7UL, 0xC88B43C8UL, 0x376E5937UL, 0x6DDAB76DUL, 0x8D018C8DUL, 0xD5B164D5UL, 0x4E9CD24EUL, 0xA949E0A9UL, 
        0x6CD8B46CUL, 0x56ACFA56UL, 0xF4F307F4UL, 0xEACF25EAUL, 0x65CAAF65UL, 0x7AF48E7AUL, 0xAE47E9AEUL, 0x08101808UL, 
        0xBA6FD5BAUL, 0x78F08878UL, 0x254A6F25UL, 0x2E5C722EUL, 0x1C38241CUL, 0xA657F1A6UL, 0xB473C7B4UL, 0xC69751C6UL, 
        0xE8CB23E8UL, 0xDDA17CDDUL, 0x74E89C74UL, 0x1F3E211FUL, 0x4B96DD4BUL, 0xBD61DCBDUL, 0x8B0D868BUL, 0x8A0F858AUL, 
        0x70E09070UL, 0x3E7C423EUL, 0xB571C4B5UL, 0x66CCAA66UL, 0x4890D848UL, 0x03060503UL, 0xF6F701F6UL, 0x0E1C120EUL, 
        0x61C2A361UL, 0x356A5F35UL, 0x57AEF957UL, 0xB969D0B9UL, 0x86179186UL, 0xC19958C1UL, 0x1D3A271DUL, 0x9E27B99EUL, 
        0xE1D938E1UL, 0xF8EB13F8UL, 0x982BB398UL, 0x11223311UL, 0x69D2BB69UL, 0xD9A970D9UL, 0x8E07898EUL, 0x9433A794UL, 
        0x9B2DB69BUL, 0x1E3C221EUL, 0x87159287UL, 0xE9C920E9UL, 0xCE8749CEUL, 0x55AAFF55UL, 0x28507828UL, 0xDFA57ADFUL, 
        0x8C038F8CUL, 0xA159F8A1UL, 0x89098089UL, 0x0D1A170DUL, 0xBF65DABFUL, 0xE6D731E6UL, 0x4284C642UL, 0x68D0B868UL, 
        0x4182C341UL, 0x9929B099UL, 0x2D5A772DUL, 0x0F1E110FUL, 0xB07BCBB0UL, 0x54A8FC54UL, 0xBB6DD6BBUL, 0x162c3a16UL
    },
    {
        0xC6A56363UL, 0xF8847C7CUL, 0xEE997777UL, 0xF68D7B7BUL, 0xFF0DF2F2UL, 0xD6BD6B6BUL, 0xDEB16F6FUL, 0x9154C5C5UL, 
        0x60503030UL, 0x02030101UL, 0xCEA96767UL, 0x567D2B2BUL, 0xE719FEFEUL, 0xB562D7D7UL, 0x4DE6ABABUL, 0xEC9A7676UL, 
        0x8F45CACAUL, 0x1F9D8282UL, 0x8940C9C9UL, 0xFA877D7DUL, 0xEF15FAFAUL, 0xB2EB5959UL, 0x8EC94747UL, 0xFB0BF0F0UL, 
        0x41ECADADUL, 0xB367D4D4UL, 0x5FFDA2A2UL, 0x45EAAFAFUL, 0x23BF9C9CUL, 0x53F7A4A4UL, 0xE4967272UL, 0x9B5BC0C0UL, 
        0x75C2B7B7UL, 0xE11CFDFDUL, 0x3DAE9393UL, 0x4C6A2626UL, 0x6C5A3636UL, 0x7E413F3FUL, 0xF502F7F7UL, 0x834FCCCCUL, 
        0x685C3434UL, 0x51F4A5A5UL, 0xD134E5E5UL, 0xF908F1F1UL, 0xE2937171UL, 0xAB73D8D8UL, 0x62533131UL, 0x2A3F1515UL, 
        0x080C0404UL, 0x9552C7C7UL, 0x46652323UL, 0x9D5EC3C3UL, 0x30281818UL, 0x37A19696UL, 0x0A0F0505UL, 0x2FB59A9AUL, 
        0x0E090707UL, 0x24361212UL, 0x1B9B8080UL, 0xDF3DE2E2UL, 0xCD26EBEBUL, 0x4E692727UL, 0x7FCDB2B2UL, 0xEA9F7575UL, 
        0x121B0909UL, 0x1D9E8383UL, 0x58742C2CUL, 0x342E1A1AUL, 0x362D1B1BUL, 0xDCB26E6EUL, 0xB4EE5A5AUL, 0x5BFBA0A0UL, 
        0xA4F65252UL, 0x764D3B3BUL, 0xB761D6D6UL, 0x7DCEB3B3UL, 0x527B2929UL, 0xDD3EE3E3UL, 0x5E712F2FUL, 0x13978484UL, 
        0xA6F55353UL, 0xB968D1D1UL, 0x00000000UL, 0xC12CEDEDUL, 0x40602020UL, 0xE31FFCFCUL, 0x79C8B1B1UL, 0xB6ED5B5BUL, 
        0xD4BE6A6AUL, 0x8D46CBCBUL, 0x67D9BEBEUL, 0x724B3939UL, 0x94DE4A4AUL, 0x98D44C4CUL, 0xB0E85858UL, 0x854ACFCFUL, 
        0xBB6BD0D0UL, 0xC52AEFEFUL, 0x4FE5AAAAUL, 0xED16FBFBUL, 0x86C54343UL, 0x9AD74D4DUL, 0x66553333UL, 0x11948585UL, 
        0x8ACF4545UL, 0xE910F9F9UL, 0x04060202UL, 0xFE817F7FUL, 0xA0F05050UL, 0x78443C3CUL, 0x25BA9F9FUL, 0x4BE3A8A8UL, 
        0xA2F35151UL, 0x5DFEA3A3UL, 0x80C04040UL, 0x058A8F8FUL, 0x3FAD9292UL, 0x21BC9D9DUL, 0x70483838UL, 0xF104F5F5UL, 
        0x63DFBCBCUL, 0x77C1B6B6UL, 0xAF75DADAUL, 0x42632121UL, 0x20301010UL, 0xE51AFFFFUL, 0xFD0EF3F3UL, 0xBF6DD2D2UL, 
        0x814CCDCDUL, 0x18140C0CUL, 0x26351313UL, 0xC32FECECUL, 0xBEE15F5FUL, 0x35A29797UL, 0x88CC4444UL, 0x2E391717UL, 
        0x9357C4C4UL, 0x55F2A7A7UL, 0xFC827E7EUL, 0x7A473D3DUL, 0xC8AC6464UL, 0xBAE75D5DUL, 0x322B1919UL, 0xE6957373UL, 
        0xC0A06060UL, 0x19988181UL, 0x9ED14F4FUL, 0xA37FDCDCUL, 0x44662222UL, 0x547E2A2AUL, 0x3BAB9090UL, 0x0B838888UL, 
        0x8CCA4646UL, 0xC729EEEEUL, 0x6BD3B8B8UL, 0x283C1414UL, 0xA779DEDEUL, 0xBCE25E5EUL, 0x161D0B0BUL, 0xAD76DBDBUL, 
        0xDB3BE0E0UL, 0x64563232UL, 0x744E3A3AUL, 0x141E0A0AUL, 0x92DB4949UL, 0x0C0A0606UL, 0x486C2424UL, 0xB8E45C5CUL, 
        0x9F5DC2C2UL, 0xBD6ED3D3UL, 0x43EFACACUL, 0xC4A66262UL, 0x39A89191UL, 0x31A49595UL, 0xD337E4E4UL, 0xF28B7979UL, 
        0xD532E7E7UL, 0x8B43C8C8UL, 0x6E593737UL, 0xDAB76D6DUL, 0x018C8D8DUL, 0xB164D5D5UL, 0x9CD24E4EUL, 0x49E0A9A9UL, 
        0xD8B46C6CUL, 0xACFA5656UL, 0xF307F4F4UL, 0xCF25EAEAUL, 0xCAAF6565UL, 0xF48E7A7AUL, 0x47E9AEAEUL, 0x10180808UL, 
        0x6FD5BABAUL, 0xF0887878UL, 0x4A6F2525UL, 0x5C722E2EUL, 0x38241C1CUL, 0x57F1A6A6UL, 0x73C7B4B4UL, 0x9751C6C6UL, 
        0xCB23E8E8UL, 0xA17CDDDDUL, 0xE89C7474UL, 0x3E211F1FUL, 0x96DD4B4BUL, 0x61DCBDBDUL, 0x0D868B8BUL, 0x0F858A8AUL, 
        0xE0907070UL, 0x7C423E3EUL, 0x71C4B5B5UL, 0xCCAA6666UL, 0x90D84848UL, 0x06050303UL, 0xF701F6F6UL, 0x1C120E0EUL, 
        0xC2A36161UL, 0x6A5F3535UL, 0xAEF95757UL, 0x69D0B9B9UL, 0x17918686UL, 0x9958C1C1UL, 0x3A271D1DUL, 0x27B99E9EUL, 
        0xD938E1E1UL, 0xEB13F8F8UL, 0x2BB39898UL, 0x22331111UL, 0xD2BB6969UL, 0xA970D9D9UL, 0x07898E8EUL, 0x33A79494UL, 
        0x2DB69B9BUL, 0x3C221E1EUL, 0x15928787UL, 0xC920E9E9UL, 0x8749CECEUL, 0xAAFF5555UL, 0x50782828UL, 0xA57ADFDFUL, 
        0x038F8C8CUL, 0x59F8A1A1UL, 0x09808989UL, 0x1A170D0DUL, 0x65DABFBFUL, 0xD731E6E6UL, 0x84C64242UL, 0xD0B86868UL, 
        0x82C34141UL, 0x29B09999UL, 0x5A772D2DUL, 0x1E110F0FUL, 0x7BCBB0B0UL, 0xA8FC5454UL, 0x6DD6BBBBUL, 0x2c3a1616UL
    }
};
static const u4byte (*ft_tab)[FT_TAB_SIZE_LS] = _ft_tab;

static const u4byte _it_tab[4][256] = {
    {
        0x50A7F451UL, 0x5365417EUL, 0xC3A4171AUL, 0x965E273AUL, 0xCB6BAB3BUL, 0xF1459D1FUL, 0xAB58FAACUL, 0x9303E34BUL, 
        0x55FA3020UL, 0xF66D76ADUL, 0x9176CC88UL, 0x254C02F5UL, 0xFCD7E54FUL, 0xD7CB2AC5UL, 0x80443526UL, 0x8FA362B5UL, 
        0x495AB1DEUL, 0x671BBA25UL, 0x980EEA45UL, 0xE1C0FE5DUL, 0x02752FC3UL, 0x12F04C81UL, 0xA397468DUL, 0xC6F9D36BUL, 
        0xE75F8F03UL, 0x959C9215UL, 0xEB7A6DBFUL, 0xDA595295UL, 0x2D83BED4UL, 0xD3217458UL, 0x2969E049UL, 0x44C8C98EUL, 
        0x6A89C275UL, 0x78798EF4UL, 0x6B3E5899UL, 0xDD71B927UL, 0xB64FE1BEUL, 0x17AD88F0UL, 0x66AC20C9UL, 0xB43ACE7DUL, 
        0x184ADF63UL, 0x82311AE5UL, 0x60335197UL, 0x457F5362UL, 0xE07764B1UL, 0x84AE6BBBUL, 0x1CA081FEUL, 0x942B08F9UL, 
        0x58684870UL, 0x19FD458FUL, 0x876CDE94UL, 0xB7F87B52UL, 0x23D373ABUL, 0xE2024B72UL, 0x578F1FE3UL, 0x2AAB5566UL, 
        0x0728EBB2UL, 0x03C2B52FUL, 0x9A7BC586UL, 0xA50837D3UL, 0xF2872830UL, 0xB2A5BF23UL, 0xBA6A0302UL, 0x5C8216EDUL, 
        0x2B1CCF8AUL, 0x92B479A7UL, 0xF0F207F3UL, 0xA1E2694EUL, 0xCDF4DA65UL, 0xD5BE0506UL, 0x1F6234D1UL, 0x8AFEA6C4UL, 
        0x9D532E34UL, 0xA055F3A2UL, 0x32E18A05UL, 0x75EBF6A4UL, 0x39EC830BUL, 0xAAEF6040UL, 0x069F715EUL, 0x51106EBDUL, 
        0xF98A213EUL, 0x3D06DD96UL, 0xAE053EDDUL, 0x46BDE64DUL, 0xB58D5491UL, 0x055DC471UL, 0x6FD40604UL, 0xFF155060UL, 
        0x24FB9819UL, 0x97E9BDD6UL, 0xCC434089UL, 0x779ED967UL, 0xBD42E8B0UL, 0x888B8907UL, 0x385B19E7UL, 0xDBEEC879UL, 
        0x470A7CA1UL, 0xE90F427CUL, 0xC91E84F8UL, 0x00000000UL, 0x83868009UL, 0x48ED2B32UL, 0xAC70111EUL, 0x4E725A6CUL, 
        0xFBFF0EFDUL, 0x5638850FUL, 0x1ED5AE3DUL, 0x27392D36UL, 0x64D90F0AUL, 0x21A65C68UL, 0xD1545B9BUL, 0x3A2E3624UL, 
        0xB1670A0CUL, 0x0FE75793UL, 0xD296EEB4UL, 0x9E919B1BUL, 0x4FC5C080UL, 0xA220DC61UL, 0x694B775AUL, 0x161A121CUL, 
        0x0ABA93E2UL, 0xE52AA0C0UL, 0x43E0223CUL, 0x1D171B12UL, 0x0B0D090EUL, 0xADC78BF2UL, 0xB9A8B62DUL, 0xC8A91E14UL, 
        0x8519F157UL, 0x4C0775AFUL, 0xBBDD99EEUL, 0xFD607FA3UL, 0x9F2601F7UL, 0xBCF5725CUL, 0xC53B6644UL, 0x347EFB5BUL, 
        0x7629438BUL, 0xDCC623CBUL, 0x68FCEDB6UL, 0x63F1E4B8UL, 0xCADC31D7UL, 0x10856342UL, 0x40229713UL, 0x2011C684UL, 
        0x7D244A85UL, 0xF83DBBD2UL, 0x1132F9AEUL, 0x6DA129C7UL, 0x4B2F9E1DUL, 0xF330B2DCUL, 0xEC52860DUL, 0xD0E3C177UL, 
        0x6C16B32BUL, 0x99B970A9UL, 0xFA489411UL, 0x2264E947UL, 0xC48CFCA8UL, 0x1A3FF0A0UL, 0xD82C7D56UL, 0xEF903322UL, 
        0xC74E4987UL, 0xC1D138D9UL, 0xFEA2CA8CUL, 0x360BD498UL, 0xCF81F5A6UL, 0x28DE7AA5UL, 0x268EB7DAUL, 0xA4BFAD3FUL, 
        0xE49D3A2CUL, 0x0D927850UL, 0x9BCC5F6AUL, 0x62467E54UL, 0xC2138DF6UL, 0xE8B8D890UL, 0x5EF7392EUL, 0xF5AFC382UL, 
        0xBE805D9FUL, 0x7C93D069UL, 0xA92DD56FUL, 0xB31225CFUL, 0x3B99ACC8UL, 0xA77D1810UL, 0x6E639CE8UL, 0x7BBB3BDBUL, 
        0x097826CDUL, 0xF418596EUL, 0x01B79AECUL, 0xA89A4F83UL, 0x656E95E6UL, 0x7EE6FFAAUL, 0x08CFBC21UL, 0xE6E815EFUL, 
        0xD99BE7BAUL, 0xCE366F4AUL, 0xD4099FEAUL, 0xD67CB029UL, 0xAFB2A431UL, 0x31233F2AUL, 0x3094A5C6UL, 0xC066A235UL, 
        0x37BC4E74UL, 0xA6CA82FCUL, 0xB0D090E0UL, 0x15D8A733UL, 0x4A9804F1UL, 0xF7DAEC41UL, 0x0E50CD7FUL, 0x2FF69117UL, 
        0x8DD64D76UL, 0x4DB0EF43UL, 0x544DAACCUL, 0xDF0496E4UL, 0xE3B5D19EUL, 0x1B886A4CUL, 0xB81F2CC1UL, 0x7F516546UL, 
        0x04EA5E9DUL, 0x5D358C01UL, 0x737487FAUL, 0x2E410BFBUL, 0x5A1D67B3UL, 0x52D2DB92UL, 0x335610E9UL, 0x1347D66DUL, 
        0x8C61D79AUL, 0x7A0CA137UL, 0x8E14F859UL, 0x893C13EBUL, 0xEE27A9CEUL, 0x35C961B7UL, 0xEDE51CE1UL, 0x3CB1477AUL, 
        0x59DFD29CUL, 0x3F73F255UL, 0x79CE1418UL, 0xBF37C773UL, 0xEACDF753UL, 0x5BAAFD5FUL, 0x146F3DDFUL, 0x86DB4478UL, 
        0x81F3AFCAUL, 0x3EC468B9UL, 0x2C342438UL, 0x5F40A3C2UL, 0x72C31D16UL, 0x0C25E2BCUL, 0x8B493C28UL, 0x41950DFFUL, 
        0x7101A839UL, 0xDEB30C08UL, 0x9CE4B4D8UL, 0x90C15664UL, 0x6184CB7BUL, 0x70B632D5UL, 0x745C6C48UL, 0x4257b8d0UL
    },
    {
        0xA7F45150UL, 0x65417E53UL, 0xA4171AC3UL, 0x5E273A96UL, 0x6BAB3BCBUL, 0x459D1FF1UL, 0x58FAACABUL, 0x03E34B93UL, 
        0xFA302055UL, 0x6D76ADF6UL, 0x76CC8891UL, 0x4C02F525UL, 0xD7E54FFCUL, 0xCB2AC5D7UL, 0x44352680UL, 0xA362B58FUL, 
        0x5AB1DE49UL, 0x1BBA2567UL, 0x0EEA4598UL, 0xC0FE5DE1UL, 0x752FC302UL, 0xF04C8112UL, 0x97468DA3UL, 0xF9D36BC6UL, 
        0x5F8F03E7UL, 0x9C921595UL, 0x7A6DBFEBUL, 0x595295DAUL, 0x83BED42DUL, 0x217458D3UL, 0x69E04929UL, 0xC8C98E44UL, 
        0x89C2756AUL, 0x798EF478UL, 0x3E58996BUL, 0x71B927DDUL, 0x4FE1BEB6UL, 0xAD88F017UL, 0xAC20C966UL, 0x3ACE7DB4UL, 
        0x4ADF6318UL, 0x311AE582UL, 0x33519760UL, 0x7F536245UL, 0x7764B1E0UL, 0xAE6BBB84UL, 0xA081FE1CUL, 0x2B08F994UL, 
        0x68487058UL, 0xFD458F19UL, 0x6CDE9487UL, 0xF87B52B7UL, 0xD373AB23UL, 0x024B72E2UL, 0x8F1FE357UL, 0xAB55662AUL, 
        0x28EBB207UL, 0xC2B52F03UL, 0x7BC5869AUL, 0x0837D3A5UL, 0x872830F2UL, 0xA5BF23B2UL, 0x6A0302BAUL, 0x8216ED5CUL, 
        0x1CCF8A2BUL, 0xB479A792UL, 0xF207F3F0UL, 0xE2694EA1UL, 0xF4DA65CDUL, 0xBE0506D5UL, 0x6234D11FUL, 0xFEA6C48AUL, 
        0x532E349DUL, 0x55F3A2A0UL, 0xE18A0532UL, 0xEBF6A475UL, 0xEC830B39UL, 0xEF6040AAUL, 0x9F715E06UL, 0x106EBD51UL, 
        0x8A213EF9UL, 0x06DD963DUL, 0x053EDDAEUL, 0xBDE64D46UL, 0x8D5491B5UL, 0x5DC47105UL, 0xD406046FUL, 0x155060FFUL, 
        0xFB981924UL, 0xE9BDD697UL, 0x434089CCUL, 0x9ED96777UL, 0x42E8B0BDUL, 0x8B890788UL, 0x5B19E738UL, 0xEEC879DBUL, 
        0x0A7CA147UL, 0x0F427CE9UL, 0x1E84F8C9UL, 0x00000000UL, 0x86800983UL, 0xED2B3248UL, 0x70111EACUL, 0x725A6C4EUL, 
        0xFF0EFDFBUL, 0x38850F56UL, 0xD5AE3D1EUL, 0x392D3627UL, 0xD90F0A64UL, 0xA65C6821UL, 0x545B9BD1UL, 0x2E36243AUL, 
        0x670A0CB1UL, 0xE757930FUL, 0x96EEB4D2UL, 0x919B1B9EUL, 0xC5C0804FUL, 0x20DC61A2UL, 0x4B775A69UL, 0x1A121C16UL, 
        0xBA93E20AUL, 0x2AA0C0E5UL, 0xE0223C43UL, 0x171B121DUL, 0x0D090E0BUL, 0xC78BF2ADUL, 0xA8B62DB9UL, 0xA91E14C8UL, 
        0x19F15785UL, 0x0775AF4CUL, 0xDD99EEBBUL, 0x607FA3FDUL, 0x2601F79FUL, 0xF5725CBCUL, 0x3B6644C5UL, 0x7EFB5B34UL, 
        0x29438B76UL, 0xC623CBDCUL, 0xFCEDB668UL, 0xF1E4B863UL, 0xDC31D7CAUL, 0x85634210UL, 0x22971340UL, 0x11C68420UL, 
        0x244A857DUL, 0x3DBBD2F8UL, 0x32F9AE11UL, 0xA129C76DUL, 0x2F9E1D4BUL, 0x30B2DCF3UL, 0x52860DECUL, 0xE3C177D0UL, 
        0x16B32B6CUL, 0xB970A999UL, 0x489411FAUL, 0x64E94722UL, 0x8CFCA8C4UL, 0x3FF0A01AUL, 0x2C7D56D8UL, 0x903322EFUL, 
        0x4E4987C7UL, 0xD138D9C1UL, 0xA2CA8CFEUL, 0x0BD49836UL, 0x81F5A6CFUL, 0xDE7AA528UL, 0x8EB7DA26UL, 0xBFAD3FA4UL, 
        0x9D3A2CE4UL, 0x9278500DUL, 0xCC5F6A9BUL, 0x467E5462UL, 0x138DF6C2UL, 0xB8D890E8UL, 0xF7392E5EUL, 0xAFC382F5UL, 
        0x805D9FBEUL, 0x93D0697CUL, 0x2DD56FA9UL, 0x1225CFB3UL, 0x99ACC83BUL, 0x7D1810A7UL, 0x639CE86EUL, 0xBB3BDB7BUL, 
        0x7826CD09UL, 0x18596EF4UL, 0xB79AEC01UL, 0x9A4F83A8UL, 0x6E95E665UL, 0xE6FFAA7EUL, 0xCFBC2108UL, 0xE815EFE6UL, 
        0x9BE7BAD9UL, 0x366F4ACEUL, 0x099FEAD4UL, 0x7CB029D6UL, 0xB2A431AFUL, 0x233F2A31UL, 0x94A5C630UL, 0x66A235C0UL, 
        0xBC4E7437UL, 0xCA82FCA6UL, 0xD090E0B0UL, 0xD8A73315UL, 0x9804F14AUL, 0xDAEC41F7UL, 0x50CD7F0EUL, 0xF691172FUL, 
        0xD64D768DUL, 0xB0EF434DUL, 0x4DAACC54UL, 0x0496E4DFUL, 0xB5D19EE3UL, 0x886A4C1BUL, 0x1F2CC1B8UL, 0x5165467FUL, 
        0xEA5E9D04UL, 0x358C015DUL, 0x7487FA73UL, 0x410BFB2EUL, 0x1D67B35AUL, 0xD2DB9252UL, 0x5610E933UL, 0x47D66D13UL, 
        0x61D79A8CUL, 0x0CA1377AUL, 0x14F8598EUL, 0x3C13EB89UL, 0x27A9CEEEUL, 0xC961B735UL, 0xE51CE1EDUL, 0xB1477A3CUL, 
        0xDFD29C59UL, 0x73F2553FUL, 0xCE141879UL, 0x37C773BFUL, 0xCDF753EAUL, 0xAAFD5F5BUL, 0x6F3DDF14UL, 0xDB447886UL, 
        0xF3AFCA81UL, 0xC468B93EUL, 0x3424382CUL, 0x40A3C25FUL, 0xC31D1672UL, 0x25E2BC0CUL, 0x493C288BUL, 0x950DFF41UL, 
        0x01A83971UL, 0xB30C08DEUL, 0xE4B4D89CUL, 0xC1566490UL, 0x84CB7B61UL, 0xB632D570UL, 0x5C6C4874UL, 0x57b8d042UL
    },
    {
        0xF45150A7UL, 0x417E5365UL, 0x171AC3A4UL, 0x273A965EUL, 0xAB3BCB6BUL, 0x9D1FF145UL, 0xFAACAB58UL, 0xE34B9303UL, 
        0x302055FAUL, 0x76ADF66DUL, 0xCC889176UL, 0x02F5254CUL, 0xE54FFCD7UL, 0x2AC5D7CBUL, 0x35268044UL, 0x62B58FA3UL, 
        0xB1DE495AUL, 0xBA25671BUL, 0xEA45980EUL, 0xFE5DE1C0UL, 0x2FC30275UL, 0x4C8112F0UL, 0x468DA397UL, 0xD36BC6F9UL, 
        0x8F03E75FUL, 0x9215959CUL, 0x6DBFEB7AUL, 0x5295DA59UL, 0xBED42D83UL, 0x7458D321UL, 0xE0492969UL, 0xC98E44C8UL, 
        0xC2756A89UL, 0x8EF47879UL, 0x58996B3EUL, 0xB927DD71UL, 0xE1BEB64FUL, 0x88F017ADUL, 0x20C966ACUL, 0xCE7DB43AUL, 
        0xDF63184AUL, 0x1AE58231UL, 0x51976033UL, 0x5362457FUL, 0x64B1E077UL, 0x6BBB84AEUL, 0x81FE1CA0UL, 0x08F9942BUL, 
        0x48705868UL, 0x458F19FDUL, 0xDE94876CUL, 0x7B52B7F8UL, 0x73AB23D3UL, 0x4B72E202UL, 0x1FE3578FUL, 0x55662AABUL, 
        0xEBB20728UL, 0xB52F03C2UL, 0xC5869A7BUL, 0x37D3A508UL, 0x2830F287UL, 0xBF23B2A5UL, 0x0302BA6AUL, 0x16ED5C82UL, 
        0xCF8A2B1CUL, 0x79A792B4UL, 0x07F3F0F2UL, 0x694EA1E2UL, 0xDA65CDF4UL, 0x0506D5BEUL, 0x34D11F62UL, 0xA6C48AFEUL, 
        0x2E349D53UL, 0xF3A2A055UL, 0x8A0532E1UL, 0xF6A475EBUL, 0x830B39ECUL, 0x6040AAEFUL, 0x715E069FUL, 0x6EBD5110UL, 
        0x213EF98AUL, 0xDD963D06UL, 0x3EDDAE05UL, 0xE64D46BDUL, 0x5491B58DUL, 0xC471055DUL, 0x06046FD4UL, 0x5060FF15UL, 
        0x981924FBUL, 0xBDD697E9UL, 0x4089CC43UL, 0xD967779EUL, 0xE8B0BD42UL, 0x8907888BUL, 0x19E7385BUL, 0xC879DBEEUL, 
        0x7CA1470AUL, 0x427CE90FUL, 0x84F8C91EUL, 0x00000000UL, 0x80098386UL, 0x2B3248EDUL, 0x111EAC70UL, 0x5A6C4E72UL, 
        0x0EFDFBFFUL, 0x850F5638UL, 0xAE3D1ED5UL, 0x2D362739UL, 0x0F0A64D9UL, 0x5C6821A6UL, 0x5B9BD154UL, 0x36243A2EUL, 
        0x0A0CB167UL, 0x57930FE7UL, 0xEEB4D296UL, 0x9B1B9E91UL, 0xC0804FC5UL, 0xDC61A220UL, 0x775A694BUL, 0x121C161AUL, 
        0x93E20ABAUL, 0xA0C0E52AUL, 0x223C43E0UL, 0x1B121D17UL, 0x090E0B0DUL, 0x8BF2ADC7UL, 0xB62DB9A8UL, 0x1E14C8A9UL, 
        0xF1578519UL, 0x75AF4C07UL, 0x99EEBBDDUL, 0x7FA3FD60UL, 0x01F79F26UL, 0x725CBCF5UL, 0x6644C53BUL, 0xFB5B347EUL, 
        0x438B7629UL, 0x23CBDCC6UL, 0xEDB668FCUL, 0xE4B863F1UL, 0x31D7CADCUL, 0x63421085UL, 0x97134022UL, 0xC6842011UL, 
        0x4A857D24UL, 0xBBD2F83DUL, 0xF9AE1132UL, 0x29C76DA1UL, 0x9E1D4B2FUL, 0xB2DCF330UL, 0x860DEC52UL, 0xC177D0E3UL, 
        0xB32B6C16UL, 0x70A999B9UL, 0x9411FA48UL, 0xE9472264UL, 0xFCA8C48CUL, 0xF0A01A3FUL, 0x7D56D82CUL, 0x3322EF90UL, 
        0x4987C74EUL, 0x38D9C1D1UL, 0xCA8CFEA2UL, 0xD498360BUL, 0xF5A6CF81UL, 0x7AA528DEUL, 0xB7DA268EUL, 0xAD3FA4BFUL, 
        0x3A2CE49DUL, 0x78500D92UL, 0x5F6A9BCCUL, 0x7E546246UL, 0x8DF6C213UL, 0xD890E8B8UL, 0x392E5EF7UL, 0xC382F5AFUL, 
        0x5D9FBE80UL, 0xD0697C93UL, 0xD56FA92DUL, 0x25CFB312UL, 0xACC83B99UL, 0x1810A77DUL, 0x9CE86E63UL, 0x3BDB7BBBUL, 
        0x26CD0978UL, 0x596EF418UL, 0x9AEC01B7UL, 0x4F83A89AUL, 0x95E6656EUL, 0xFFAA7EE6UL, 0xBC2108CFUL, 0x15EFE6E8UL, 
        0xE7BAD99BUL, 0x6F4ACE36UL, 0x9FEAD409UL, 0xB029D67CUL, 0xA431AFB2UL, 0x3F2A3123UL, 0xA5C63094UL, 0xA235C066UL, 
        0x4E7437BCUL, 0x82FCA6CAUL, 0x90E0B0D0UL, 0xA73315D8UL, 0x04F14A98UL, 0xEC41F7DAUL, 0xCD7F0E50UL, 0x91172FF6UL, 
        0x4D768DD6UL, 0xEF434DB0UL, 0xAACC544DUL, 0x96E4DF04UL, 0xD19EE3B5UL, 0x6A4C1B88UL, 0x2CC1B81FUL, 0x65467F51UL, 
        0x5E9D04EAUL, 0x8C015D35UL, 0x87FA7374UL, 0x0BFB2E41UL, 0x67B35A1DUL, 0xDB9252D2UL, 0x10E93356UL, 0xD66D1347UL, 
        0xD79A8C61UL, 0xA1377A0CUL, 0xF8598E14UL, 0x13EB893CUL, 0xA9CEEE27UL, 0x61B735C9UL, 0x1CE1EDE5UL, 0x477A3CB1UL, 
        0xD29C59DFUL, 0xF2553F73UL, 0x141879CEUL, 0xC773BF37UL, 0xF753EACDUL, 0xFD5F5BAAUL, 0x3DDF146FUL, 0x447886DBUL, 
        0xAFCA81F3UL, 0x68B93EC4UL, 0x24382C34UL, 0xA3C25F40UL, 0x1D1672C3UL, 0xE2BC0C25UL, 0x3C288B49UL, 0x0DFF4195UL, 
        0xA8397101UL, 0x0C08DEB3UL, 0xB4D89CE4UL, 0x566490C1UL, 0xCB7B6184UL, 0x32D570B6UL, 0x6C48745CUL, 0xb8d04257UL
    },
    {
        0x5150A7F4UL, 0x7E536541UL, 0x1AC3A417UL, 0x3A965E27UL, 0x3BCB6BABUL, 0x1FF1459DUL, 0xACAB58FAUL, 0x4B9303E3UL, 
        0x2055FA30UL, 0xADF66D76UL, 0x889176CCUL, 0xF5254C02UL, 0x4FFCD7E5UL, 0xC5D7CB2AUL, 0x26804435UL, 0xB58FA362UL, 
        0xDE495AB1UL, 0x25671BBAUL, 0x45980EEAUL, 0x5DE1C0FEUL, 0xC302752FUL, 0x8112F04CUL, 0x8DA39746UL, 0x6BC6F9D3UL, 
        0x03E75F8FUL, 0x15959C92UL, 0xBFEB7A6DUL, 0x95DA5952UL, 0xD42D83BEUL, 0x58D32174UL, 0x492969E0UL, 0x8E44C8C9UL, 
        0x756A89C2UL, 0xF478798EUL, 0x996B3E58UL, 0x27DD71B9UL, 0xBEB64FE1UL, 0xF017AD88UL, 0xC966AC20UL, 0x7DB43ACEUL, 
        0x63184ADFUL, 0xE582311AUL, 0x97603351UL, 0x62457F53UL, 0xB1E07764UL, 0xBB84AE6BUL, 0xFE1CA081UL, 0xF9942B08UL, 
        0x70586848UL, 0x8F19FD45UL, 0x94876CDEUL, 0x52B7F87BUL, 0xAB23D373UL, 0x72E2024BUL, 0xE3578F1FUL, 0x662AAB55UL, 
        0xB20728EBUL, 0x2F03C2B5UL, 0x869A7BC5UL, 0xD3A50837UL, 0x30F28728UL, 0x23B2A5BFUL, 0x02BA6A03UL, 0xED5C8216UL, 
        0x8A2B1CCFUL, 0xA792B479UL, 0xF3F0F207UL, 0x4EA1E269UL, 0x65CDF4DAUL, 0x06D5BE05UL, 0xD11F6234UL, 0xC48AFEA6UL, 
        0x349D532EUL, 0xA2A055F3UL, 0x0532E18AUL, 0xA475EBF6UL, 0x0B39EC83UL, 0x40AAEF60UL, 0x5E069F71UL, 0xBD51106EUL, 
        0x3EF98A21UL, 0x963D06DDUL, 0xDDAE053EUL, 0x4D46BDE6UL, 0x91B58D54UL, 0x71055DC4UL, 0x046FD406UL, 0x60FF1550UL, 
        0x1924FB98UL, 0xD697E9BDUL, 0x89CC4340UL, 0x67779ED9UL, 0xB0BD42E8UL, 0x07888B89UL, 0xE7385B19UL, 0x79DBEEC8UL, 
        0xA1470A7CUL, 0x7CE90F42UL, 0xF8C91E84UL, 0x00000000UL, 0x09838680UL, 0x3248ED2BUL, 0x1EAC7011UL, 0x6C4E725AUL, 
        0xFDFBFF0EUL, 0x0F563885UL, 0x3D1ED5AEUL, 0x3627392DUL, 0x0A64D90FUL, 0x6821A65CUL, 0x9BD1545BUL, 0x243A2E36UL, 
        0x0CB1670AUL, 0x930FE757UL, 0xB4D296EEUL, 0x1B9E919BUL, 0x804FC5C0UL, 0x61A220DCUL, 0x5A694B77UL, 0x1C161A12UL, 
        0xE20ABA93UL, 0xC0E52AA0UL, 0x3C43E022UL, 0x121D171BUL, 0x0E0B0D09UL, 0xF2ADC78BUL, 0x2DB9A8B6UL, 0x14C8A91EUL, 
        0x578519F1UL, 0xAF4C0775UL, 0xEEBBDD99UL, 0xA3FD607FUL, 0xF79F2601UL, 0x5CBCF572UL, 0x44C53B66UL, 0x5B347EFBUL, 
        0x8B762943UL, 0xCBDCC623UL, 0xB668FCEDUL, 0xB863F1E4UL, 0xD7CADC31UL, 0x42108563UL, 0x13402297UL, 0x842011C6UL, 
        0x857D244AUL, 0xD2F83DBBUL, 0xAE1132F9UL, 0xC76DA129UL, 0x1D4B2F9EUL, 0xDCF330B2UL, 0x0DEC5286UL, 0x77D0E3C1UL, 
        0x2B6C16B3UL, 0xA999B970UL, 0x11FA4894UL, 0x472264E9UL, 0xA8C48CFCUL, 0xA01A3FF0UL, 0x56D82C7DUL, 0x22EF9033UL, 
        0x87C74E49UL, 0xD9C1D138UL, 0x8CFEA2CAUL, 0x98360BD4UL, 0xA6CF81F5UL, 0xA528DE7AUL, 0xDA268EB7UL, 0x3FA4BFADUL, 
        0x2CE49D3AUL, 0x500D9278UL, 0x6A9BCC5FUL, 0x5462467EUL, 0xF6C2138DUL, 0x90E8B8D8UL, 0x2E5EF739UL, 0x82F5AFC3UL, 
        0x9FBE805DUL, 0x697C93D0UL, 0x6FA92DD5UL, 0xCFB31225UL, 0xC83B99ACUL, 0x10A77D18UL, 0xE86E639CUL, 0xDB7BBB3BUL, 
        0xCD097826UL, 0x6EF41859UL, 0xEC01B79AUL, 0x83A89A4FUL, 0xE6656E95UL, 0xAA7EE6FFUL, 0x2108CFBCUL, 0xEFE6E815UL, 
        0xBAD99BE7UL, 0x4ACE366FUL, 0xEAD4099FUL, 0x29D67CB0UL, 0x31AFB2A4UL, 0x2A31233FUL, 0xC63094A5UL, 0x35C066A2UL, 
        0x7437BC4EUL, 0xFCA6CA82UL, 0xE0B0D090UL, 0x3315D8A7UL, 0xF14A9804UL, 0x41F7DAECUL, 0x7F0E50CDUL, 0x172FF691UL, 
        0x768DD64DUL, 0x434DB0EFUL, 0xCC544DAAUL, 0xE4DF0496UL, 0x9EE3B5D1UL, 0x4C1B886AUL, 0xC1B81F2CUL, 0x467F5165UL, 
        0x9D04EA5EUL, 0x015D358CUL, 0xFA737487UL, 0xFB2E410BUL, 0xB35A1D67UL, 0x9252D2DBUL, 0xE9335610UL, 0x6D1347D6UL, 
        0x9A8C61D7UL, 0x377A0CA1UL, 0x598E14F8UL, 0xEB893C13UL, 0xCEEE27A9UL, 0xB735C961UL, 0xE1EDE51CUL, 0x7A3CB147UL, 
        0x9C59DFD2UL, 0x553F73F2UL, 0x1879CE14UL, 0x73BF37C7UL, 0x53EACDF7UL, 0x5F5BAAFDUL, 0xDF146F3DUL, 0x7886DB44UL, 
        0xCA81F3AFUL, 0xB93EC468UL, 0x382C3424UL, 0xC25F40A3UL, 0x1672C31DUL, 0xBC0C25E2UL, 0x288B493CUL, 0xFF41950DUL, 
        0x397101A8UL, 0x08DEB30CUL, 0xD89CE4B4UL, 0x6490C156UL, 0x7B6184CBUL, 0xD570B632UL, 0x48745C6CUL, 0xd04257b8UL
    }
};
static const u4byte (*it_tab)[IT_TAB_SIZE_LS] = _it_tab;

#if AES_LARGE_TABLES

static const u4byte _fl_tab[4][256] = {
    {
        0x00000063UL, 0x0000007CUL, 0x00000077UL, 0x0000007BUL, 0x000000F2UL, 0x0000006BUL, 0x0000006FUL, 0x000000C5UL, 
        0x00000030UL, 0x00000001UL, 0x00000067UL, 0x0000002BUL, 0x000000FEUL, 0x000000D7UL, 0x000000ABUL, 0x00000076UL, 
        0x000000CAUL, 0x00000082UL, 0x000000C9UL, 0x0000007DUL, 0x000000FAUL, 0x00000059UL, 0x00000047UL, 0x000000F0UL, 
        0x000000ADUL, 0x000000D4UL, 0x000000A2UL, 0x000000AFUL, 0x0000009CUL, 0x000000A4UL, 0x00000072UL, 0x000000C0UL, 
        0x000000B7UL, 0x000000FDUL, 0x00000093UL, 0x00000026UL, 0x00000036UL, 0x0000003FUL, 0x000000F7UL, 0x000000CCUL, 
        0x00000034UL, 0x000000A5UL, 0x000000E5UL, 0x000000F1UL, 0x00000071UL, 0x000000D8UL, 0x00000031UL, 0x00000015UL, 
        0x00000004UL, 0x000000C7UL, 0x00000023UL, 0x000000C3UL, 0x00000018UL, 0x00000096UL, 0x00000005UL, 0x0000009AUL, 
        0x00000007UL, 0x00000012UL, 0x00000080UL, 0x000000E2UL, 0x000000EBUL, 0x00000027UL, 0x000000B2UL, 0x00000075UL, 
        0x00000009UL, 0x00000083UL, 0x0000002CUL, 0x0000001AUL, 0x0000001BUL, 0x0000006EUL, 0x0000005AUL, 0x000000A0UL, 
        0x00000052UL, 0x0000003BUL, 0x000000D6UL, 0x000000B3UL, 0x00000029UL, 0x000000E3UL, 0x0000002FUL, 0x00000084UL, 
        0x00000053UL, 0x000000D1UL, 0x00000000UL, 0x000000EDUL, 0x00000020UL, 0x000000FCUL, 0x000000B1UL, 0x0000005BUL, 
        0x0000006AUL, 0x000000CBUL, 0x000000BEUL, 0x00000039UL, 0x0000004AUL, 0x0000004CUL, 0x00000058UL, 0x000000CFUL, 
        0x000000D0UL, 0x000000EFUL, 0x000000AAUL, 0x000000FBUL, 0x00000043UL, 0x0000004DUL, 0x00000033UL, 0x00000085UL, 
        0x00000045UL, 0x000000F9UL, 0x00000002UL, 0x0000007FUL, 0x00000050UL, 0x0000003CUL, 0x0000009FUL, 0x000000A8UL, 
        0x00000051UL, 0x000000A3UL, 0x00000040UL, 0x0000008FUL, 0x00000092UL, 0x0000009DUL, 0x00000038UL, 0x000000F5UL, 
        0x000000BCUL, 0x000000B6UL, 0x000000DAUL, 0x00000021UL, 0x00000010UL, 0x000000FFUL, 0x000000F3UL, 0x000000D2UL, 
        0x000000CDUL, 0x0000000CUL, 0x00000013UL, 0x000000ECUL, 0x0000005FUL, 0x00000097UL, 0x00000044UL, 0x00000017UL, 
        0x000000C4UL, 0x000000A7UL, 0x0000007EUL, 0x0000003DUL, 0x00000064UL, 0x0000005DUL, 0x00000019UL, 0x00000073UL, 
        0x00000060UL, 0x00000081UL, 0x0000004FUL, 0x000000DCUL, 0x00000022UL, 0x0000002AUL, 0x00000090UL, 0x00000088UL, 
        0x00000046UL, 0x000000EEUL, 0x000000B8UL, 0x00000014UL, 0x000000DEUL, 0x0000005EUL, 0x0000000BUL, 0x000000DBUL, 
        0x000000E0UL, 0x00000032UL, 0x0000003AUL, 0x0000000AUL, 0x00000049UL, 0x00000006UL, 0x00000024UL, 0x0000005CUL, 
        0x000000C2UL, 0x000000D3UL, 0x000000ACUL, 0x00000062UL, 0x00000091UL, 0x00000095UL, 0x000000E4UL, 0x00000079UL, 
        0x000000E7UL, 0x000000C8UL, 0x00000037UL, 0x0000006DUL, 0x0000008DUL, 0x000000D5UL, 0x0000004EUL, 0x000000A9UL, 
        0x0000006CUL, 0x00000056UL, 0x000000F4UL, 0x000000EAUL, 0x00000065UL, 0x0000007AUL, 0x000000AEUL, 0x00000008UL, 
        0x000000BAUL, 0x00000078UL, 0x00000025UL, 0x0000002EUL, 0x0000001CUL, 0x000000A6UL, 0x000000B4UL, 0x000000C6UL, 
        0x000000E8UL, 0x000000DDUL, 0x00000074UL, 0x0000001FUL, 0x0000004BUL, 0x000000BDUL, 0x0000008BUL, 0x0000008AUL, 
        0x00000070UL, 0x0000003EUL, 0x000000B5UL, 0x00000066UL, 0x00000048UL, 0x00000003UL, 0x000000F6UL, 0x0000000EUL, 
        0x00000061UL, 0x00000035UL, 0x00000057UL, 0x000000B9UL, 0x00000086UL, 0x000000C1UL, 0x0000001DUL, 0x0000009EUL, 
        0x000000E1UL, 0x000000F8UL, 0x00000098UL, 0x00000011UL, 0x00000069UL, 0x000000D9UL, 0x0000008EUL, 0x00000094UL, 
        0x0000009BUL, 0x0000001EUL, 0x00000087UL, 0x000000E9UL, 0x000000CEUL, 0x00000055UL, 0x00000028UL, 0x000000DFUL, 
        0x0000008CUL, 0x000000A1UL, 0x00000089UL, 0x0000000DUL, 0x000000BFUL, 0x000000E6UL, 0x00000042UL, 0x00000068UL, 
        0x00000041UL, 0x00000099UL, 0x0000002DUL, 0x0000000FUL, 0x000000B0UL, 0x00000054UL, 0x000000BBUL, 0x00000016UL
    },
    {
        0x00006300UL, 0x00007C00UL, 0x00007700UL, 0x00007B00UL, 0x0000F200UL, 0x00006B00UL, 0x00006F00UL, 0x0000C500UL, 
        0x00003000UL, 0x00000100UL, 0x00006700UL, 0x00002B00UL, 0x0000FE00UL, 0x0000D700UL, 0x0000AB00UL, 0x00007600UL, 
        0x0000CA00UL, 0x00008200UL, 0x0000C900UL, 0x00007D00UL, 0x0000FA00UL, 0x00005900UL, 0x00004700UL, 0x0000F000UL, 
        0x0000AD00UL, 0x0000D400UL, 0x0000A200UL, 0x0000AF00UL, 0x00009C00UL, 0x0000A400UL, 0x00007200UL, 0x0000C000UL, 
        0x0000B700UL, 0x0000FD00UL, 0x00009300UL, 0x00002600UL, 0x00003600UL, 0x00003F00UL, 0x0000F700UL, 0x0000CC00UL, 
        0x00003400UL, 0x0000A500UL, 0x0000E500UL, 0x0000F100UL, 0x00007100UL, 0x0000D800UL, 0x00003100UL, 0x00001500UL, 
        0x00000400UL, 0x0000C700UL, 0x00002300UL, 0x0000C300UL, 0x00001800UL, 0x00009600UL, 0x00000500UL, 0x00009A00UL, 
        0x00000700UL, 0x00001200UL, 0x00008000UL, 0x0000E200UL, 0x0000EB00UL, 0x00002700UL, 0x0000B200UL, 0x00007500UL, 
        0x00000900UL, 0x00008300UL, 0x00002C00UL, 0x00001A00UL, 0x00001B00UL, 0x00006E00UL, 0x00005A00UL, 0x0000A000UL, 
        0x00005200UL, 0x00003B00UL, 0x0000D600UL, 0x0000B300UL, 0x00002900UL, 0x0000E300UL, 0x00002F00UL, 0x00008400UL, 
        0x00005300UL, 0x0000D100UL, 0x00000000UL, 0x0000ED00UL, 0x00002000UL, 0x0000FC00UL, 0x0000B100UL, 0x00005B00UL, 
        0x00006A00UL, 0x0000CB00UL, 0x0000BE00UL, 0x00003900UL, 0x00004A00UL, 0x00004C00UL, 0x00005800UL, 0x0000CF00UL, 
        0x0000D000UL, 0x0000EF00UL, 0x0000AA00UL, 0x0000FB00UL, 0x00004300UL, 0x00004D00UL, 0x00003300UL, 0x00008500UL, 
        0x00004500UL, 0x0000F900UL, 0x00000200UL, 0x00007F00UL, 0x00005000UL, 0x00003C00UL, 0x00009F00UL, 0x0000A800UL, 
        0x00005100UL, 0x0000A300UL, 0x00004000UL, 0x00008F00UL, 0x00009200UL, 0x00009D00UL, 0x00003800UL, 0x0000F500UL, 
        0x0000BC00UL, 0x0000B600UL, 0x0000DA00UL, 0x00002100UL, 0x00001000UL, 0x0000FF00UL, 0x0000F300UL, 0x0000D200UL, 
        0x0000CD00UL, 0x00000C00UL, 0x00001300UL, 0x0000EC00UL, 0x00005F00UL, 0x00009700UL, 0x00004400UL, 0x00001700UL, 
        0x0000C400UL, 0x0000A700UL, 0x00007E00UL, 0x00003D00UL, 0x00006400UL, 0x00005D00UL, 0x00001900UL, 0x00007300UL, 
        0x00006000UL, 0x00008100UL, 0x00004F00UL, 0x0000DC00UL, 0x00002200UL, 0x00002A00UL, 0x00009000UL, 0x00008800UL, 
        0x00004600UL, 0x0000EE00UL, 0x0000B800UL, 0x00001400UL, 0x0000DE00UL, 0x00005E00UL, 0x00000B00UL, 0x0000DB00UL, 
        0x0000E000UL, 0x00003200UL, 0x00003A00UL, 0x00000A00UL, 0x00004900UL, 0x00000600UL, 0x00002400UL, 0x00005C00UL, 
        0x0000C200UL, 0x0000D300UL, 0x0000AC00UL, 0x00006200UL, 0x00009100UL, 0x00009500UL, 0x0000E400UL, 0x00007900UL, 
        0x0000E700UL, 0x0000C800UL, 0x00003700UL, 0x00006D00UL, 0x00008D00UL, 0x0000D500UL, 0x00004E00UL, 0x0000A900UL, 
        0x00006C00UL, 0x00005600UL, 0x0000F400UL, 0x0000EA00UL, 0x00006500UL, 0x00007A00UL, 0x0000AE00UL, 0x00000800UL, 
        0x0000BA00UL, 0x00007800UL, 0x00002500UL, 0x00002E00UL, 0x00001C00UL, 0x0000A600UL, 0x0000B400UL, 0x0000C600UL, 
        0x0000E800UL, 0x0000DD00UL, 0x00007400UL, 0x00001F00UL, 0x00004B00UL, 0x0000BD00UL, 0x00008B00UL, 0x00008A00UL, 
        0x00007000UL, 0x00003E00UL, 0x0000B500UL, 0x00006600UL, 0x00004800UL, 0x00000300UL, 0x0000F600UL, 0x00000E00UL, 
        0x00006100UL, 0x00003500UL, 0x00005700UL, 0x0000B900UL, 0x00008600UL, 0x0000C100UL, 0x00001D00UL, 0x00009E00UL, 
        0x0000E100UL, 0x0000F800UL, 0x00009800UL, 0x00001100UL, 0x00006900UL, 0x0000D900UL, 0x00008E00UL, 0x00009400UL, 
        0x00009B00UL, 0x00001E00UL, 0x00008700UL, 0x0000E900UL, 0x0000CE00UL, 0x00005500UL, 0x00002800UL, 0x0000DF00UL, 
        0x00008C00UL, 0x0000A100UL, 0x00008900UL, 0x00000D00UL, 0x0000BF00UL, 0x0000E600UL, 0x00004200UL, 0x00006800UL, 
        0x00004100UL, 0x00009900UL, 0x00002D00UL, 0x00000F00UL, 0x0000B000UL, 0x00005400UL, 0x0000BB00UL, 0x00001600UL
    },
    {
        0x00630000UL, 0x007C0000UL, 0x00770000UL, 0x007B0000UL, 0x00F20000UL, 0x006B0000UL, 0x006F0000UL, 0x00C50000UL, 
        0x00300000UL, 0x00010000UL, 0x00670000UL, 0x002B0000UL, 0x00FE0000UL, 0x00D70000UL, 0x00AB0000UL, 0x00760000UL, 
        0x00CA0000UL, 0x00820000UL, 0x00C90000UL, 0x007D0000UL, 0x00FA0000UL, 0x00590000UL, 0x00470000UL, 0x00F00000UL, 
        0x00AD0000UL, 0x00D40000UL, 0x00A20000UL, 0x00AF0000UL, 0x009C0000UL, 0x00A40000UL, 0x00720000UL, 0x00C00000UL, 
        0x00B70000UL, 0x00FD0000UL, 0x00930000UL, 0x00260000UL, 0x00360000UL, 0x003F0000UL, 0x00F70000UL, 0x00CC0000UL, 
        0x00340000UL, 0x00A50000UL, 0x00E50000UL, 0x00F10000UL, 0x00710000UL, 0x00D80000UL, 0x00310000UL, 0x00150000UL, 
        0x00040000UL, 0x00C70000UL, 0x00230000UL, 0x00C30000UL, 0x00180000UL, 0x00960000UL, 0x00050000UL, 0x009A0000UL, 
        0x00070000UL, 0x00120000UL, 0x00800000UL, 0x00E20000UL, 0x00EB0000UL, 0x00270000UL, 0x00B20000UL, 0x00750000UL, 
        0x00090000UL, 0x00830000UL, 0x002C0000UL, 0x001A0000UL, 0x001B0000UL, 0x006E0000UL, 0x005A0000UL, 0x00A00000UL, 
        0x00520000UL, 0x003B0000UL, 0x00D60000UL, 0x00B30000UL, 0x00290000UL, 0x00E30000UL, 0x002F0000UL, 0x00840000UL, 
        0x00530000UL, 0x00D10000UL, 0x00000000UL, 0x00ED0000UL, 0x00200000UL, 0x00FC0000UL, 0x00B10000UL, 0x005B0000UL, 
        0x006A0000UL, 0x00CB0000UL, 0x00BE0000UL, 0x00390000UL, 0x004A0000UL, 0x004C0000UL, 0x00580000UL, 0x00CF0000UL, 
        0x00D00000UL, 0x00EF0000UL, 0x00AA0000UL, 0x00FB0000UL, 0x00430000UL, 0x004D0000UL, 0x00330000UL, 0x00850000UL, 
        0x00450000UL, 0x00F90000UL, 0x00020000UL, 0x007F0000UL, 0x00500000UL, 0x003C0000UL, 0x009F0000UL, 0x00A80000UL, 
        0x00510000UL, 0x00A30000UL, 0x00400000UL, 0x008F0000UL, 0x00920000UL, 0x009D0000UL, 0x00380000UL, 0x00F50000UL, 
        0x00BC0000UL, 0x00B60000UL, 0x00DA0000UL, 0x00210000UL, 0x00100000UL, 0x00FF0000UL, 0x00F30000UL, 0x00D20000UL, 
        0x00CD0000UL, 0x000C0000UL, 0x00130000UL, 0x00EC0000UL, 0x005F0000UL, 0x00970000UL, 0x00440000UL, 0x00170000UL, 
        0x00C40000UL, 0x00A70000UL, 0x007E0000UL, 0x003D0000UL, 0x00640000UL, 0x005D0000UL, 0x00190000UL, 0x00730000UL, 
        0x00600000UL, 0x00810000UL, 0x004F0000UL, 0x00DC0000UL, 0x00220000UL, 0x002A0000UL, 0x00900000UL, 0x00880000UL, 
        0x00460000UL, 0x00EE0000UL, 0x00B80000UL, 0x00140000UL, 0x00DE0000UL, 0x005E0000UL, 0x000B0000UL, 0x00DB0000UL, 
        0x00E00000UL, 0x00320000UL, 0x003A0000UL, 0x000A0000UL, 0x00490000UL, 0x00060000UL, 0x00240000UL, 0x005C0000UL, 
        0x00C20000UL, 0x00D30000UL, 0x00AC0000UL, 0x00620000UL, 0x00910000UL, 0x00950000UL, 0x00E40000UL, 0x00790000UL, 
        0x00E70000UL, 0x00C80000UL, 0x00370000UL, 0x006D0000UL, 0x008D0000UL, 0x00D50000UL, 0x004E0000UL, 0x00A90000UL, 
        0x006C0000UL, 0x00560000UL, 0x00F40000UL, 0x00EA0000UL, 0x00650000UL, 0x007A0000UL, 0x00AE0000UL, 0x00080000UL, 
        0x00BA0000UL, 0x00780000UL, 0x00250000UL, 0x002E0000UL, 0x001C0000UL, 0x00A60000UL, 0x00B40000UL, 0x00C60000UL, 
        0x00E80000UL, 0x00DD0000UL, 0x00740000UL, 0x001F0000UL, 0x004B0000UL, 0x00BD0000UL, 0x008B0000UL, 0x008A0000UL, 
        0x00700000UL, 0x003E0000UL, 0x00B50000UL, 0x00660000UL, 0x00480000UL, 0x00030000UL, 0x00F60000UL, 0x000E0000UL, 
        0x00610000UL, 0x00350000UL, 0x00570000UL, 0x00B90000UL, 0x00860000UL, 0x00C10000UL, 0x001D0000UL, 0x009E0000UL, 
        0x00E10000UL, 0x00F80000UL, 0x00980000UL, 0x00110000UL, 0x00690000UL, 0x00D90000UL, 0x008E0000UL, 0x00940000UL, 
        0x009B0000UL, 0x001E0000UL, 0x00870000UL, 0x00E90000UL, 0x00CE0000UL, 0x00550000UL, 0x00280000UL, 0x00DF0000UL, 
        0x008C0000UL, 0x00A10000UL, 0x00890000UL, 0x000D0000UL, 0x00BF0000UL, 0x00E60000UL, 0x00420000UL, 0x00680000UL, 
        0x00410000UL, 0x00990000UL, 0x002D0000UL, 0x000F0000UL, 0x00B00000UL, 0x00540000UL, 0x00BB0000UL, 0x00160000UL
    },
    {
        0x63000000UL, 0x7C000000UL, 0x77000000UL, 0x7B000000UL, 0xF2000000UL, 0x6B000000UL, 0x6F000000UL, 0xC5000000UL, 
        0x30000000UL, 0x01000000UL, 0x67000000UL, 0x2B000000UL, 0xFE000000UL, 0xD7000000UL, 0xAB000000UL, 0x76000000UL, 
        0xCA000000UL, 0x82000000UL, 0xC9000000UL, 0x7D000000UL, 0xFA000000UL, 0x59000000UL, 0x47000000UL, 0xF0000000UL, 
        0xAD000000UL, 0xD4000000UL, 0xA2000000UL, 0xAF000000UL, 0x9C000000UL, 0xA4000000UL, 0x72000000UL, 0xC0000000UL, 
        0xB7000000UL, 0xFD000000UL, 0x93000000UL, 0x26000000UL, 0x36000000UL, 0x3F000000UL, 0xF7000000UL, 0xCC000000UL, 
        0x34000000UL, 0xA5000000UL, 0xE5000000UL, 0xF1000000UL, 0x71000000UL, 0xD8000000UL, 0x31000000UL, 0x15000000UL, 
        0x04000000UL, 0xC7000000UL, 0x23000000UL, 0xC3000000UL, 0x18000000UL, 0x96000000UL, 0x05000000UL, 0x9A000000UL, 
        0x07000000UL, 0x12000000UL, 0x80000000UL, 0xE2000000UL, 0xEB000000UL, 0x27000000UL, 0xB2000000UL, 0x75000000UL, 
        0x09000000UL, 0x83000000UL, 0x2C000000UL, 0x1A000000UL, 0x1B000000UL, 0x6E000000UL, 0x5A000000UL, 0xA0000000UL, 
        0x52000000UL, 0x3B000000UL, 0xD6000000UL, 0xB3000000UL, 0x29000000UL, 0xE3000000UL, 0x2F000000UL, 0x84000000UL, 
        0x53000000UL, 0xD1000000UL, 0x00000000UL, 0xED000000UL, 0x20000000UL, 0xFC000000UL, 0xB1000000UL, 0x5B000000UL, 
        0x6A000000UL, 0xCB000000UL, 0xBE000000UL, 0x39000000UL, 0x4A000000UL, 0x4C000000UL, 0x58000000UL, 0xCF000000UL, 
        0xD0000000UL, 0xEF000000UL, 0xAA000000UL, 0xFB000000UL, 0x43000000UL, 0x4D000000UL, 0x33000000UL, 0x85000000UL, 
        0x45000000UL, 0xF9000000UL, 0x02000000UL, 0x7F000000UL, 0x50000000UL, 0x3C000000UL, 0x9F000000UL, 0xA8000000UL, 
        0x51000000UL, 0xA3000000UL, 0x40000000UL, 0x8F000000UL, 0x92000000UL, 0x9D000000UL, 0x38000000UL, 0xF5000000UL, 
        0xBC000000UL, 0xB6000000UL, 0xDA000000UL, 0x21000000UL, 0x10000000UL, 0xFF000000UL, 0xF3000000UL, 0xD2000000UL, 
        0xCD000000UL, 0x0C000000UL, 0x13000000UL, 0xEC000000UL, 0x5F000000UL, 0x97000000UL, 0x44000000UL, 0x17000000UL, 
        0xC4000000UL, 0xA7000000UL, 0x7E000000UL, 0x3D000000UL, 0x64000000UL, 0x5D000000UL, 0x19000000UL, 0x73000000UL, 
        0x60000000UL, 0x81000000UL, 0x4F000000UL, 0xDC000000UL, 0x22000000UL, 0x2A000000UL, 0x90000000UL, 0x88000000UL, 
        0x46000000UL, 0xEE000000UL, 0xB8000000UL, 0x14000000UL, 0xDE000000UL, 0x5E000000UL, 0x0B000000UL, 0xDB000000UL, 
        0xE0000000UL, 0x32000000UL, 0x3A000000UL, 0x0A000000UL, 0x49000000UL, 0x06000000UL, 0x24000000UL, 0x5C000000UL, 
        0xC2000000UL, 0xD3000000UL, 0xAC000000UL, 0x62000000UL, 0x91000000UL, 0x95000000UL, 0xE4000000UL, 0x79000000UL, 
        0xE7000000UL, 0xC8000000UL, 0x37000000UL, 0x6D000000UL, 0x8D000000UL, 0xD5000000UL, 0x4E000000UL, 0xA9000000UL, 
        0x6C000000UL, 0x56000000UL, 0xF4000000UL, 0xEA000000UL, 0x65000000UL, 0x7A000000UL, 0xAE000000UL, 0x08000000UL, 
        0xBA000000UL, 0x78000000UL, 0x25000000UL, 0x2E000000UL, 0x1C000000UL, 0xA6000000UL, 0xB4000000UL, 0xC6000000UL, 
        0xE8000000UL, 0xDD000000UL, 0x74000000UL, 0x1F000000UL, 0x4B000000UL, 0xBD000000UL, 0x8B000000UL, 0x8A000000UL, 
        0x70000000UL, 0x3E000000UL, 0xB5000000UL, 0x66000000UL, 0x48000000UL, 0x03000000UL, 0xF6000000UL, 0x0E000000UL, 
        0x61000000UL, 0x35000000UL, 0x57000000UL, 0xB9000000UL, 0x86000000UL, 0xC1000000UL, 0x1D000000UL, 0x9E000000UL, 
        0xE1000000UL, 0xF8000000UL, 0x98000000UL, 0x11000000UL, 0x69000000UL, 0xD9000000UL, 0x8E000000UL, 0x94000000UL, 
        0x9B000000UL, 0x1E000000UL, 0x87000000UL, 0xE9000000UL, 0xCE000000UL, 0x55000000UL, 0x28000000UL, 0xDF000000UL, 
        0x8C000000UL, 0xA1000000UL, 0x89000000UL, 0x0D000000UL, 0xBF000000UL, 0xE6000000UL, 0x42000000UL, 0x68000000UL, 
        0x41000000UL, 0x99000000UL, 0x2D000000UL, 0x0F000000UL, 0xB0000000UL, 0x54000000UL, 0xBB000000UL, 0x16000000UL
    }
};
static const u4byte (*fl_tab)[FL_TAB_SIZE_LS] = _fl_tab;

static const u4byte _il_tab[4][256] = {
    {
        0x00000052UL, 0x00000009UL, 0x0000006AUL, 0x000000D5UL, 0x00000030UL, 0x00000036UL, 0x000000A5UL, 0x00000038UL, 
        0x000000BFUL, 0x00000040UL, 0x000000A3UL, 0x0000009EUL, 0x00000081UL, 0x000000F3UL, 0x000000D7UL, 0x000000FBUL, 
        0x0000007CUL, 0x000000E3UL, 0x00000039UL, 0x00000082UL, 0x0000009BUL, 0x0000002FUL, 0x000000FFUL, 0x00000087UL, 
        0x00000034UL, 0x0000008EUL, 0x00000043UL, 0x00000044UL, 0x000000C4UL, 0x000000DEUL, 0x000000E9UL, 0x000000CBUL, 
        0x00000054UL, 0x0000007BUL, 0x00000094UL, 0x00000032UL, 0x000000A6UL, 0x000000C2UL, 0x00000023UL, 0x0000003DUL, 
        0x000000EEUL, 0x0000004CUL, 0x00000095UL, 0x0000000BUL, 0x00000042UL, 0x000000FAUL, 0x000000C3UL, 0x0000004EUL, 
        0x00000008UL, 0x0000002EUL, 0x000000A1UL, 0x00000066UL, 0x00000028UL, 0x000000D9UL, 0x00000024UL, 0x000000B2UL, 
        0x00000076UL, 0x0000005BUL, 0x000000A2UL, 0x00000049UL, 0x0000006DUL, 0x0000008BUL, 0x000000D1UL, 0x00000025UL, 
        0x00000072UL, 0x000000F8UL, 0x000000F6UL, 0x00000064UL, 0x00000086UL, 0x00000068UL, 0x00000098UL, 0x00000016UL, 
        0x000000D4UL, 0x000000A4UL, 0x0000005CUL, 0x000000CCUL, 0x0000005DUL, 0x00000065UL, 0x000000B6UL, 0x00000092UL, 
        0x0000006CUL, 0x00000070UL, 0x00000048UL, 0x00000050UL, 0x000000FDUL, 0x000000EDUL, 0x000000B9UL, 0x000000DAUL, 
        0x0000005EUL, 0x00000015UL, 0x00000046UL, 0x00000057UL, 0x000000A7UL, 0x0000008DUL, 0x0000009DUL, 0x00000084UL, 
        0x00000090UL, 0x000000D8UL, 0x000000ABUL, 0x00000000UL, 0x0000008CUL, 0x000000BCUL, 0x000000D3UL, 0x0000000AUL, 
        0x000000F7UL, 0x000000E4UL, 0x00000058UL, 0x00000005UL, 0x000000B8UL, 0x000000B3UL, 0x00000045UL, 0x00000006UL, 
        0x000000D0UL, 0x0000002CUL, 0x0000001EUL, 0x0000008FUL, 0x000000CAUL, 0x0000003FUL, 0x0000000FUL, 0x00000002UL, 
        0x000000C1UL, 0x000000AFUL, 0x000000BDUL, 0x00000003UL, 0x00000001UL, 0x00000013UL, 0x0000008AUL, 0x0000006BUL, 
        0x0000003AUL, 0x00000091UL, 0x00000011UL, 0x00000041UL, 0x0000004FUL, 0x00000067UL, 0x000000DCUL, 0x000000EAUL, 
        0x00000097UL, 0x000000F2UL, 0x000000CFUL, 0x000000CEUL, 0x000000F0UL, 0x000000B4UL, 0x000000E6UL, 0x00000073UL, 
        0x00000096UL, 0x000000ACUL, 0x00000074UL, 0x00000022UL, 0x000000E7UL, 0x000000ADUL, 0x00000035UL, 0x00000085UL, 
        0x000000E2UL, 0x000000F9UL, 0x00000037UL, 0x000000E8UL, 0x0000001CUL, 0x00000075UL, 0x000000DFUL, 0x0000006EUL, 
        0x00000047UL, 0x000000F1UL, 0x0000001AUL, 0x00000071UL, 0x0000001DUL, 0x00000029UL, 0x000000C5UL, 0x00000089UL, 
        0x0000006FUL, 0x000000B7UL, 0x00000062UL, 0x0000000EUL, 0x000000AAUL, 0x00000018UL, 0x000000BEUL, 0x0000001BUL, 
        0x000000FCUL, 0x00000056UL, 0x0000003EUL, 0x0000004BUL, 0x000000C6UL, 0x000000D2UL, 0x00000079UL, 0x00000020UL, 
        0x0000009AUL, 0x000000DBUL, 0x000000C0UL, 0x000000FEUL, 0x00000078UL, 0x000000CDUL, 0x0000005AUL, 0x000000F4UL, 
        0x0000001FUL, 0x000000DDUL, 0x000000A8UL, 0x00000033UL, 0x00000088UL, 0x00000007UL, 0x000000C7UL, 0x00000031UL, 
        0x000000B1UL, 0x00000012UL, 0x00000010UL, 0x00000059UL, 0x00000027UL, 0x00000080UL, 0x000000ECUL, 0x0000005FUL, 
        0x00000060UL, 0x00000051UL, 0x0000007FUL, 0x000000A9UL, 0x00000019UL, 0x000000B5UL, 0x0000004AUL, 0x0000000DUL, 
        0x0000002DUL, 0x000000E5UL, 0x0000007AUL, 0x0000009FUL, 0x00000093UL, 0x000000C9UL, 0x0000009CUL, 0x000000EFUL, 
        0x000000A0UL, 0x000000E0UL, 0x0000003BUL, 0x0000004DUL, 0x000000AEUL, 0x0000002AUL, 0x000000F5UL, 0x000000B0UL, 
        0x000000C8UL, 0x000000EBUL, 0x000000BBUL, 0x0000003CUL, 0x00000083UL, 0x00000053UL, 0x00000099UL, 0x00000061UL, 
        0x00000017UL, 0x0000002BUL, 0x00000004UL, 0x0000007EUL, 0x000000BAUL, 0x00000077UL, 0x000000D6UL, 0x00000026UL, 
        0x000000E1UL, 0x00000069UL, 0x00000014UL, 0x00000063UL, 0x00000055UL, 0x00000021UL, 0x0000000CUL, 0x0000007dUL
    },
    {
        0x00005200UL, 0x00000900UL, 0x00006A00UL, 0x0000D500UL, 0x00003000UL, 0x00003600UL, 0x0000A500UL, 0x00003800UL, 
        0x0000BF00UL, 0x00004000UL, 0x0000A300UL, 0x00009E00UL, 0x00008100UL, 0x0000F300UL, 0x0000D700UL, 0x0000FB00UL, 
        0x00007C00UL, 0x0000E300UL, 0x00003900UL, 0x00008200UL, 0x00009B00UL, 0x00002F00UL, 0x0000FF00UL, 0x00008700UL, 
        0x00003400UL, 0x00008E00UL, 0x00004300UL, 0x00004400UL, 0x0000C400UL, 0x0000DE00UL, 0x0000E900UL, 0x0000CB00UL, 
        0x00005400UL, 0x00007B00UL, 0x00009400UL, 0x00003200UL, 0x0000A600UL, 0x0000C200UL, 0x00002300UL, 0x00003D00UL, 
        0x0000EE00UL, 0x00004C00UL, 0x00009500UL, 0x00000B00UL, 0x00004200UL, 0x0000FA00UL, 0x0000C300UL, 0x00004E00UL, 
        0x00000800UL, 0x00002E00UL, 0x0000A100UL, 0x00006600UL, 0x00002800UL, 0x0000D900UL, 0x00002400UL, 0x0000B200UL, 
        0x00007600UL, 0x00005B00UL, 0x0000A200UL, 0x00004900UL, 0x00006D00UL, 0x00008B00UL, 0x0000D100UL, 0x00002500UL, 
        0x00007200UL, 0x0000F800UL, 0x0000F600UL, 0x00006400UL, 0x00008600UL, 0x00006800UL, 0x00009800UL, 0x00001600UL, 
        0x0000D400UL, 0x0000A400UL, 0x00005C00UL, 0x0000CC00UL, 0x00005D00UL, 0x00006500UL, 0x0000B600UL, 0x00009200UL, 
        0x00006C00UL, 0x00007000UL, 0x00004800UL, 0x00005000UL, 0x0000FD00UL, 0x0000ED00UL, 0x0000B900UL, 0x0000DA00UL, 
        0x00005E00UL, 0x00001500UL, 0x00004600UL, 0x00005700UL, 0x0000A700UL, 0x00008D00UL, 0x00009D00UL, 0x00008400UL, 
        0x00009000UL, 0x0000D800UL, 0x0000AB00UL, 0x00000000UL, 0x00008C00UL, 0x0000BC00UL, 0x0000D300UL, 0x00000A00UL, 
        0x0000F700UL, 0x0000E400UL, 0x00005800UL, 0x00000500UL, 0x0000B800UL, 0x0000B300UL, 0x00004500UL, 0x00000600UL, 
        0x0000D000UL, 0x00002C00UL, 0x00001E00UL, 0x00008F00UL, 0x0000CA00UL, 0x00003F00UL, 0x00000F00UL, 0x00000200UL, 
        0x0000C100UL, 0x0000AF00UL, 0x0000BD00UL, 0x00000300UL, 0x00000100UL, 0x00001300UL, 0x00008A00UL, 0x00006B00UL, 
        0x00003A00UL, 0x00009100UL, 0x00001100UL, 0x00004100UL, 0x00004F00UL, 0x00006700UL, 0x0000DC00UL, 0x0000EA00UL, 
        0x00009700UL, 0x0000F200UL, 0x0000CF00UL, 0x0000CE00UL, 0x0000F000UL, 0x0000B400UL, 0x0000E600UL, 0x00007300UL, 
        0x00009600UL, 0x0000AC00UL, 0x00007400UL, 0x00002200UL, 0x0000E700UL, 0x0000AD00UL, 0x00003500UL, 0x00008500UL, 
        0x0000E200UL, 0x0000F900UL, 0x00003700UL, 0x0000E800UL, 0x00001C00UL, 0x00007500UL, 0x0000DF00UL, 0x00006E00UL, 
        0x00004700UL, 0x0000F100UL, 0x00001A00UL, 0x00007100UL, 0x00001D00UL, 0x00002900UL, 0x0000C500UL, 0x00008900UL, 
        0x00006F00UL, 0x0000B700UL, 0x00006200UL, 0x00000E00UL, 0x0000AA00UL, 0x00001800UL, 0x0000BE00UL, 0x00001B00UL, 
        0x0000FC00UL, 0x00005600UL, 0x00003E00UL, 0x00004B00UL, 0x0000C600UL, 0x0000D200UL, 0x00007900UL, 0x00002000UL, 
        0x00009A00UL, 0x0000DB00UL, 0x0000C000UL, 0x0000FE00UL, 0x00007800UL, 0x0000CD00UL, 0x00005A00UL, 0x0000F400UL, 
        0x00001F00UL, 0x0000DD00UL, 0x0000A800UL, 0x00003300UL, 0x00008800UL, 0x00000700UL, 0x0000C700UL, 0x00003100UL, 
        0x0000B100UL, 0x00001200UL, 0x00001000UL, 0x00005900UL, 0x00002700UL, 0x00008000UL, 0x0000EC00UL, 0x00005F00UL, 
        0x00006000UL, 0x00005100UL, 0x00007F00UL, 0x0000A900UL, 0x00001900UL, 0x0000B500UL, 0x00004A00UL, 0x00000D00UL, 
        0x00002D00UL, 0x0000E500UL, 0x00007A00UL, 0x00009F00UL, 0x00009300UL, 0x0000C900UL, 0x00009C00UL, 0x0000EF00UL, 
        0x0000A000UL, 0x0000E000UL, 0x00003B00UL, 0x00004D00UL, 0x0000AE00UL, 0x00002A00UL, 0x0000F500UL, 0x0000B000UL, 
        0x0000C800UL, 0x0000EB00UL, 0x0000BB00UL, 0x00003C00UL, 0x00008300UL, 0x00005300UL, 0x00009900UL, 0x00006100UL, 
        0x00001700UL, 0x00002B00UL, 0x00000400UL, 0x00007E00UL, 0x0000BA00UL, 0x00007700UL, 0x0000D600UL, 0x00002600UL, 
        0x0000E100UL, 0x00006900UL, 0x00001400UL, 0x00006300UL, 0x00005500UL, 0x00002100UL, 0x00000C00UL, 0x00007d00UL
    },
    {
        0x00520000UL, 0x00090000UL, 0x006A0000UL, 0x00D50000UL, 0x00300000UL, 0x00360000UL, 0x00A50000UL, 0x00380000UL, 
        0x00BF0000UL, 0x00400000UL, 0x00A30000UL, 0x009E0000UL, 0x00810000UL, 0x00F30000UL, 0x00D70000UL, 0x00FB0000UL, 
        0x007C0000UL, 0x00E30000UL, 0x00390000UL, 0x00820000UL, 0x009B0000UL, 0x002F0000UL, 0x00FF0000UL, 0x00870000UL, 
        0x00340000UL, 0x008E0000UL, 0x00430000UL, 0x00440000UL, 0x00C40000UL, 0x00DE0000UL, 0x00E90000UL, 0x00CB0000UL, 
        0x00540000UL, 0x007B0000UL, 0x00940000UL, 0x00320000UL, 0x00A60000UL, 0x00C20000UL, 0x00230000UL, 0x003D0000UL, 
        0x00EE0000UL, 0x004C0000UL, 0x00950000UL, 0x000B0000UL, 0x00420000UL, 0x00FA0000UL, 0x00C30000UL, 0x004E0000UL, 
        0x00080000UL, 0x002E0000UL, 0x00A10000UL, 0x00660000UL, 0x00280000UL, 0x00D90000UL, 0x00240000UL, 0x00B20000UL, 
        0x00760000UL, 0x005B0000UL, 0x00A20000UL, 0x00490000UL, 0x006D0000UL, 0x008B0000UL, 0x00D10000UL, 0x00250000UL, 
        0x00720000UL, 0x00F80000UL, 0x00F60000UL, 0x00640000UL, 0x00860000UL, 0x00680000UL, 0x00980000UL, 0x00160000UL, 
        0x00D40000UL, 0x00A40000UL, 0x005C0000UL, 0x00CC0000UL, 0x005D0000UL, 0x00650000UL, 0x00B60000UL, 0x00920000UL, 
        0x006C0000UL, 0x00700000UL, 0x00480000UL, 0x00500000UL, 0x00FD0000UL, 0x00ED0000UL, 0x00B90000UL, 0x00DA0000UL, 
        0x005E0000UL, 0x00150000UL, 0x00460000UL, 0x00570000UL, 0x00A70000UL, 0x008D0000UL, 0x009D0000UL, 0x00840000UL, 
        0x00900000UL, 0x00D80000UL, 0x00AB0000UL, 0x00000000UL, 0x008C0000UL, 0x00BC0000UL, 0x00D30000UL, 0x000A0000UL, 
        0x00F70000UL, 0x00E40000UL, 0x00580000UL, 0x00050000UL, 0x00B80000UL, 0x00B30000UL, 0x00450000UL, 0x00060000UL, 
        0x00D00000UL, 0x002C0000UL, 0x001E0000UL, 0x008F0000UL, 0x00CA0000UL, 0x003F0000UL, 0x000F0000UL, 0x00020000UL, 
        0x00C10000UL, 0x00AF0000UL, 0x00BD0000UL, 0x00030000UL, 0x00010000UL, 0x00130000UL, 0x008A0000UL, 0x006B0000UL, 
        0x003A0000UL, 0x00910000UL, 0x00110000UL, 0x00410000UL, 0x004F0000UL, 0x00670000UL, 0x00DC0000UL, 0x00EA0000UL, 
        0x00970000UL, 0x00F20000UL, 0x00CF0000UL, 0x00CE0000UL, 0x00F00000UL, 0x00B40000UL, 0x00E60000UL, 0x00730000UL, 
        0x00960000UL, 0x00AC0000UL, 0x00740000UL, 0x00220000UL, 0x00E70000UL, 0x00AD0000UL, 0x00350000UL, 0x00850000UL, 
        0x00E20000UL, 0x00F90000UL, 0x00370000UL, 0x00E80000UL, 0x001C0000UL, 0x00750000UL, 0x00DF0000UL, 0x006E0000UL, 
        0x00470000UL, 0x00F10000UL, 0x001A0000UL, 0x00710000UL, 0x001D0000UL, 0x00290000UL, 0x00C50000UL, 0x00890000UL, 
        0x006F0000UL, 0x00B70000UL, 0x00620000UL, 0x000E0000UL, 0x00AA0000UL, 0x00180000UL, 0x00BE0000UL, 0x001B0000UL, 
        0x00FC0000UL, 0x00560000UL, 0x003E0000UL, 0x004B0000UL, 0x00C60000UL, 0x00D20000UL, 0x00790000UL, 0x00200000UL, 
        0x009A0000UL, 0x00DB0000UL, 0x00C00000UL, 0x00FE0000UL, 0x00780000UL, 0x00CD0000UL, 0x005A0000UL, 0x00F40000UL, 
        0x001F0000UL, 0x00DD0000UL, 0x00A80000UL, 0x00330000UL, 0x00880000UL, 0x00070000UL, 0x00C70000UL, 0x00310000UL, 
        0x00B10000UL, 0x00120000UL, 0x00100000UL, 0x00590000UL, 0x00270000UL, 0x00800000UL, 0x00EC0000UL, 0x005F0000UL, 
        0x00600000UL, 0x00510000UL, 0x007F0000UL, 0x00A90000UL, 0x00190000UL, 0x00B50000UL, 0x004A0000UL, 0x000D0000UL, 
        0x002D0000UL, 0x00E50000UL, 0x007A0000UL, 0x009F0000UL, 0x00930000UL, 0x00C90000UL, 0x009C0000UL, 0x00EF0000UL, 
        0x00A00000UL, 0x00E00000UL, 0x003B0000UL, 0x004D0000UL, 0x00AE0000UL, 0x002A0000UL, 0x00F50000UL, 0x00B00000UL, 
        0x00C80000UL, 0x00EB0000UL, 0x00BB0000UL, 0x003C0000UL, 0x00830000UL, 0x00530000UL, 0x00990000UL, 0x00610000UL, 
        0x00170000UL, 0x002B0000UL, 0x00040000UL, 0x007E0000UL, 0x00BA0000UL, 0x00770000UL, 0x00D60000UL, 0x00260000UL, 
        0x00E10000UL, 0x00690000UL, 0x00140000UL, 0x00630000UL, 0x00550000UL, 0x00210000UL, 0x000C0000UL, 0x007d0000UL
    },
    {
        0x52000000UL, 0x09000000UL, 0x6A000000UL, 0xD5000000UL, 0x30000000UL, 0x36000000UL, 0xA5000000UL, 0x38000000UL, 
        0xBF000000UL, 0x40000000UL, 0xA3000000UL, 0x9E000000UL, 0x81000000UL, 0xF3000000UL, 0xD7000000UL, 0xFB000000UL, 
        0x7C000000UL, 0xE3000000UL, 0x39000000UL, 0x82000000UL, 0x9B000000UL, 0x2F000000UL, 0xFF000000UL, 0x87000000UL, 
        0x34000000UL, 0x8E000000UL, 0x43000000UL, 0x44000000UL, 0xC4000000UL, 0xDE000000UL, 0xE9000000UL, 0xCB000000UL, 
        0x54000000UL, 0x7B000000UL, 0x94000000UL, 0x32000000UL, 0xA6000000UL, 0xC2000000UL, 0x23000000UL, 0x3D000000UL, 
        0xEE000000UL, 0x4C000000UL, 0x95000000UL, 0x0B000000UL, 0x42000000UL, 0xFA000000UL, 0xC3000000UL, 0x4E000000UL, 
        0x08000000UL, 0x2E000000UL, 0xA1000000UL, 0x66000000UL, 0x28000000UL, 0xD9000000UL, 0x24000000UL, 0xB2000000UL, 
        0x76000000UL, 0x5B000000UL, 0xA2000000UL, 0x49000000UL, 0x6D000000UL, 0x8B000000UL, 0xD1000000UL, 0x25000000UL, 
        0x72000000UL, 0xF8000000UL, 0xF6000000UL, 0x64000000UL, 0x86000000UL, 0x68000000UL, 0x98000000UL, 0x16000000UL, 
        0xD4000000UL, 0xA4000000UL, 0x5C000000UL, 0xCC000000UL, 0x5D000000UL, 0x65000000UL, 0xB6000000UL, 0x92000000UL, 
        0x6C000000UL, 0x70000000UL, 0x48000000UL, 0x50000000UL, 0xFD000000UL, 0xED000000UL, 0xB9000000UL, 0xDA000000UL, 
        0x5E000000UL, 0x15000000UL, 0x46000000UL, 0x57000000UL, 0xA7000000UL, 0x8D000000UL, 0x9D000000UL, 0x84000000UL, 
        0x90000000UL, 0xD8000000UL, 0xAB000000UL, 0x00000000UL, 0x8C000000UL, 0xBC000000UL, 0xD3000000UL, 0x0A000000UL, 
        0xF7000000UL, 0xE4000000UL, 0x58000000UL, 0x05000000UL, 0xB8000000UL, 0xB3000000UL, 0x45000000UL, 0x06000000UL, 
        0xD0000000UL, 0x2C000000UL, 0x1E000000UL, 0x8F000000UL, 0xCA000000UL, 0x3F000000UL, 0x0F000000UL, 0x02000000UL, 
        0xC1000000UL, 0xAF000000UL, 0xBD000000UL, 0x03000000UL, 0x01000000UL, 0x13000000UL, 0x8A000000UL, 0x6B000000UL, 
        0x3A000000UL, 0x91000000UL, 0x11000000UL, 0x41000000UL, 0x4F000000UL, 0x67000000UL, 0xDC000000UL, 0xEA000000UL, 
        0x97000000UL, 0xF2000000UL, 0xCF000000UL, 0xCE000000UL, 0xF0000000UL, 0xB4000000UL, 0xE6000000UL, 0x73000000UL, 
        0x96000000UL, 0xAC000000UL, 0x74000000UL, 0x22000000UL, 0xE7000000UL, 0xAD000000UL, 0x35000000UL, 0x85000000UL, 
        0xE2000000UL, 0xF9000000UL, 0x37000000UL, 0xE8000000UL, 0x1C000000UL, 0x75000000UL, 0xDF000000UL, 0x6E000000UL, 
        0x47000000UL, 0xF1000000UL, 0x1A000000UL, 0x71000000UL, 0x1D000000UL, 0x29000000UL, 0xC5000000UL, 0x89000000UL, 
        0x6F000000UL, 0xB7000000UL, 0x62000000UL, 0x0E000000UL, 0xAA000000UL, 0x18000000UL, 0xBE000000UL, 0x1B000000UL, 
        0xFC000000UL, 0x56000000UL, 0x3E000000UL, 0x4B000000UL, 0xC6000000UL, 0xD2000000UL, 0x79000000UL, 0x20000000UL, 
        0x9A000000UL, 0xDB000000UL, 0xC0000000UL, 0xFE000000UL, 0x78000000UL, 0xCD000000UL, 0x5A000000UL, 0xF4000000UL, 
        0x1F000000UL, 0xDD000000UL, 0xA8000000UL, 0x33000000UL, 0x88000000UL, 0x07000000UL, 0xC7000000UL, 0x31000000UL, 
        0xB1000000UL, 0x12000000UL, 0x10000000UL, 0x59000000UL, 0x27000000UL, 0x80000000UL, 0xEC000000UL, 0x5F000000UL, 
        0x60000000UL, 0x51000000UL, 0x7F000000UL, 0xA9000000UL, 0x19000000UL, 0xB5000000UL, 0x4A000000UL, 0x0D000000UL, 
        0x2D000000UL, 0xE5000000UL, 0x7A000000UL, 0x9F000000UL, 0x93000000UL, 0xC9000000UL, 0x9C000000UL, 0xEF000000UL, 
        0xA0000000UL, 0xE0000000UL, 0x3B000000UL, 0x4D000000UL, 0xAE000000UL, 0x2A000000UL, 0xF5000000UL, 0xB0000000UL, 
        0xC8000000UL, 0xEB000000UL, 0xBB000000UL, 0x3C000000UL, 0x83000000UL, 0x53000000UL, 0x99000000UL, 0x61000000UL, 
        0x17000000UL, 0x2B000000UL, 0x04000000UL, 0x7E000000UL, 0xBA000000UL, 0x77000000UL, 0xD6000000UL, 0x26000000UL, 
        0xE1000000UL, 0x69000000UL, 0x14000000UL, 0x63000000UL, 0x55000000UL, 0x21000000UL, 0x0C000000UL, 0x7d000000UL
    }
};
static const u4byte (*il_tab)[IL_TAB_SIZE_LS] = _il_tab;

#endif /* AES_LARGE_TABLES */

#endif	/* AES_DYNAMIC_TABLES */

#endif	/* _GLADMAN_TABLES_H_ */