HalpWdatProcessWdrtInternalData

NTSTATUS __fastcall HalpWdatProcessWdrtInternalData(__int64 a1, _DWORD *a2, _DWORD *a3, _BYTE *a4){
  unsigned int v5; 
  int v7; 
  int v8; 
  NTSTATUS result; 
  LARGE_INTEGER v10; 
  INT64 v11[2]; 
  __int128 v12; 
  __int64 v13; 
  v13 = 0i64;
  v5 = *(unsigned __int16 *)(a1 + 68);
  a2[5] = 1;
  *(_OWORD *)v11 = 0i64;
  if( v5 < 0x1FF )
    v5 = 511;
  a2[4] = v5;
  v7 = *(unsigned __int8 *)(a1 + 70);
  v12 = 0i64;
  if( v7 )
  {
    v8 = v7 - 1;
    if( v8 )
    {
      if( v8 != 1 )
        return -1073741811;
      a2[6] = 10;
    }
    else
    {
      a2[6] = 100;
    }
  }
  else
  {
    a2[6] = 1000;
  }
  v10 = *(LARGE_INTEGER *)(a1 + 40);
  *a3 = 1072;
  result = WdHwCreateHardwareRegister(v10);
  if( result >= 0 )
  {
    (*((void(__fastcall **)(_QWORD))&v12 + 1))(v12);
    WdHwDestroyHardwareRegister((INT64)v11);
    result = 0;
    *a4 = 1;
  }
  else
  {
    *a4 = 0;
  }
  return result;
}

Referenced by:

HalpWdatDiscover