亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lhadec.cpp

?? awd bios文件的修改工具
?? CPP
字號:
//'AwardMod BIOS Manipulation Tool
//'Copyright (C) 2001 Josef Hill
//'
//'This program is free software; you can redistribute it and/or
//'modify it under the terms of the GNU General Public License
//'as published by the Free Software Foundation; either version 2
//'of the License, or any later version.
//'
//'This program is distributed in the hope that it will be useful,
//'but WITHOUT ANY WARRANTY; without even the implied warranty of
//'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//'GNU General Public License for more details.
//'
//'You should have received a copy of the GNU General Public License
//'along with this program; if not, write to the Free Software
//'Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.


#include "stdafx.h"
#include "lhadec.h"



#define  CHAR_BIT 8
#define  UCHAR_MAX 255
#define  DICBIT 13
#define  DICSIZ (1U << DICBIT)
#define  MAXMATCH  256
#define  THRESHOLD  3
#define  PERC_FLAG  32768
#define  NC  (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD)
#define  CBIT  9
#define  CODE_BIT  16
#define  NP  (DICBIT + 1)
#define  NT  (CODE_BIT + 3)
#define  PBIT  4
#define  TBIT  5
#define  BITBUFSIZ  (CHAR_BIT * 4)

dword me_BS;

dword me_Left[2 * NC - 1];
dword me_aRight[2*NC-1];
dword mac_len[NC];
dword mapt_len[NT];
dword mac_table[4096];
dword mapt_table[256];

byte* me_aIn;
dword me_pIn;
dword me_lIn;

byte me_aOut[8192];
dword me_pOut;
dword me_lOut;

//'io
dword mBB;
dword me_SBB;
dword me_BC;

dword mDecode_lI;
dword mL;



void decode();
dword decode_c();
void read_pt_len(dword iNN, dword iNBit, dword iSpecial);
void read_c_len();
dword decode_p();
void make_table(dword i_nchar,dword i_tablebits, dword* i_bitlen,dword* i_table);
dword getbits(dword iN);
void fillbuf(dword iN);
void e_clean();


void __stdcall lhadec_setinput(byte* iStr, dword* iLen)
{
	dword lC;
	e_clean();
	
	

	me_lIn = iLen[0];
	me_aIn = new byte[me_lIn];
	for (lC=0;lC<me_lIn;lC++)
	{
		me_aIn[lC] = iStr[lC];
	}
	me_pIn = 0;
	fillbuf (BITBUFSIZ);
}


void __stdcall lhadec_getoutput(byte* iStr, dword* iLen)
{
	dword lC;
	for (lC=0;lC<me_lOut;lC++)
	{
		iStr[lC]=me_aOut[lC];
	}
	iLen[0] = me_lOut;
	if (me_lOut!=8192)
	{
		delete [] me_aIn;
	}
}

void __stdcall lhadec_work(void)
{
	decode();
}

void e_clean()
{
	dword lC;

	mBB = 0;
	me_SBB = 0;
	me_BC = 0;
	mDecode_lI = 0;
	mL = 0;
	me_BS = 0;
	mL = 0;

	for (lC=0;lC < (2 * NC) ;lC++)
	{
		me_Left[lC] = 0;
		me_aRight[lC] = 0;
	}
	for (lC=0;lC < NC + 1;lC++)
	{
		mac_len[lC] = 0;
	}
	for (lC=0;lC < NT + 1;lC++)
	{
		mapt_len[lC] = 0;
	}
	for (lC=0;lC < 4097;lC++)
	{
		mac_table[lC] = 0;
	}
	for (lC=0;lC < 257;lC++)
	{
		mapt_table[lC] = 0;
	}
	for (lC=0;lC < 8192;lC++)
	{
		me_aOut[lC] = 0;
	}
}

