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