SshpQueryRegistryValues
INT64 __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;
INT64 v12;
UINT64 v13;
UINT64 v14;
unsigned int v15;
UINT64 v16;
INT64 result;
__int64 v18;
const wchar_t *v19;
unsigned int *v20;
int v21;
_KEXCEPTION_FRAME pszDest;
wchar_t pszSrc[264];
LODWORD(v13) = 520;
v15 = 0;
if( (int)RtlGetPersistedStateLocation(
(WCHAR *)L"SleepStudySettings",
0i64,
L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power",
0i64,
pszSrc,
v13,
&v16) < 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((PWCHAR)&pszDest, 0x104ui64, pszSrc) < 0 )
goto LABEL_11;
memset((INT64)&result, 0i64);
LODWORD(v18) = 292;
v19 = L"SleepstudyActiveThresholdPercent";
v21 = 0x4000000;
v20 = &v15;
LOBYTE(v4) = RtlpQueryRegistryValues(0i64, &pszDest);
v5 = v4 < 0;
v6 = v15;
if( v5 )
LABEL_11:
v6 = 1;
SshpActiveThresholdPercent = v6;
v15 = 0;
LODWORD(v14) = 520;
if( (int)RtlGetPersistedStateLocation(
(WCHAR *)L"SleepStudySettings",
0i64,
L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Power",
0i64,
pszSrc,
v14,
&v16) < 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((PWCHAR)&pszDest, 0x104ui64, pszSrc) < 0 )
goto LABEL_22;
memset((INT64)&result, 0i64);
LODWORD(v18) = 292;
v19 = L"SleepStudySessionThresholdSeconds";
v21 = 0x4000000;
v20 = &v15;
LOBYTE(v11) = RtlpQueryRegistryValues(0i64, &pszDest);
v5 = v11 < 0;
v12 = v15;
if( v5 )
LABEL_22:
v12 = 600i64;
SshpSessionThresholdHns = (unsigned int)(10000000 * v12);
return v12;
}Referenced by:
SshInitialize
SshpWnfCallback