KsepCacheDeviceInsertData
__int64 __fastcall KsepCacheDeviceInsertData(__int64 a1, wchar_t *a2, const VOID *a3, int a4, size_t Size){
_UNICODE_STRING *Paged;
_UNICODE_STRING *v10;
NTSTATUS v11;
wchar_t *v12;
_UNICODE_STRING **v13;
Paged = (_UNICODE_STRING *)KsepPoolAllocatePaged(0x30ui64);
v10 = Paged;
if( Paged )
{
v11 = KsepStringDuplicate(Paged + 1, a2);
if( v11 >= 0 )
{
v12 = (wchar_t *)KsepPoolAllocatePaged(Size);
v10[2].Buffer = v12;
if( v12 )
{
memmove(v12, a3, Size);
*(_DWORD *)(&v10[2].MaximumLength + 1) = a4;
*(_DWORD *)&v10[2].Length = Size;
v13 = *(_UNICODE_STRING ***)(a1 + 64);
if( *v13 != (_UNICODE_STRING *)(a1 + 56) )
__fastfail(3u);
*(_QWORD *)&v10->Length = a1 + 56;
v10->Buffer = (wchar_t *)v13;
*v13 = v10;
*(_QWORD *)(a1 + 64) = v10;
v10 = 0i64;
v11 = 0;
}
else
{
v11 = -1073741801;
}
}
if( v10 )
{
KsepStringFree(v10 + 1);
KsepPoolFreePaged(v10[2].Buffer);
KsepPoolFreePaged(v10);
}
}
else
{
return(unsigned int)-1073741801;
}
return(unsigned int)v11;
}Referenced by:
KsepDbCacheReadDeviceInternal