KiBugCheckProgress

VOID __fastcall KiBugCheckProgress(UINT64 ProgressPercentage){
  unsigned int v1; 
  bool v2; 
  UINT64 v3; 
  WCHAR *v4; 
  _UNICODE_STRING *ProgressContext[2]; 
  INT64 v6[2]; 
  WCHAR *String; 
  char v8; 

  *(_OWORD *)v6 = 0i64;
  v1 = ProgressPercentage;
  v2 = dword_140C508EC != 0;
  WORD1(v6[1]) = 8;
  String = (WCHAR *)&v8;
  *(_OWORD *)ProgressContext = 0i64;
  BgpFwAcquireLock();
  if( (*(&SbiVmbusArrivalEvent + 368) & 2) != 0 )
    BgpFwDisplayBugCheckProgressUpdate(v1, ProgressContext, v2);
  BgpFwReleaseLock();
  if( v1 )
  {
    KiHeadlessDisplayString((WCHAR *)L"\r\x1B[0K\r", 0xEui64);
    if( ProgressContext[0] && ProgressContext[1] && v6[0] )
    {
      KiHeadlessDisplayString(ProgressContext[0]->Buffer, ProgressContext[0]->Length);
      KiHeadlessDisplayString((WCHAR *)L" ", 4ui64);
      KiHeadlessDisplayString(ProgressContext[1]->Buffer, ProgressContext[1]->Length);
      KiHeadlessDisplayString(String, LOWORD(v6[1]));
      v3 = *(unsigned __int16 *)v6[0];
      v4 = *(WCHAR **)(v6[0] + 8);
    }
    else
    {
      KiBugCheckConvertProgressValueToUnicodeString(v1, (INT64)&v6[1]);
      KiHeadlessDisplayString(String, LOWORD(v6[1]));
      v3 = 4i64;
      v4 = (WCHAR *)L"%";
    }
    KiHeadlessDisplayString(v4, v3);
  }
  if( v1 == 100 )
    KiHeadlessDisplayString((WCHAR *)L"\r\n", 6ui64);
}

Referenced by:

No references.