VslReportBugCheckProgress

VOID __stdcall VslReportBugCheckProgress(){
  __int128 *v0; 
  char *v1; 
  const VOID *v2; 
  unsigned int v3; 
  const VOID *v4; 
  INT64 v5; 
  __int128 *v6; 
  char *v7; 
  unsigned int v8; 
  wchar_t **v9; 
  unsigned __int16 *v10; 
  int v11; 
  int v12; 
  __int128 v13; 
  __int128 v14; 
  INT64 v15[14]; 
  int v16; 

  v4 = v2;
  v5 = v3;
  v6 = v0;
  v7 = v1;
  if( (v16 & 1) != 0 && v3 <= 8 )
  {
    memset(v15, 0i64, 0x68u);
    v8 = 0;
    v9 = IumBugCheckVariables;
    while( 1 )
    {
      v10 = (unsigned __int16 *)v7;
      do
      {
        v11 = *(unsigned __int16 *)((char *)v10 + (char *)*v9 - v7);
        v12 = *v10 - v11;
        if( v12 )
          break;
        ++v10;
      }
      while( v11 );
      if( !v12 )
        break;
      ++v8;
      ++v9;
      if( v8 >= 4 )
        goto LABEL_11;
    }
    v15[1] = v8;
LABEL_11:
    if( v8 != 4 )
    {
      v13 = *v6;
      memset(&v15[4], 0, 24);
      *(_OWORD *)&v15[2] = v13;
      if( (v16 & 0x40) == 0 )
        VslpEnterIumSecureMode(2u, 261, 0i64, (INT64)v15);
      if( (_DWORD)v5 )
      {
        memmove(&v15[4], v4, v5);
        v14 = *v6;
        v15[1] = v8;
        v15[6] = v16 | 6u;
        *(_OWORD *)&v15[2] = v14;
        v15[5] = v5;
        VslpEnterIumSecureMode(2u, 261, 0i64, (INT64)v15);
      }
    }
  }
}

Referenced by:

PopCheckpointSystemSleepUnsafe