AslpFileQuery16BitDescription
__int64 __fastcall AslpFileQuery16BitDescription(void *a1, __int64 a2){
unsigned int v3;
__int64 v4;
__int64 v5;
unsigned __int64 v6;
__int64 v7;
__int64 v8;
UINT64 v9;
UINT64 v10;
v3 = 0;
*(_BYTE *)a1 = 0;
if( *(_DWORD *)(a2 + 64) == 5 )
{
v4 = *(_QWORD *)(a2 + 32);
v5 = *(int *)(v4 + 60);
v6 = *(_QWORD *)(a2 + 24);
if( v6 < v5 + 64 || (v7 = *(int *)(v5 + v4 + 44), v6 < v7 + 1) )
{
v10 = 3449i64;
}
else
{
v8 = *(unsigned __int8 *)(v7 + v4);
if( *(_BYTE *)(v7 + v4) && (unsigned int)(v8 + 1) <= 0x100 )
{
v9 = *(unsigned __int8 *)(v7 + v4);
if( v6 >= v8 + v7 + 1 )
{
memmove((UINT8 *)a1, (UINT8 *)(v7 + v4 + 1), v9);
*((_BYTE *)a1 + v9) = 0;
return v3;
}
v10 = 3464i64;
}
else
{
v10 = 3458i64;
}
}
v3 = -1073741701;
AslLogCallPrintf(1ui64, "AslpFileQuery16BitDescription", v10, "File mapping invalid");
return v3;
}
return(unsigned int)-1073741637;
}Referenced by:
AslpFileGet16BitDescription