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