void decode()
{
	dword lR;
	dword lC;
	dword lL;

	me_lOut = 8192;
	lR =0;
	lL = mL;
	mL = 0;

	goto lClean;
	while (lR < DICSIZ) 
	{
		lC = decode_c();
		if (lC == 0xFFFFFFFF)
		{
			me_lOut = lR;
			return;
		}
		if ((lC <= (dword)(UCHAR_MAX)))
		{
			me_aOut[me_pOut + lR++] = (byte)lC;
		}
		else
		{
			lL = lC - (UCHAR_MAX + 1 - THRESHOLD);
			mDecode_lI = (lR - decode_p() - 1) & (DICSIZ - 1);
lClean:
			if ((lR+lL) >= DICSIZ)
			{
				mL = lL;
				lL = DICSIZ - lR;
				mL -= lL;
			}
			while (--lL != 0xFFFFFFFF) 
			{
				me_aOut[me_pOut + lR++] = me_aOut[me_pOut + mDecode_lI++];
				mDecode_lI &= DICSIZ -1;
			};
		}
	};
}

dword decode_c()
{
	dword lJ;
	dword lM;

	if (me_BS ==0)
	{
		me_BS = getbits(16);
		read_pt_len(NT, TBIT, 3);
		read_c_len();
		read_pt_len ((dword)NP, (dword)PBIT, (dword)0xFFFFFFFF);
	}
	me_BS--;

	if (me_BS == 0xFFFFFFFF)
	{
		return me_BS;
	}

	lJ = mac_table[(mBB>>(BITBUFSIZ -12))];
	if (lJ >= (dword) (NC)) 
	{
		lM = 1<<(BITBUFSIZ -13);
		while (lJ >= (dword) (NC)) 
		{
			if ((mBB & lM) != 0) 
			{
				lJ = me_aRight[ lJ];
			}
			else
			{
				lJ = me_Left[ lJ];
			}
			lM >>= 1;
		}  ;
	}
	fillbuf( (dword) mac_len[ lJ]);
	return lJ;
}

void read_pt_len(dword iNN, dword iNBit, dword iSpecial)
{
	dword lI;
	dword lC;
	dword lN;
	dword lM;

	lN = getbits(iNBit);
	if (lN ==0)
	{
		lC = getbits(iNBit);
		for (lI = 0; lI < (dword) (iNN + 1); lI++)
		{
			mapt_len[ lI] = 0;
		}
		for (lI = 0; lI < 256 + 1; lI++)
		{
			mapt_table[ lI] = lC;
		}
	}
	else
	{
		lI = 0;
		while (lI < lN) 
		{
			lC = mBB >> (BITBUFSIZ -3);
			if (lC == 7)
			{
				lM = 1 << (BITBUFSIZ - 1 -3);
				while ((lM & mBB) != 0) 
				{
					lM >>= 1;
					lC++;
				};
			}
			fillbuf((dword)((lC < 7) ? 3 : lC - 3));
			mapt_len[ lI] = lC;
			lI++;
			if (lI == iSpecial)
			{
				lC = getbits(2);
				while (--lC != 0xFFFFFFFF) 
				{
					mapt_len[ lI] = 0;
					lI++;
				};
			}
		};
		while (lI < iNN) 
		{
			mapt_len[ lI] = 0;
			lI++;
		};
		make_table  (iNN, 8, mapt_len, mapt_table);
	}
}

