KsepMatchInitBiosInfo
NTSTATUS __stdcall KsepMatchInitBiosInfo(
tagSDBDEVICEINFO *BiosInfo,
__n128 *a2,
__n128 *a3,
__n128 *a4,
__n128 *a5,
__n128 *a6,
__n128 *a7,
__n128 *a8,
__n128 *a9,
INT64 a10,
INT64 a11,
INT64 a12,
INT64 a13,
INT64 a14,
INT64 a15,
INT64 a16){
int v16;
NTSTATUS v17;
VOID *v18;
int SZ;
__int64 v20;
_WORD *v21;
unsigned __int64 v22;
unsigned int v23;
unsigned int v24;
int v25;
PVOID Handle;
UINT64 ActualLength;
WCHAR v29[3];
WCHAR v30[3];
WCHAR nptr[6];
ActualLength = 0i64;
Handle = 0i64;
xmmword_140C53F70 = 0i64;
qword_140C53FA0 = 0i64;
v16 = -1;
xmmword_140C53F80 = 0i64;
xmmword_140C53F90 = 0i64;
v17 = KsepRegistryOpenKey((PWCHAR)L"\\Registry\\Machine\\Hardware\\Description\\System", 0i64, &Handle);
v18 = Handle;
SZ = v17;
if( v17 >= 0 )
{
SZ = KsepRegistryQuerySZ((_HANDLE)Handle, L"SystemBiosDate", 1i64, (INT64)v29);
if( SZ >= 0 )
{
nptr[4] = 0;
KsepHistoryMessages[((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryMessagesIndex, 1u) + 1) & 0x3F] = 655816i64;
if( (KsepDebugFlag & 1) != 0 )
KsepDebugPrint(0i64, "KSE: BiosDate name [%ws] .\n", v29);
KsepLogInfo(0, "KSE: BiosDate name [%ws] .\n", v29);
SZ = KsepRegistryQueryMULTISZ(Handle, (WCHAR *)L"SystemBiosVersion", &unk_140C53D30, 0x208ui64, &ActualLength);
word_140C53F36 = 0;
v20 = 0i64;
v21 = &unk_140C53D30;
while( *v21 != 32 )
{
v20 = (unsigned int)(v20 + 1);
++v21;
if( (unsigned int)v20 >= 0x104 )
goto LABEL_11;
}
v22 = 2 * v20;
if( v22 >= 0x208 )
_report_rangecheckfailure();
*(_WORD *)((char *)&unk_140C53D30 + v22) = 0;
LABEL_11:
KsepHistoryMessages[((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryMessagesIndex, 1u) + 1) & 0x3F] = 655840i64;
if( (KsepDebugFlag & 1) != 0 )
KsepDebugPrint(0i64, "KSE: BiosVendor name [%ws] .\n", &unk_140C53D30);
KsepLogInfo(0, "KSE: BiosVendor name [%ws] .\n", &unk_140C53D30);
v29[2] = 0;
v30[2] = 0;
v23 = wcstoul(nptr, 0i64, 16i64);
v24 = (unsigned int)wcstoul(v29, 0i64, 16i64) << 8;
v25 = v24 + wcstoul(v30, 0i64, 16i64);
v18 = Handle;
v16 = v25 + ((v23 + (v23 < 0x80 ? 0x2000 : 6400)) << 16);
}
}
if( v18 )
KsepRegistryCloseKey(v18);
if( SZ < 0 )
{
DWORD2(xmmword_140C53F90) = -1;
*(_QWORD *)&xmmword_140C53F70 = 0i64;
}
else
{
*(_QWORD *)&xmmword_140C53F70 = &unk_140C53D30;
DWORD2(xmmword_140C53F90) = v16;
}
return SZ;
}Referenced by:
No references.