PnpCreateObject

__int64 __fastcall PnpCreateObject(__int64 a1, UINT64 a2, unsigned int a3, int a4, VOID **a5){
  WCHAR *v5; 
  __int64(__fastcall *v9)(WCHAR *, UINT64, _QWORD, __int64, int, VOID **); 
  int v10; 
  int ObjectDispatch; 
  int v12; 
  int v14; 
  int v15; 
  int v16; 
  VOID *v17[10]; 

  v5 = (WCHAR *)*(&stru_140CF2E80 + 607);
  memset(v17, 0i64, sizeof(v17));
  v9 = *(__int64(__fastcall **)(WCHAR *, UINT64, _QWORD, __int64, int, VOID **))(*(&stru_140CF2E80 + 607) + 488i64);
  if( a4 || (LODWORD(v17[2]) = 1, a5) )
    LODWORD(v17[2]) = a4;
  HIDWORD(v17[4]) = 0;
  if( v9 )
  {
    v10 = v9((WCHAR *)*(&stru_140CF2E80 + 607), a2, a3, 3i64, 1, v17);
    if( v10 == -1073741822 )
    {
      v9 = 0i64;
    }
    else
    {
      if( v10 == -1073741536 )
        goto LABEL_18;
      if( v10 )
      {
        v12 = -1073741595;
        goto LABEL_16;
      }
    }
  }
  ObjectDispatch = PnpCreateObjectDispatch(
                     v5,
                     a2,
                     (VOID *)a3,
                     (int)v17[2],
                     (__int64)&v17[3],
                     (__int64)&v17[4],
                     SHIDWORD(v17[4]));
  v12 = ObjectDispatch;
  if( !v9 )
    goto LABEL_7;
  LODWORD(v17[0]) = ObjectDispatch;
  v14 = v9(v5, a2, a3, 3i64, 2, v17);
  v15 = v14;
  if( v14 == -1073741822 )
    goto LABEL_7;
  if( v14 == -1073741536 )
  {
LABEL_18:
    v12 = (int)v17[0];
    goto LABEL_7;
  }
  v16 = v12;
  if( v15 )
    v16 = -1073741595;
  v12 = v16;
LABEL_7:
  if( v12 >= 0 && a5 )
  {
    *a5 = v17[3];
    return(unsigned int)v12;
  }
LABEL_16:
  if( v17[3] )
    ZwClose((_HANDLE)v17[3]);
  return(unsigned int)v12;
}

Referenced by:

PiCMCreateObject
PiCMOpenObjectKey