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