SepAdtCopyToLsaSharedMemory
INT64 __stdcall SepAdtCopyToLsaSharedMemory(
VOID *LsaProcessHandle,
VOID *Buffer,
UINT64 BufferLength,
VOID **LsaBufferAddress){
__int64 v5;
int v7;
PSIZE_T NumberOfBytesWritten;
UINT64 v10;
PVOID BaseAddress;
ULONG_PTR RegionSize;
__int64 v13[2];
BaseAddress = 0i64;
v13[0] = 0i64;
v5 = (unsigned int)BufferLength;
LODWORD(v10) = 4;
RegionSize = (unsigned int)BufferLength;
LODWORD(NumberOfBytesWritten) = 4096;
v7 = ZwAllocateVirtualMemory(LsaProcessHandle, &BaseAddress, 0i64, &RegionSize, (UINT64)NumberOfBytesWritten, v10);
if( v7 >= 0 )
{
v7 = ZwWriteVirtualMemory((KEVENT *)LsaProcessHandle);
if( v7 >= 0 )
{
if( v5 == v13[0] )
{
*LsaBufferAddress = BaseAddress;
return(unsigned int)v7;
}
v7 = -1073741823;
}
RegionSize = 0i64;
ZwFreeVirtualMemory(LsaProcessHandle, &BaseAddress, &RegionSize, 0x8000ui64);
}
return(unsigned int)v7;
}Referenced by:
SepRmDispatchDataToLsa