void read_c_len()
{
	dword lI;
	dword lC;
	dword lN;
	dword lM;

	lN = getbits(CBIT);
	if (lN ==0)
	{
		lC = getbits(CBIT);
		for (lI = 0; lI <(dword)( NC + 1); lI++)
		{
			mac_len[ lI] = 0;
		}
		for (lI = 0; lI < 4097; lI++)
		{
			mac_table[lI] = lC;
		}
	}
	else
	{
		lI = 0;
		while (lI < lN) 
		{
			lC = mapt_table[ ( mBB >> (BITBUFSIZ -8))];
			if (lC >= NT)
			{
				lM = 1 << (BITBUFSIZ - 1-8);
				while (lC >= NT) 
				{
					if ((mBB & lM) != 0) 
					{
						lC = me_aRight[ lC];
					}
					else
					{
						lC = me_Left[ lC];
					}
					lM >>= 1;
				} ;
			}
			fillbuf((mapt_len[ lC]));
			if (lC <=2) 
			{
				if (lC ==0)
				{
					lC = 1;
				}
				else if (lC == 1)
				{
					lC = getbits(4) + 3;
				}
				else
				{
					lC = getbits(CBIT) + 20;
				}

				while (--lC !=0xFFFFFFFF) 
				{
					mac_len[ lI] = 0;
					lI++;
				};

			}
			else
			{
				mac_len[ lI] = lC -2;
				lI++;
			}
		};
		while (lI <(dword) (NC)) 
		{
			mac_len[ lI] = 0;
			lI++;
		};
		make_table(NC,12, mac_len, mac_table);
	}
}

dword decode_p()
{
	dword lJ;
	dword lM;
	lJ = mapt_table[(mBB >> (BITBUFSIZ -8))];
	if (lJ >= NP)
	{
		lM = 1 << (BITBUFSIZ -1-8);
		while (lJ >= NP) 
		{
			if ((mBB & lM) != 0) 
			{
				lJ = me_aRight[ lJ];
			}
			else
			{
				lJ = me_Left[ lJ];
			}
			lM >>= 1;
		} ;
	}
	fillbuf( (dword)(mapt_len[ lJ]));
	if (lJ != 0)
	{
		//lJ = 1;
		lJ = (1<<(lJ -1)) + getbits((lJ) -1);
	}
	return lJ;
}


void make_table(dword i_nchar,dword i_tablebits, dword* iBitLen,dword* iTable)
{	
	dword lCC[17];
	dword lWW[17];
	dword lSS[18];
	dword* lP;
	dword lPp;
	dword lI;
	dword lK;
	dword lL;
	dword lCH;
	dword lJ;
	dword lA;
	dword lNC;
	dword lM;

	//clear count
	for (lI = 1;lI<17;lI++){
		lCC[lI] = 0;
	}

	//build counts based on values in bitlen
	for (lI = 0;lI < i_nchar; lI++){
		lCC[iBitLen[lI]]++;
	}

	//load start with count values
	lSS[1] = 0;
	for (lI = 1; lI < 17; lI++){
		lSS[lI + 1] = (lSS[lI] + (lCC[lI] << (16-lI))) & 0xFFFF;
	}

	//test if start[17] = 0 ; this apparantly means the archive is bad..
	if (lSS[17] != 0) {
		i_nchar = 0xFFFFFFFF;
		return;
	}


	//not sure what jutbits is for but it seems to be some form of cleanup
	lJ = 16 - i_tablebits;
	for (lI = 1; lI < (i_tablebits + 1); lI++){
		lSS[lI] = (lSS[lI] >> lJ) & 0xFFFF;
		lWW[lI] = (1 << (i_tablebits - lI)) & 0xFFFF;
	}

	//clean up the reme_aIning weights
	while (lI < 17){
		lWW[lI] = (1<<(16 - lI)) & 0xFFFF;
		lI++;
	}

	//if there ?? then flush some portion of the table
	lI = lSS[i_tablebits + 1] >> lJ;
	if (lI != 0){
		lK = 1 << i_tablebits;
		while (lI != lK){
			iTable[lI] = 0;
			lI++;
		}
	}
	
	lA  = i_nchar;
	lM = 1 << (15 - i_tablebits);
	for ( lCH = 0; lCH < i_nchar; lCH++){
		lL = iBitLen[lCH];
		if (lL == 0) continue;
		lNC = (lSS[lL] + lWW[lL]) ;
		if (lL <= i_tablebits){
			for (lI = lSS[lL]; lI < lNC; lI++){
				iTable[lI] = lCH;
			}
		}
		else{
			lK = lSS[lL];
			lP = iTable;
			lPp = lK >> lJ;
			lI = lL - i_tablebits;
			while (lI !=0){
				if (lP[lPp] == 0){
					me_aRight[lA] = 0;
					me_Left[lA] = 0;
					lP[lPp] = lA;
					lA++;
				}

				if ((lK & lM) != 0) {
					lPp = lP[lPp];
					lP = me_aRight;
				}
				else {
					lPp = lP[lPp];
					lP = me_Left;
				}

				lK <<= 1;
				lI--;
			}

			lP[lPp] = lCH;
		}
		lSS[lL] = lNC;
	}
}
	
