IoQueryEnvironmentVariableInfoEx

INT64 __stdcall IoQueryEnvironmentVariableInfoEx(
        UINT64 Attributes,
        UINT64 *MaximumVariableStorageSize,
        UINT64 *RemainingVariableStorageSize,
        UINT64 *MaximumVariableSize){
  unsigned int v6; 
  int v8; 
  PADAPTER_OBJECT DmaAdapter; 
  void **v11; 
  PDEVICE_OBJECT DeviceObject; 
  UINT64 v13; 
  UINT64 v14; 
  struct _EVENT_DATA_DESCRIPTOR v15; 
  void ***v16; 
  int v17; 
  int v18; 
  PDEVICE_OBJECT *p_DeviceObject; 
  int v20; 
  int v21; 
  UINT64 *v22; 
  int v23; 
  int v24; 
  UINT64 *v25; 
  int v26; 
  int v27; 
  PADAPTER_OBJECT *p_DmaAdapter; 
  int v29; 
  int v30; 
  DeviceObject = 0i64;
  DmaAdapter = 0i64;
  v11 = 0i64;
  v6 = Attributes;
  v8 = IopOpenSystemVariableDevice((PFILE_OBJECT *)&DmaAdapter, &DeviceObject, &v11);
  if( v8 >= 0 )
  {
    v8 = ((__int64(__fastcall *)(PADAPTER_OBJECT, PDEVICE_OBJECT, _QWORD, UINT64 *, UINT64 *, UINT64 *))v11[3])(
           DmaAdapter,
           DeviceObject,
           v6,
           MaximumVariableStorageSize,
           RemainingVariableStorageSize,
           MaximumVariableSize);
    if( DmaAdapter )
      HalPutDmaAdapter(DmaAdapter);
  }
  if( (unsigned int)dword_140C044D0 > 5 && tlgKeywordOn((__int64)&dword_140C044D0, 0x200000000000i64) )
  {
    v18 = 0;
    v21 = 0;
    v24 = 0;
    v27 = 0;
    v30 = 0;
    v16 = &v11;
    DeviceObject = (PDEVICE_OBJECT)*MaximumVariableStorageSize;
    p_DeviceObject = &DeviceObject;
    v13 = *RemainingVariableStorageSize;
    v22 = &v13;
    v14 = *MaximumVariableSize;
    v25 = &v14;
    p_DmaAdapter = &DmaAdapter;
    v17 = 4;
    v20 = 8;
    v23 = 8;
    v26 = 8;
    v29 = 4;
    LODWORD(v11) = v6;
    LODWORD(DmaAdapter) = v8;
    tlgWriteTransfer_EtwWriteTransfer(
      (__int64)&dword_140C044D0,
      (unsigned __int8 *)byte_140023EF9,
      0i64,
      0i64,
      7u,
      &v15);
  }
  return(unsigned int)v8;
}

Referenced by:

NtQueryEnvironmentVariableInfoEx