CmpCheckCreateAccessOnKcbStack
UINT8 __fastcall CmpCheckCreateAccessOnKcbStack(
__int64 a1,
__int64 a2,
__int64 a3,
INT64 a4,
char a5,
int a6,
char a7,
__int64 a8,
int *a9){
_LIST_ENTRY *SecurityCacheEntryForKcbStack;
UINT64 v12;
_LIST_ENTRY *v13;
char v14;
VOID *v15;
INT64 *AccessStatus;
SecurityCacheEntryForKcbStack = CmpGetSecurityCacheEntryForKcbStack(a2, a8, a3);
v13 = SecurityCacheEntryForKcbStack;
v14 = 1;
if( a7 && (int)CmpSetAccessStateForBackupRestore(a4, a5, &SecurityCacheEntryForKcbStack[2], 1) < 0
|| (v15 = (VOID *)(a6 | *(_DWORD *)(a4 + 24) | 4u), ((unsigned int)v15 & *(_DWORD *)(a3 + 96)) != (_DWORD)v15) )
{
v14 = 0;
*a9 = -1073741790;
}
else if( !a7 || *(_DWORD *)(a4 + 16) )
{
LOBYTE(v12) = a5;
LODWORD(AccessStatus) = a6;
return CmpCheckCreateAccess(v15, (ACCESS_STATE *)&v13[2], a4, v12, AccessStatus);
}
else
{
*a9 = 0;
}
return v14;
}Referenced by:
CmpDoParseKey