LkmdTelpWriteDumpFile
NTSTATUS __stdcall LkmdTelpWriteDumpFile(INT64 a1){
__int64 v2;
int v3;
int v4;
int v5;
__int128 v6;
_IO_STATUS_BLOCK IoStatusBlock;
__int64 FileHandle;
v2 = *(_QWORD *)(a1 + 96);
IoStatusBlock = 0i64;
FileHandle = 0i64;
v3 = WerLiveKernelOpenDumpFile(v2, &FileHandle);
v4 = v3;
if( v3 >= 0 )
{
v5 = *(_DWORD *)(a1 + 24);
if( v5 && *(_QWORD *)(a1 + 16) )
{
*(_QWORD *)(*(_QWORD *)a1 + 4000i64) = (unsigned int)(v5 + 262192);
*(_DWORD *)(a1 + 44) = 1886221636;
*(_DWORD *)(a1 + 48) = 1651469378;
*(_DWORD *)(a1 + 52) = 16;
*(_DWORD *)(a1 + 56) = NtBuildNumber;
*(_DWORD *)(a1 + 60) = 32;
v6 = *(_OWORD *)(a1 + 28);
*(_QWORD *)(a1 + 84) = 0i64;
*(_OWORD *)(a1 + 64) = v6;
*(_DWORD *)(a1 + 80) = *(_DWORD *)(a1 + 24);
}
v4 = ZwWriteFile(FileHandle, 0, 0i64, 0i64, &IoStatusBlock, *(PVOID *)a1, *(_DWORD *)(a1 + 8), 0i64, 0i64);
if( v4 >= 0 )
{
if( *(_DWORD *)(a1 + 24) )
{
v4 = ZwWriteFile(FileHandle, 0, 0i64, 0i64, &IoStatusBlock, (PVOID)(a1 + 44), 0x10u, 0i64, 0i64);
if( v4 >= 0 )
{
v4 = ZwWriteFile(FileHandle, 0, 0i64, 0i64, &IoStatusBlock, (PVOID)(a1 + 60), 0x20u, 0i64, 0i64);
if( v4 >= 0 )
v4 = ZwWriteFile(
FileHandle,
0,
0i64,
0i64,
&IoStatusBlock,
*(PVOID *)(a1 + 16),
*(_DWORD *)(a1 + 24),
0i64,
0i64);
}
}
}
}
else
{
DbgPrintEx(
5u,
0,
"LKMDTEL: LkmdTelpWriteDumpFile: WerLiveKernelOpenDumpFile failed, status 0x%X\n",
(unsigned int)v3);
}
if( FileHandle )
ZwClose(FileHandle);
return v4;
}Referenced by:
LkmdTelSubmitReport