DrvDbRegisterObjects

NTSTATUS __stdcall DrvDbRegisterObjects(HPNPCTX *hPnpCtx, _DRVDB_CONTEXT *pDrvDbCtx){
  __int64 *v3; 
  unsigned int i; 
  __int64 v5; 
  NTSTATUS v6; 
  __int64 v7; 

  v3 = &qword_1400082F0;
  for( i = 0; i < 5; ++i )
  {
    v5 = *(int *)v3;
    v6 = 0;
    if( (unsigned int)(v5 - 1) > 0xA )
      v6 = -1073741811;
    else
      _InterlockedExchange64((volatile __int64 *)&hPnpCtx[2 * v5 + 74], v3[1]);
    if( v6 < 0 )
      break;
    v7 = *(int *)v3;
    v6 = 0;
    if( (unsigned int)(v7 - 1) > 0xA )
      v6 = -1073741811;
    else
      _InterlockedExchange64((volatile __int64 *)&hPnpCtx[2 * v7 + 98], (__int64)pDrvDbCtx);
    if( v6 < 0 )
      break;
    v3 += 2;
  }
  return v6;
}

Referenced by:

DrvDbOpenContext