PnpCtxFindNode

NTSTATUS __fastcall PnpCtxFindNode(INT64 a1, WCHAR *a2, INT64 a3, _UNICODE_STRING **a4){
  __int64 v5; 
  const _UNICODE_STRING **v7; 
  const _UNICODE_STRING *i; 
  _UNICODE_STRING **v9; 
  _UNICODE_STRING *j; 
  _UNICODE_STRING String2; 

  *a4 = 0i64;
  v5 = (int)a3;
  String2 = 0i64;
  RtlInitUnicodeString(&String2, a2);
  if( (_DWORD)v5 )
  {
    v7 = (const _UNICODE_STRING **)(16 * v5 + a1 + 24);
    for( i = *v7; i != (const _UNICODE_STRING *)v7; i = *(const _UNICODE_STRING **)&i->Length )
    {
      if( (unsigned __int8)RtlEqualUnicodeString(i + 1, &String2, 1u) )
      {
        *a4 = (_UNICODE_STRING *)&i[-1];
        return *a4 == 0i64 ? 0xC0000034 : 0;
      }
    }
  }
  else
  {
    v9 = (_UNICODE_STRING **)(a1 + 8);
    for( j = *v9; j != (_UNICODE_STRING *)v9; j = *(_UNICODE_STRING **)&j->Length )
    {
      if( (unsigned __int8)RtlEqualUnicodeString(j + 2, &String2, 1u) )
      {
        *a4 = j;
        return *a4 == 0i64 ? 0xC0000034 : 0;
      }
    }
  }
  return *a4 == 0i64 ? 0xC0000034 : 0;
}

Referenced by:

PnpCtxRegisterMachineNode