RtlGetSetBootStatusData

NTSTATUS __stdcall RtlGetSetBootStatusData(
        VOID *Handle,
        UINT8 Get,
        _RTL_BSD_ITEM_TYPE DataItem,
        VOID *DataBuffer,
        UINT64 DataBufferLength,
        UINT64 *BytesReturned){
  _HANDLE v8; 
  INT64 v9; 
  NTSTATUS result; 
  INT64 v11; 
  INT64 v12; 
  char v13[176]; 

  v8 = (int)Handle;
  memset(v13, 0i64, sizeof(v13));
  if( Get )
  {
    v12 = (unsigned int)DataItem;
    LOBYTE(v9) = 1;
    return RtlpGetSetBootStatusData(v8, v9, v12);
  }
  if( DataItem == 15 )
    return -1073741811;
  LOBYTE(v9) = 1;
  result = RtlpGetSetBootStatusData(v8, v9, 15i64);
  if( result >= 0 )
  {
    LOBYTE(v11) = 1;
    result = RtlpGetSetBootStatusData(v8, v11, (unsigned int)DataItem);
    if( result >= 0 )
    {
      result = RtlpGetSetBootStatusData(v8, 0i64, (unsigned int)DataItem);
      if( result >= 0 )
      {
        if( BytesReturned )
          *(_DWORD *)BytesReturned = 0;
        v9 = 0i64;
        v12 = 15i64;
        return RtlpGetSetBootStatusData(v8, v9, v12);
      }
    }
  }
  return result;
}

Referenced by:

PopBootStatGet
PopBootStatSet