DbgkpLkmdSnapObject
NTSTATUS __stdcall DbgkpLkmdSnapObject(_DUMP_FILE_DESCRIPTOR *DumpFile, VOID *Object, UINT64 ObjectType){
_QWORD *v3;
_QWORD *v5;
int v6;
__int64 v7;
NTSTATUS result;
int v9;
__int64 v10;
__int64 v11;
v3 = 0i64;
v5 = 0i64;
v6 = ObjectType;
if( (_DWORD)ObjectType == 3 )
{
if( *(_WORD *)Object != 3 )
return -1073741819;
v7 = *((unsigned __int16 *)Object + 1);
}
else
{
if( (_DWORD)ObjectType != 4 )
{
if( (_DWORD)ObjectType == 5 )
{
v3 = Object;
if( *(_WORD *)Object == 5 )
{
v7 = 216i64;
goto LABEL_11;
}
}
return -1073741819;
}
v5 = Object;
if( *(_WORD *)Object != 4 )
return -1073741819;
v7 = 336i64;
}
LABEL_11:
result = (*((__int64(__fastcall **)(_DUMP_FILE_DESCRIPTOR *, VOID *, __int64, _QWORD, _QWORD, _QWORD))DumpFile + 1288))(
DumpFile + 2560,
Object,
v7,
0i64,
0i64,
0i64);
if( result < 0 )
return result;
v9 = v6 - 4;
if( v9 )
{
if( v9 != 1 )
return result;
v10 = *((unsigned __int16 *)v3 + 45);
v11 = v3[12];
}
else
{
v10 = *((unsigned __int16 *)v5 + 29);
v11 = v5[8];
}
return(*((__int64(__fastcall **)(_DUMP_FILE_DESCRIPTOR *, __int64, __int64, _QWORD, _QWORD, _QWORD))DumpFile + 1288))(
DumpFile + 2560,
v11,
v10,
0i64,
0i64,
0i64);
}Referenced by:
DbgkpLkmdSnapPendingIrps