PopFxDuplicateUniqueId

NTSTATUS __stdcall PopFxDuplicateUniqueId(const VOID **InputId, _UNICODE_STRING *UniqueId){
  __int64 v2; 
  unsigned __int16 v5; 
  VOID **PoolWithTag; 
  NTSTATUS v7; 
  wchar_t *v8; 

  v2 = *(unsigned __int16 *)InputId;
  if( *((unsigned __int16 *)InputId + 1) < (unsigned __int64)(v2 + 2) )
    return -1073741811;
  v5 = v2 + 2;
  PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v5, 1297630800i64);
  v7 = 0;
  v8 = (wchar_t *)PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  memmove(PoolWithTag, InputId[1], v5);
  UniqueId->Length = *(_WORD *)InputId;
  UniqueId->Buffer = v8;
  UniqueId->MaximumLength = v5;
  return v7;
}

Referenced by:

PopFxCreateDeviceCommon