CmpExpandPathInfo

NTSTATUS __stdcall CmpExpandPathInfo(
        PVOID Context,
        UINT64 ProcessorState,
        UINT64 PlatformState,
        UINT64 CoordinatedSelectionCount,
        UINT64 *CoordinatedSelection){
  struct _KPRCB *CurrentPrcb; 
  __int64 v7; 
  NTSTATUS v8; 
  PSLIST_ENTRY v9; 
  __int64 v11; 
  __int64 v12; 
  __int64(__fastcall *v13)(__int64, __int64, __int64); 
  __int64 v14; 
  __int64 v15; 
  CurrentPrcb = KeGetCurrentPrcb();
  v7 = *((_QWORD *)CurrentPrcb + 272);
  ++*(_DWORD *)(v7 + 20);
  v8 = 0;
  v9 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)v7);
  if( v9 )
    goto LABEL_2;
  ++*(_DWORD *)(v7 + 24);
  v11 = *((_QWORD *)CurrentPrcb + 273);
  ++*(_DWORD *)(v11 + 20);
  v9 = RtlpInterlockedPopEntrySList((PSLIST_HEADER)v11);
  if( !v9 )
  {
    v12 = *(unsigned int *)(v11 + 44);
    v13 = *(__int64(__fastcall **)(__int64, __int64, __int64))(v11 + 48);
    v14 = *(unsigned int *)(v11 + 40);
    v15 = *(unsigned int *)(v11 + 36);
    ++*(_DWORD *)(v11 + 24);
    v9 = (PSLIST_ENTRY)v13(v15, v12, v14);
    if( !v9 )
      return -1073741670;
  }
LABEL_2:
  memset((INT64)v9, 0i64);
  *((_QWORD *)Context + 20) = v9;
  return v8;
}

Referenced by:

CmpComputeComponentHashes