SshpQueryRegistryValues
NTSTATUS __stdcall SshpQueryRegistryValues(){
_KEXCEPTION_FRAME *p_pszDest;
__int64 v1;
__int16 v2;
_KEXCEPTION_FRAME *v3;
int v4;
bool v5;
int v6;
__int64 v7;
_KEXCEPTION_FRAME *v8;
__int16 v9;
_KEXCEPTION_FRAME *v10;
int v11;
NTSTATUS result;
INT64 a6;
INT64 a6a;
NTSTATUS v15;
INT64 a7;
__int64 v17[14];
_KEXCEPTION_FRAME pszDest;
__int16 pszSrc[264];
LODWORD(a6) = 520;
v15 = 0;
if( RtlGetPersistedStateLocation(
(WCHAR *)L"SleepStudySettings",
0i64,
L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power",
0i64,
pszSrc,
a6,
(INT64)&a7) < 0 )
goto LABEL_11;
p_pszDest = &pszDest;
v1 = 260i64;
do
{
if( v1 == -2147483386 )
break;
v2 = *(_WORD *)((char *)&p_pszDest->P1Home + (char *)L"\\Registry\\Machine\\" - (char *)&pszDest);
if( !v2 )
break;
LOWORD(p_pszDest->P1Home) = v2;
p_pszDest = (_KEXCEPTION_FRAME *)((char *)p_pszDest + 2);
--v1;
}
while( v1 );
v3 = (_KEXCEPTION_FRAME *)((char *)p_pszDest - 2);
if( v1 )
v3 = p_pszDest;
LOWORD(v3->P1Home) = 0;
if( !v1 )
goto LABEL_11;
if( RtlStringCchCatW((WCHAR *)&pszDest, 0x104ui64, (WCHAR *)pszSrc) < 0 )
goto LABEL_11;
memset(v17, 0i64, sizeof(v17));
LODWORD(v17[1]) = 292;
v17[2] = (__int64)L"SleepstudyActiveThresholdPercent";
LODWORD(v17[4]) = 0x4000000;
v17[3] = (__int64)&v15;
LOBYTE(v4) = RtlpQueryRegistryValues(0i64, &pszDest);
v5 = v4 < 0;
v6 = v15;
if( v5 )
LABEL_11:
v6 = 1;
SshpActiveThresholdPercent = v6;
v15 = 0;
LODWORD(a6a) = 520;
if( RtlGetPersistedStateLocation(
(WCHAR *)L"SleepStudySettings",
0i64,
L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power",
0i64,
pszSrc,
a6a,
(INT64)&a7) < 0 )
goto LABEL_22;
v7 = 260i64;
v8 = &pszDest;
do
{
if( v7 == -2147483386 )
break;
v9 = *(_WORD *)((char *)&v8->P1Home + (char *)L"\\Registry\\Machine\\" - (char *)&pszDest);
if( !v9 )
break;
LOWORD(v8->P1Home) = v9;
v8 = (_KEXCEPTION_FRAME *)((char *)v8 + 2);
--v7;
}
while( v7 );
v10 = (_KEXCEPTION_FRAME *)((char *)v8 - 2);
if( v7 )
v10 = v8;
LOWORD(v10->P1Home) = 0;
if( !v7 )
goto LABEL_22;
if( RtlStringCchCatW((WCHAR *)&pszDest, 0x104ui64, (WCHAR *)pszSrc) < 0 )
goto LABEL_22;
memset(v17, 0i64, sizeof(v17));
LODWORD(v17[1]) = 292;
v17[2] = (__int64)L"SleepStudySessionThresholdSeconds";
LODWORD(v17[4]) = 0x4000000;
v17[3] = (__int64)&v15;
LOBYTE(v11) = RtlpQueryRegistryValues(0i64, &pszDest);
v5 = v11 < 0;
result = v15;
if( v5 )
LABEL_22:
result = 600;
SshpSessionThresholdHns = (unsigned int)(10000000 * result);
return result;
}Referenced by:
SshInitialize
SshpWnfCallback