RtlRestoreBootStatusDefaults

NTSTATUS __stdcall RtlRestoreBootStatusDefaults(_HANDLE FileHandle){
  __int64 v1; 
  const __m128i *v2; 
  __m128i v3; 
  __int64 v4; 
  __m128i v5; 
  __m128i v6; 
  __m128i v7; 
  __m128i v8; 
  int v9; 
  _OWORD *v10; 
  _OWORD *v11; 
  _LARGE_INTEGER ByteOffset; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _BYTE Buffer[176]; 

  v1 = *(_QWORD *)&FileHandle;
  IoStatusBlock = 0i64;
  memset(&Buffer[4], 0i64, 0xACu);
  *(_DWORD *)Buffer = 176;
  RtlGetNtProductType((_NT_PRODUCT_TYPE *)&Buffer[4]);
  *(_DWORD *)&Buffer[168] = 0;
  v2 = (const __m128i *)Buffer;
  v3 = 0i64;
  *(_WORD *)&Buffer[9] = 286;
  v4 = 11i64;
  Buffer[49] = 1;
  Buffer[11] = 0;
  do
  {
    v5 = _mm_loadu_si128(v2++);
    v3 = _mm_sub_epi8(v3, v5);
    --v4;
  }
  while( v4 );
  ByteOffset.QuadPart = 0i64;
  v6 = _mm_add_epi8(v3, _mm_srli_si128(v3, 8));
  v7 = _mm_add_epi8(v6, _mm_srli_si128(v6, 4));
  v8 = _mm_add_epi8(v7, _mm_srli_si128(v7, 2));
  Buffer[50] = _mm_cvtsi128_si32(_mm_add_epi8(v8, _mm_srli_si128(v8, 1)));
  RtlpRecordBootStatusData(0, (__int64)Buffer, 0i64, 176i64);
  v9 = ZwWriteFile(v1, 0, 0i64, 0i64, &IoStatusBlock, Buffer, 0xB0u, &ByteOffset, 0i64);
  if( v9 >= 0 )
  {
    if( BootStatFileHandleAcquired )
    {
      if( *(_QWORD *)&BootStatFileHandle == v1 )
      {
        v10 = BootStatDataCache;
        if( BootStatDataCache )
        {
          *(_OWORD *)BootStatDataCache = *(_OWORD *)Buffer;
          v10[1] = *(_OWORD *)&Buffer[16];
          v10[2] = *(_OWORD *)&Buffer[32];
          v10[3] = *(_OWORD *)&Buffer[48];
          v10[4] = *(_OWORD *)&Buffer[64];
          v10[5] = *(_OWORD *)&Buffer[80];
          v10[6] = *(_OWORD *)&Buffer[96];
          v11 = v10 + 8;
          *(v11 - 1) = *(_OWORD *)&Buffer[112];
          *v11 = *(_OWORD *)&Buffer[128];
          v11[1] = *(_OWORD *)&Buffer[144];
          v11[2] = *(_OWORD *)&Buffer[160];
        }
      }
    }
  }
  return v9;
}

Referenced by:

No references.