RawSetInformation

INT64 __fastcall RawSetInformation(INT64 a1, IRP *a2, INT64 a3){
  unsigned int v6; 
  _QWORD *v7; 
  INT64 v8; 
  v6 = 0;
  if( RawBeginOperation(a1, *(_QWORD *)(a3 + 48)) )
  {
    v7 = (_QWORD *)*((_QWORD *)a2 + 3);
    v8 = *(_QWORD *)(a3 + 48);
    if( *(_DWORD *)(a3 + 16) == 14 )
    {
      if( (*((_DWORD *)IoGetRelatedDeviceObject(*(_FILE_OBJECT **)(a3 + 48)) + 38) & *(_DWORD *)v7) != 0 )
        v6 = -1073741811;
      else
        *(_QWORD *)(v8 + 104) = *v7;
      v8 = *(_QWORD *)(a3 + 48);
    }
    else
    {
      v6 = -1073741808;
    }
    RawEndOperation(a1, v8);
  }
  else
  {
    v6 = -1073741202;
  }
  *((_DWORD *)a2 + 12) = v6;
  IofCompleteRequest(a2, 1);
  return v6;
}

Referenced by:

RawDispatch