AslpFileLargeGetCrcChecksum
INT64 __fastcall AslpFileLargeGetCrcChecksum(_DWORD *a1, _QWORD *a2){
unsigned __int64 v4;
__int64 v5;
unsigned __int64 v6;
UINT8 *v7;
__int64 v8;
UINT8 *v10;
unsigned int v11;
UINT64 v12;
__int64 v13;
*a1 = 0;
v4 = *(_QWORD *)(*a2 + 16i64);
if( v4 < 0x100000 )
return 3221225485i64;
v5 = a2[6];
if( !v5 )
return 3221225485i64;
v6 = a2[7];
if( v6 < 0x1000 )
return 3221225485i64;
v7 = (UINT8 *)a2[2];
if( !v7 || a2[3] < 0x1000ui64 || a2[4] )
return 3221225485i64;
v8 = v4 - a2[8] - 4096;
if( v4 - a2[8] <= v6 )
{
v10 = (UINT8 *)(v5 + v8);
v11 = AslComputeCrc32(0i64, v7, 0x1000ui64);
*a1 = AslComputeCrc32(v11, v10, v12);
return 0i64;
}
else
{
AslLogCallPrintf(0i64, "AslpFileLargeGetCrcChecksum", 0x376ui64, "FileSize : %I64u", v4);
AslLogCallPrintf(
0i64,
"AslpFileLargeGetCrcChecksum",
0x377ui64,
"CrcFileStart : %I64u",
*(_QWORD *)(*a2 + 16i64) - 4096i64);
AslLogCallPrintf(0i64, "AslpFileLargeGetCrcChecksum", 0x378ui64, "ViewFileOffset: %I64u", a2[8]);
LODWORD(v13) = *((_DWORD *)a2 + 14);
AslLogCallPrintf(0i64, "AslpFileLargeGetCrcChecksum", 0x379ui64, "ViewFileSize : %u", v13);
AslLogCallPrintf(0i64, "AslpFileLargeGetCrcChecksum", 0x37Aui64, "CrcViewOffset : %I64u", v8);
AslLogCallPrintf(
1ui64,
"AslpFileLargeGetCrcChecksum",
0x37Eui64,
"Alignment error in the end of file view for CRC checksum");
return 3221226016i64;
}
}Referenced by:
AslpFileLargeGetChecksumAttributes