DbgkpLkmdSnapKernelStack

__int64 __fastcall DbgkpLkmdSnapKernelStack(__int64 a1, _QWORD *a2, __int64 a3, char a4, __int64 *a5, __int64 a6){
  __int64 v10; 
  INT64 *v11; 
  __int64 v13[2]; 
  char v14; 
  int v15; 
  __int16 v16; 
  char v17; 
  __int64 v18; 
  INT64 result[8]; 
  INT64 v20[154]; 
  v15 = 0;
  v16 = 0;
  v17 = 0;
  memset((INT64)result, 0i64);
  if( a5 )
    v10 = a5[19];
  else
    v10 = *(_QWORD *)(a3 + 88);
  if( !a5 && a4 )
  {
    memset((INT64)v20, 0i64);
    v20[19] = v10;
    v20[20] = v10;
  }
  v13[0] = a1;
  v13[1] = v10;
  v14 = a4;
  v18 = a6;
  KeEnumerateKernelStackSegments(
    a2,
    (__int64(__fastcall *)(__int64, __int128 *, __int64))DbgkpLkmdSnapKernelStackSegmentCallback,
    (__int64)v13);
  if( a4 )
  {
    v11 = v20;
    if( a5 )
      v11 = a5;
    result[7] = v11[31];
    result[6] = v11[20];
    (*(void(__fastcall **)(__int64, INT64 *, __int64))(a1 + 10304))(a1 + 10240, result, 64i64);
    *(_QWORD *)(a3 + 88) = v10 - 64;
    *(_BYTE *)(a3 + 388) = -1;
  }
  return 0i64;
}

Referenced by:

DbgkpLkmdSnapThreadInContext