KiBugCheckConvertParameterValueToUnicodeString

INT16 __fastcall KiBugCheckConvertParameterValueToUnicodeString(UINT64 a1, INT64 a2){
  _DWORD *v2; 
  int v4; 
  _WORD *v5; 
  unsigned int i; 
  unsigned __int16 v7; 
  __int64 v8; 
  _WORD *v9; 
  INT16 result; 
  v2 = *(_DWORD **)(a2 + 8);
  v4 = *(unsigned __int16 *)(a2 + 2) >> 1;
  if( v4 == 19 )
  {
    *v2 = 7864368;
    v5 = v2 + 1;
    for( i = 0; i < 0x40; i += 4 )
    {
      v7 = (a1 >> (60 - (unsigned __int8)i)) & 0xF;
      *v5++ = v7 + (v7 < 0xAu ? 48 : 55);
    }
  }
  else if( v4 != 1 )
  {
    v8 = (unsigned int)(v4 - 1);
    v9 = *(_WORD **)(a2 + 8);
    while( v8 )
    {
      *v9++ = 45;
      --v8;
    }
  }
  *((_WORD *)v2 + (unsigned int)(v4 - 1)) = 0;
  result = *(_WORD *)(a2 + 2) - 2;
  *(_WORD *)a2 = result;
  return result;
}

Referenced by:

KiDisplayBlueScreen