|
本帖最后由 ilovepp 于 2021-2-27 13:40 编辑
unsigned short crc(unsigned char *param_1,unsigned short param_2)
{
unsigned int uVar1;
unsigned int uVar2;
unsigned short uVar3;
unsigned char bVar4;
unsigned int uVar5;
unsigned char *pbVar6;
short sVar7;
unsigned char *pbVar8;
if (param_2 == 0) {
return 0xffff;
}
uVar3 = param_2 & 1;
if (param_2 == 1) {
uVar5 = 0xffff;
}
else {
uVar5 = 0xffff;
pbVar6 = param_1;
sVar7 = param_2 - (param_2 & 1);
do {
pbVar8 = pbVar6 + -1;
if ((param_2 & 1) == 0) {
pbVar8 = pbVar6 + 1;
}
param_2 = param_2 - 2;
param_1 = pbVar6 + 2;
uVar5 = uVar5 ^ (unsigned int)*pbVar8 << 8;
uVar2 = (uVar5 & 0xffff) << 1;
uVar1 = uVar2 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar2;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
if ((param_2 & 1) != 0) {
pbVar6 = param_1;
}
uVar5 = uVar5 ^ (unsigned int)*pbVar6 << 8;
uVar2 = (uVar5 & 0xffff) << 1;
uVar1 = uVar2 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar2;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
bVar4 = sVar7 != 2;
pbVar6 = param_1;
sVar7 = sVar7 + -2;
} while (bVar4);
}
if (uVar3 != 0) {
pbVar6 = param_1 + -1;
if ((param_2 & 1) == 0) {
pbVar6 = param_1 + 1;
}
uVar5 = uVar5 ^ (unsigned int)*pbVar6 << 8;
uVar2 = (uVar5 & 0xffff) << 1;
uVar1 = uVar2 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar2;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
uVar1 = uVar5 << 1 ^ 0x8005;
if (-1 < (short)uVar5) {
uVar1 = uVar5 << 1;
}
uVar5 = uVar1 << 1 ^ 0x8005;
if (-1 < (short)uVar1) {
uVar5 = uVar1 << 1;
}
}
return (unsigned short)uVar5;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|