PopPluginPrepareDevice

UINT8 __stdcall PopPluginPrepareDevice(_POP_FX_PLUGIN *Plugin, _UNICODE_STRING *DeviceId){
  unsigned __int8(__fastcall *v2)(_QWORD, __int128 *); 
  UINT8 v3; 
  ULONG_PTR v4; 
  __int128 *v5; 
  ULONG_PTR v6; 
  __int64 v7; 
  __int128 v9; 
  __int128 v10; 
  __int128 v11; 

  v2 = (unsigned __int8(__fastcall *)(_QWORD, __int128 *))*((_QWORD *)Plugin + 12);
  v3 = 0;
  v4 = (unsigned int)Plugin;
  v9 = 0i64;
  v10 = 0i64;
  v11 = 0i64;
  if( v2 )
  {
    if( (*((_DWORD *)Plugin + 6) & 0x8000000) != 0 )
    {
      v5 = &v10;
      *(_QWORD *)&v11 = *(_QWORD *)&DeviceId[2].Length;
      v6 = 144;
      v7 = *(_QWORD *)&DeviceId[1].Length;
      *(_QWORD *)&v10 = DeviceId + 8;
      *((_QWORD *)&v11 + 1) = *(_QWORD *)(v7 + 32);
    }
    else
    {
      *(_QWORD *)&v9 = DeviceId + 8;
      v5 = &v9;
      v6 = 1;
    }
    if( !v2(v6, v5) )
      PopFxBugCheck(0x605u, v6, v4, 0);
    return *((_BYTE *)v5 + 8);
  }
  return v3;
}

Referenced by:

PoFxPrepareDevice