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