dword getbits(dword iN)
{
	dword lO;
	if (iN == 0){
		return iN;
	}
	else
	{
		lO = mBB >> (BITBUFSIZ -iN);
		fillbuf(iN);
		return lO;
	}
}

void fillbuf(dword iN)
{
	mBB <<= iN;
	while (iN > me_BC) 
	{
		iN -= me_BC;
		mBB |= (me_SBB << iN);
		if (me_lIn != 0)
		{
			me_lIn--;
			me_SBB = me_aIn[me_pIn];
			me_pIn++;
		}
		else
		{
			me_SBB = 0;
		}
		me_BC = CHAR_BIT;
	} ;
	me_BC -= iN;
	mBB |= (me_SBB >> me_BC);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜影院一区| 国产欧美一区二区三区沐欲| 91精品国产欧美一区二区成人| 精品国产乱码久久久久久1区2区| 亚洲日本乱码在线观看| 九色综合国产一区二区三区| 色老汉一区二区三区| 一区二区三区鲁丝不卡| 国产成a人亚洲精| 欧美一区二区免费视频| 一区二区三区国产豹纹内裤在线| 懂色av一区二区三区蜜臀| 日韩欧美国产精品一区| 亚洲综合色视频| 成人动漫一区二区| 国产偷v国产偷v亚洲高清| 青青青伊人色综合久久| 欧美日韩在线播放一区| 自拍偷拍亚洲综合| 丁香五精品蜜臀久久久久99网站| 这里只有精品视频在线观看| 夜夜精品视频一区二区| 91啪在线观看| 国产精品不卡在线观看| caoporn国产一区二区| 国产亚洲欧美激情| 国产精品一区专区| 久久久久国产免费免费| 国产真实乱子伦精品视频| 日韩午夜电影在线观看| 免费不卡在线视频| 日韩三级.com| 久久99蜜桃精品| 欧美成人bangbros| 另类成人小视频在线| 日韩一二在线观看| 久久99精品国产91久久来源| 日韩欧美电影在线| 色成年激情久久综合| 亚洲图片你懂的| 色国产精品一区在线观看| 亚洲一二三区视频在线观看| 色8久久精品久久久久久蜜| 一区二区三区四区国产精品| 在线视频国内一区二区| 午夜欧美视频在线观看| 日韩欧美国产1| 国产美女精品人人做人人爽| 国产欧美精品一区aⅴ影院| 国产成人99久久亚洲综合精品| 国产精品全国免费观看高清 | 亚洲一级电影视频| 欧洲视频一区二区| 视频一区国产视频| 久久婷婷久久一区二区三区| 国产99一区视频免费| 亚洲欧美日韩成人高清在线一区| 日本精品视频一区二区| 日韩av电影一区| 国产午夜精品一区二区三区嫩草| 91小视频在线| 日韩高清国产一区在线| 国产午夜亚洲精品午夜鲁丝片| 成人黄色av网站在线| 香蕉加勒比综合久久| 欧美不卡一区二区三区四区| 成人免费高清在线观看| 午夜国产不卡在线观看视频| 精品久久久影院| 色女孩综合影院| 国内久久婷婷综合| 亚洲精品美腿丝袜| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产制服丝袜一区| 亚洲九九爱视频| 精品入口麻豆88视频| 色综合色综合色综合色综合色综合 | 国产精品456| 亚洲已满18点击进入久久| 精品国精品国产| 欧美丝袜自拍制服另类| 国产成人精品亚洲午夜麻豆| 亚洲妇女屁股眼交7| 国产精品丝袜在线| 精品剧情v国产在线观看在线| 色综合久久久久综合| 国产成人夜色高潮福利影视| 亚洲午夜精品17c| 国产精品福利一区| 精品成人一区二区三区四区| 欧美亚洲国产一区二区三区| 成人禁用看黄a在线| 久久精品国产999大香线蕉| 尤物在线观看一区| 国产精品大尺度| 国产欧美一区二区精品性| 日韩欧美一区二区视频| 欧美吞精做爰啪啪高潮| 91网站在线观看视频| 丁香六月综合激情| 国产精品性做久久久久久| 日本 国产 欧美色综合| 亚洲国产综合在线| 亚洲激情第一区| 亚洲天堂av老司机| 国产精品成人网| 国产精品网站导航| 欧美极品aⅴ影院| 欧美高清一级片在线观看| 久久老女人爱爱| 久久人人爽人人爽| 久久久精品人体av艺术| 精品成人一区二区三区| 精品欧美久久久| 久久先锋资源网| 久久久久亚洲蜜桃| 国产午夜精品福利| 国产精品污污网站在线观看 | 91精品在线免费| 91精品视频网| 精品免费视频.| 欧美精品一区视频| 国产校园另类小说区| 中文av一区特黄| 一区二区中文字幕在线| 亚洲精品视频在线观看网站| 夜夜精品浪潮av一区二区三区| 亚洲综合成人在线| 日韩va欧美va亚洲va久久| 欧美aaaaaa午夜精品| 国产资源精品在线观看| 国产iv一区二区三区| 91色九色蝌蚪| 欧美巨大另类极品videosbest| 欧美一级一区二区| 久久九九久久九九| 亚洲欧美另类小说视频| 亚洲综合视频在线| 麻豆精品新av中文字幕| 国产精品一二三区| 一本一道综合狠狠老| 欧美精品视频www在线观看| 欧美成人女星排名| 中文字幕一区二区三区乱码在线 | 欧美一区二区免费观在线| 精品国产乱码久久久久久1区2区| 欧美国产1区2区| 亚洲综合激情网| 国内精品久久久久影院色| 色婷婷综合久久久中文字幕| 欧美日本一道本| 久久久久久久性| 亚洲国产综合在线| 国产又黄又大久久| 91福利在线观看| 久久欧美一区二区| 亚洲一区二区三区中文字幕在线| 蜜桃视频一区二区三区在线观看| 不卡一二三区首页| 日韩精品一区在线| 一区二区欧美视频| 风间由美性色一区二区三区| 国产精品女人毛片| 亚洲电影一区二区三区| 国产一区二区三区蝌蚪| 欧美日韩在线播| 国产精品系列在线| 免费一级片91| 日本韩国欧美一区二区三区| 久久久久久免费毛片精品| 丝袜美腿一区二区三区| 成人99免费视频| 精品国产不卡一区二区三区| 亚洲第一会所有码转帖| 岛国一区二区三区| 精品美女在线观看| 日韩国产欧美一区二区三区| 92精品国产成人观看免费 | 麻豆国产精品官网| 91黄色免费看| 中文字幕一区二区在线观看| 国产精品一区二区男女羞羞无遮挡| 欧美性生活久久| 一区二区三区成人| 91一区二区在线| 国产精品卡一卡二| 高清成人免费视频| 久久久www免费人成精品| 玖玖九九国产精品| 欧美美女喷水视频| 午夜av一区二区三区| 欧美主播一区二区三区| 亚洲久本草在线中文字幕| 91啪在线观看| 亚洲精品欧美二区三区中文字幕| 99久久国产综合精品色伊| 国产精品美女久久久久av爽李琼| 国产精品一区在线观看乱码| 久久嫩草精品久久久精品一| 国产毛片精品视频|