private static HWID.HW_PROFILE_INFO ProfileInfo() { IntPtr num = IntPtr.Zero; try { HWID.HW_PROFILE_INFO hwProfileInfo = new HWID.HW_PROFILE_INFO(); num = Marshal.AllocHGlobal(Marshal.SizeOf((object)hwProfileInfo)); Marshal.StructureToPtr((object)hwProfileInfo, num, false); if (!HWID.GetCurrentHwProfile(num)) { throw new Exception("Error cant get current hw profile!"); } Marshal.PtrToStructure(num, (object)hwProfileInfo); return(hwProfileInfo); } catch (Exception ex) { throw new Exception(ex.ToString()); } finally { if (num != IntPtr.Zero) { Marshal.FreeHGlobal(num); } } }