PnpCtxFindNode

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

Referenced by:

PnpCtxRegisterMachineNode