版本4.33,可以识别rar,zip,tag等多种压缩格式

源代码在线查看: branchia64.c

软件大小: 1167 K
上传用户: a14331510z
关键词: 4.33 zip tag
下载地址: 免注册下载 普通下载 VIP

相关代码

				// BranchIA64.c
				
				#include "BranchIA64.h"
				
				const Byte kBranchTable[32] = 
				{ 
				  0, 0, 0, 0, 0, 0, 0, 0,
				  0, 0, 0, 0, 0, 0, 0, 0,
				  4, 4, 6, 6, 0, 0, 7, 7,
				  4, 4, 0, 0, 4, 4, 0, 0 
				};
				
				UInt32 IA64_Convert(Byte *data, UInt32 size, UInt32 nowPos, int encoding)
				{
				  UInt32 i;
				  for (i = 0; i + 16 				  {
				    UInt32 instrTemplate = data[i] & 0x1F;
				    UInt32 mask = kBranchTable[instrTemplate];
				    UInt32 bitPos = 5;
				    for (int slot = 0; slot < 3; slot++, bitPos += 41)
				    {
				      if (((mask >> slot) & 1) == 0)
				        continue;
				      UInt32 bytePos = (bitPos >> 3);
				      UInt32 bitRes = bitPos & 0x7;
				      // UInt64 instruction = *(UInt64 *)(data + i + bytePos);
				      UInt64 instruction = 0;
				      int j;
				      for (j = 0; j < 6; j++)
				        instruction += (UInt64)(data[i + j + bytePos]) 				
				      UInt64 instNorm = instruction >> bitRes;
				      if (((instNorm >> 37) & 0xF) == 0x5 
				        &&  ((instNorm >> 9) & 0x7) == 0 
				        // &&  (instNorm & 0x3F)== 0 
				        )
				      {
				        UInt32 src = UInt32((instNorm >> 13) & 0xFFFFF);
				        src |= ((instNorm >> 36) & 1) 				        
				        src 				        
				        UInt32 dest;
				        if (encoding)
				          dest = nowPos + i + src;
				        else
				          dest = src - (nowPos + i);
				        
				        dest >>= 4;
				        
				        instNorm &= ~(UInt64(0x8FFFFF) 				        instNorm |= (UInt64(dest & 0xFFFFF) 				        instNorm |= (UInt64(dest & 0x100000) 				        
				        instruction &= (1 				        instruction |= (instNorm 				        // *(UInt64 *)(data + i + bytePos) = instruction;
				        for (j = 0; j < 6; j++)
				          data[i + j + bytePos] = Byte(instruction >> (8 * j));
				      }
				    }
				  }
				  return i;
				}
							

相关资源