; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES msvcjmc SEGMENT __9C03CD75_concurrencysal@h DB 01H __CA64BAF1_sal@h DB 01H __95655E73_vadefs@h DB 01H __1D560A45_vcruntime@h DB 01H __1B0272D9_corecrt@h DB 01H __13F5961F_stddef@h DB 01H __ED683015_stdint@h DB 01H __89F75FCD_ssgc_internal@h DB 01H __A5E73FD0_glfw3@h DB 01H __1D45B1A5_glfw_null_platform@h DB 01H __74484FB3_corecrt_wctype@h DB 01H __CBE172F9_wctype@h DB 01H __0ED14FEE_winpackagefamily@h DB 01H __F92EF742_winapifamily@h DB 01H __22E515EB_sdkddkver@h DB 01H __F214EFBF_excpt@h DB 01H __D9B78EDA_stdarg@h DB 01H __29F49F40_specstrings_undef@h DB 01H __D0F42932_specstrings_strict@h DB 01H __F00405FD_sdv_driverspecs@h DB 01H __173E09CA_driverspecs@h DB 01H __9A452361_specstrings@h DB 01H __1EC467ED_ctype@h DB 01H __98517906_kernelspecs@h DB 01H __D3497022_basetsd@h DB 01H __61CC25A1_errno@h DB 01H __7061C667_vcruntime_string@h DB 01H __E4C945B4_corecrt_memcpy_s@h DB 01H __8EAFF484_corecrt_memory@h DB 01H __6490AEC5_corecrt_wstring@h DB 01H __E8295E1E_string@h DB 01H __7FCB5136_guiddef@h DB 01H __FF8A9E11_pshpack4@h DB 01H __D5438902_poppack@h DB 01H __FB07E2A3_pshpack2@h DB 01H __F6906775_pshpack8@h DB 01H __F9415CFA_pshpack1@h DB 01H __E58C6F1C_apiset@h DB 01H __A5C52262_ktmtypes@h DB 01H __FBBA8F9D_winnt@h DB 01H __A32D3D2C_minwindef@h DB 01H __7D798299_windef@h DB 01H __9AE108E9_apisetcconv@h DB 01H __9CE53D2C_minwinbase@h DB 01H __5D0AA210_apiquery2@h DB 01H __4DD4E726_processenv@h DB 01H __3575CC96_fileapi@h DB 01H __8EA220E6_fileapifromapp@h DB 01H __BF9B31FE_debugapi@h DB 01H __C3AFE134_utilapiset@h DB 01H __76F69E51_handleapi@h DB 01H __7E63D784_errhandlingapi@h DB 01H __FFA7003C_fibersapi@h DB 01H __8971CECF_namedpipeapi@h DB 01H __46C9D8A6_profileapi@h DB 01H __98D4F0A3_heapapi@h DB 01H __50EF2A88_ioapiset@h DB 01H __92EA1464_synchapi@h DB 01H __A53D8AED_interlockedapi@h DB 01H __B506CAAF_processthreadsapi@h DB 01H __FF735694_sysinfoapi@h DB 01H __29589789_memoryapi@h DB 01H __E9C7A663_enclaveapi@h DB 01H __D035F9F7_threadpoollegacyapiset@h DB 01H __C899130C_threadpoolapiset@h DB 01H __E0441EE7_jobapi@h DB 01H __CEF86838_jobapi2@h DB 01H __35AC6B9A_wow64apiset@h DB 01H __C8AE41A5_libloaderapi@h DB 01H __CC9E232D_securitybaseapi@h DB 01H __C9D0C9B8_namespaceapi@h DB 01H __30FF9CAD_systemtopologyapi@h DB 01H __4D358795_processtopologyapi@h DB 01H __40446D10_securityappcontainer@h DB 01H __3A952EDF_realtimeapiset@h DB 01H __F4865F4B_winerror@h DB 01H __53C1BD93_timezoneapi@h DB 01H __1FFBEDBF_winbase@h DB 01H __43D3FA34_wingdi@h DB 01H __D24A7391_tvout@h DB 01H __7713A6C8_winuser@h DB 01H __0B345F71_datetimeapi@h DB 01H __9AC6960C_winnls@h DB 01H __973A40A8_stringapiset@h DB 01H __CC46FEE2_wincontypes@h DB 01H __97D70BE1_consoleapi@h DB 01H __27EC5E18_consoleapi2@h DB 01H __262E342F_consoleapi3@h DB 01H __641DCD70_wincon@h DB 01H __5A96C7A7_verrsrc@h DB 01H __B69C6FF2_winver@h DB 01H __7AEB8C37_reason@h DB 01H __59F1A8A9_winreg@h DB 01H __EE0E2B7F_wnnc@h DB 01H __DCDB7054_winnetwk@h DB 01H __81DDEDE3_stralign@h DB 01H __2134D1B4_winsvc@h DB 01H __11C07376_mcx@h DB 01H __577CE3E7_ime_cmodes@h DB 01H __1E72C31E_imm@h DB 01H __E15BF856_windows@h DB 01H __DF8704F0_rpcdcep@h DB 01H __5C6CA7BB_rpcdce@h DB 01H __853533C4_rpcnsi@h DB 01H __2D2406C3_rpcnterr@h DB 01H __64521D71_rpcasync@h DB 01H __AADCBA08_rpc@h DB 01H __1FE431C9_rpcnsip@h DB 01H __2B741F2D_rpcsal@h DB 01H __92623256_rpcndr@h DB 01H __45DED006_corecrt_malloc@h DB 01H __FD6DBD68_corecrt_search@h DB 01H __E2E33A61_corecrt_wstdlib@h DB 01H __531E1E2A_limits@h DB 01H __6E5ACABA_stdlib@h DB 01H __9C18532E_wtypesbase@h DB 01H __30B1AFDA_unknwnbase@h DB 01H __328C1996_objidlbase@h DB 01H __C4E06B6A_cguid@h DB 01H __434718C5_combaseapi@h DB 01H __EA2E1D6D_wtypes@h DB 01H __DE6FDEF1_unknwn@h DB 01H __CCE0BACC_objidl@h DB 01H __8C7011E5_oaidl@h DB 01H __2E0B7863_propidlbase@h DB 01H __BF4CF2EC_coml2api@h DB 01H __6D897344_oleidl@h DB 01H __1129FC2C_servprov@h DB 01H __757952E4_msxml@h DB 01H __B1191D53_urlmon@h DB 01H __404D1A47_propidl@h DB 01H __A1C63593_objbase@h DB 01H __9F7C87B7_dinput@h DB 01H __B468A3D3_xinput@h DB 01H __AD768F06_dbt@h DB 01H __D83367F8_glfw_win32_platform@h DB 01H __53CB9229_glfw_null_joystick@h DB 01H __96BD4474_glfw_win32_joystick@h DB 01H __7D74CEA8_glfw_win32_thread@h DB 01H __C7421531_glfw_win32_time@h DB 01H __43B1F397_glfw_platform@h DB 01H __A547227D_glfw_internal@h DB 01H __44420885_corecrt_stdio_config@h DB 01H __EF1F6BBA_corecrt_wconio@h DB 01H __3D1D430C_corecrt_wdirect@h DB 01H __8ECB7138_corecrt_share@h DB 01H __DB7FEBA6_corecrt_wio@h DB 01H __9A9F0068_corecrt_wprocess@h DB 01H __AB601D8D_corecrt_wstdio@h DB 01H __369A9BC3_corecrt_wtime@h DB 01H __CE789B9D_types@h DB 01H __9901C817_stat@h DB 01H __3FCAD62E_wchar@h DB 01H __E5428F11_win32_monitor@c DB 01H msvcjmc ENDS PUBLIC _glfwPollMonitorsWin32 PUBLIC _glfwSetVideoModeWin32 PUBLIC _glfwRestoreVideoModeWin32 PUBLIC _glfwGetHMONITORContentScaleWin32 PUBLIC _glfwFreeMonitorWin32 PUBLIC _glfwGetMonitorPosWin32 PUBLIC _glfwGetMonitorContentScaleWin32 PUBLIC _glfwGetMonitorWorkareaWin32 PUBLIC _glfwGetVideoModesWin32 PUBLIC _glfwGetVideoModeWin32 PUBLIC _glfwGetGammaRampWin32 PUBLIC _glfwSetGammaRampWin32 PUBLIC glfwGetWin32Adapter PUBLIC glfwGetWin32Monitor PUBLIC __JustMyCode_Default PUBLIC ??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ ; `string' PUBLIC ??_C@_0O@NIPGCINC@Unknown?5error@ ; `string' PUBLIC ??_C@_0BJ@EJOHFDHH@The?5system?5uses?5DualView@ ; `string' PUBLIC ??_C@_0O@IHOLGAKK@Invalid?5flags@ ; `string' PUBLIC ??_C@_0BM@KPJJBADD@Graphics?5mode?5not?5supported@ ; `string' PUBLIC ??_C@_0BC@DBAKKFEN@Invalid?5parameter@ ; `string' PUBLIC ??_C@_0BF@JHMFGJBN@Graphics?5mode?5failed@ ; `string' PUBLIC ??_C@_0BM@IGBABBBF@Failed?5to?5write?5to?5registry@ ; `string' PUBLIC ??_C@_0BK@OEGBAIFC@Computer?5restart?5required@ ; `string' PUBLIC ??_C@_0CE@IKOICJPN@Win32?3?5Failed?5to?5set?5video?5mode@ ; `string' PUBLIC ??_C@_0CD@IGHBCNOG@Win32?3?5Failed?5to?5query?5monitor?5@ ; `string' PUBLIC ??_C@_0CD@EGEEPFHF@Win32?3?5Gamma?5ramp?5size?5must?5be?5@ ; `string' PUBLIC __real@41cb3333 PUBLIC __real@42c00000 EXTRN memcpy:PROC EXTRN memset:PROC EXTRN __imp_wcscmp:PROC EXTRN __imp_wcscpy:PROC EXTRN __imp_CreateDCW:PROC EXTRN __imp_DeleteDC:PROC EXTRN __imp_GetDeviceCaps:PROC EXTRN __imp_GetDeviceGammaRamp:PROC EXTRN __imp_SetDeviceGammaRamp:PROC EXTRN __imp_GetDC:PROC EXTRN __imp_ReleaseDC:PROC EXTRN __imp_ChangeDisplaySettingsExW:PROC EXTRN __imp_EnumDisplaySettingsW:PROC EXTRN __imp_EnumDisplaySettingsExW:PROC EXTRN __imp_EnumDisplayDevicesW:PROC EXTRN __imp_GetMonitorInfoW:PROC EXTRN __imp_EnumDisplayMonitors:PROC EXTRN __imp_WideCharToMultiByte:PROC EXTRN _glfwCreateUTF8FromWideStringWin32:PROC EXTRN _glfwIsWindowsVersionOrGreaterWin32:PROC EXTRN _glfwInputMonitor:PROC EXTRN _glfwInputError:PROC EXTRN _glfwChooseVideoMode:PROC EXTRN _glfwCompareVideoModes:PROC EXTRN _glfwAllocMonitor:PROC EXTRN _glfwAllocGammaArrays:PROC EXTRN _glfwSplitBPP:PROC EXTRN _glfw_calloc:PROC EXTRN _glfw_realloc:PROC EXTRN _glfw_free:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN _glfw:BYTE EXTRN __security_cookie:QWORD EXTRN _fltused:DWORD ; COMDAT pdata pdata SEGMENT $pdata$_glfwPollMonitorsWin32 DD imagerel $LN32 DD imagerel $LN32+916 DD imagerel $unwind$_glfwPollMonitorsWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwSetVideoModeWin32 DD imagerel $LN21 DD imagerel $LN21+607 DD imagerel $unwind$_glfwSetVideoModeWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwRestoreVideoModeWin32 DD imagerel $LN4 DD imagerel $LN4+116 DD imagerel $unwind$_glfwRestoreVideoModeWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetHMONITORContentScaleWin32 DD imagerel $LN10 DD imagerel $LN10+377 DD imagerel $unwind$_glfwGetHMONITORContentScaleWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwFreeMonitorWin32 DD imagerel $LN3 DD imagerel $LN3+41 DD imagerel $unwind$_glfwFreeMonitorWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetMonitorPosWin32 DD imagerel $LN5 DD imagerel $LN5+231 DD imagerel $unwind$_glfwGetMonitorPosWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetMonitorContentScaleWin32 DD imagerel $LN3 DD imagerel $LN3+84 DD imagerel $unwind$_glfwGetMonitorContentScaleWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetMonitorWorkareaWin32 DD imagerel $LN7 DD imagerel $LN7+278 DD imagerel $unwind$_glfwGetMonitorWorkareaWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetVideoModesWin32 DD imagerel $LN17 DD imagerel $LN17+665 DD imagerel $unwind$_glfwGetVideoModesWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetVideoModeWin32 DD imagerel $LN3 DD imagerel $LN3+273 DD imagerel $unwind$_glfwGetVideoModeWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwGetGammaRampWin32 DD imagerel $LN3 DD imagerel $LN3+324 DD imagerel $unwind$_glfwGetGammaRampWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwSetGammaRampWin32 DD imagerel $LN4 DD imagerel $LN4+336 DD imagerel $unwind$_glfwSetGammaRampWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$monitorCallback DD imagerel monitorCallback DD imagerel monitorCallback+248 DD imagerel $unwind$monitorCallback pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$createMonitor DD imagerel createMonitor DD imagerel createMonitor+906 DD imagerel $unwind$createMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetWin32Adapter DD imagerel $LN4 DD imagerel $LN4+87 DD imagerel $unwind$glfwGetWin32Adapter pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetWin32Monitor DD imagerel $LN4 DD imagerel $LN4+87 DD imagerel $unwind$glfwGetWin32Monitor pdata ENDS ; COMDAT __real@42c00000 CONST SEGMENT __real@42c00000 DD 042c00000r ; 96 CONST ENDS ; COMDAT __real@41cb3333 CONST SEGMENT __real@41cb3333 DD 041cb3333r ; 25.4 CONST ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown rtc$TMZ ENDS ; COMDAT rtc$IMZ rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS ; COMDAT ??_C@_0CD@EGEEPFHF@Win32?3?5Gamma?5ramp?5size?5must?5be?5@ CONST SEGMENT ??_C@_0CD@EGEEPFHF@Win32?3?5Gamma?5ramp?5size?5must?5be?5@ DB 'Win32: Gam' DB 'ma ramp size must be 256', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CD@IGHBCNOG@Win32?3?5Failed?5to?5query?5monitor?5@ CONST SEGMENT ??_C@_0CD@IGHBCNOG@Win32?3?5Failed?5to?5query?5monitor?5@ DB 'Win32: Fail' DB 'ed to query monitor DPI', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CE@IKOICJPN@Win32?3?5Failed?5to?5set?5video?5mode@ CONST SEGMENT ??_C@_0CE@IKOICJPN@Win32?3?5Failed?5to?5set?5video?5mode@ DB 'Win32: Fail' DB 'ed to set video mode: %s', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BK@OEGBAIFC@Computer?5restart?5required@ CONST SEGMENT ??_C@_0BK@OEGBAIFC@Computer?5restart?5required@ DB 'Computer restart requ' DB 'ired', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BM@IGBABBBF@Failed?5to?5write?5to?5registry@ CONST SEGMENT ??_C@_0BM@IGBABBBF@Failed?5to?5write?5to?5registry@ DB 'Failed to write t' DB 'o registry', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BF@JHMFGJBN@Graphics?5mode?5failed@ CONST SEGMENT ??_C@_0BF@JHMFGJBN@Graphics?5mode?5failed@ DB 'Graphics mode failed', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BC@DBAKKFEN@Invalid?5parameter@ CONST SEGMENT ??_C@_0BC@DBAKKFEN@Invalid?5parameter@ DB 'Invalid parameter', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BM@KPJJBADD@Graphics?5mode?5not?5supported@ CONST SEGMENT ??_C@_0BM@KPJJBADD@Graphics?5mode?5not?5supported@ DB 'Graphics mode not ' DB 'supported', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@IHOLGAKK@Invalid?5flags@ CONST SEGMENT ??_C@_0O@IHOLGAKK@Invalid?5flags@ DB 'Invalid flags', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@EJOHFDHH@The?5system?5uses?5DualView@ CONST SEGMENT ??_C@_0BJ@EJOHFDHH@The?5system?5uses?5DualView@ DB 'The system uses DualV' DB 'iew', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@NIPGCINC@Unknown?5error@ CONST SEGMENT ??_C@_0O@NIPGCINC@Unknown?5error@ DB 'Unknown error', 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ CONST SEGMENT ??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ DB 'D', 00H, 'I', 00H DB 'S', 00H, 'P', 00H, 'L', 00H, 'A', 00H, 'Y', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetWin32Monitor DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetWin32Adapter DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03bH DW 0371H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$createMonitor DD 045054219H DD 01134318H DD 0700c005bH DD 0500bH DD imagerel __GSHandlerCheck DD 02c8H xdata ENDS ; COMDAT CONST CONST SEGMENT createMonitor$rtcName$0 DB 064H DB 06dH DB 00H ORG $+1 createMonitor$rtcName$1 DB 072H DB 065H DB 063H DB 074H DB 00H ORG $+7 createMonitor$rtcVarDesc DD 01e8H DD 010H DQ FLAT:createMonitor$rtcName$1 DD 0f0H DD 0dcH DQ FLAT:createMonitor$rtcName$0 ORG $+96 createMonitor$rtcFrameData DD 02H DD 00H DQ FLAT:createMonitor$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0dfH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$monitorCallback DD 025054c19H DD 011d2322H DD 070160033H DD 05015H DD imagerel __GSHandlerCheck DD 0188H xdata ENDS ; COMDAT CONST CONST SEGMENT monitorCallback$rtcName$0 DB 06dH DB 069H DB 00H ORG $+13 monitorCallback$rtcVarDesc DD 030H DD 068H DQ FLAT:monitorCallback$rtcName$0 ORG $+48 monitorCallback$rtcFrameData DD 01H DD 00H DQ FLAT:monitorCallback$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03bH DW 0137H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwSetGammaRampWin32 DD 025054219H DD 01132318H DD 0700c012dH DD 0500bH DD imagerel __GSHandlerCheck DD 0958H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwSetGammaRampWin32$rtcName$0 DB 076H DB 061H DB 06cH DB 075H DB 065H DB 073H DB 00H ORG $+9 _glfwSetGammaRampWin32$rtcVarDesc DD 050H DD 0600H DQ FLAT:_glfwSetGammaRampWin32$rtcName$0 ORG $+48 _glfwSetGammaRampWin32$rtcFrameData DD 01H DD 00H DQ FLAT:_glfwSetGammaRampWin32$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03bH DW 012bH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetGammaRampWin32 DD 025054219H DD 01132318H DD 0700c012dH DD 0500bH DD imagerel __GSHandlerCheck DD 0958H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetGammaRampWin32$rtcName$0 DB 076H DB 061H DB 06cH DB 075H DB 065H DB 073H DB 00H ORG $+9 _glfwGetGammaRampWin32$rtcVarDesc DD 050H DD 0600H DQ FLAT:_glfwGetGammaRampWin32$rtcName$0 ORG $+48 _glfwGetGammaRampWin32$rtcFrameData DD 01H DD 00H DQ FLAT:_glfwGetGammaRampWin32$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 03bH DB 0f8H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetVideoModeWin32 DD 025054219H DD 01132318H DD 0700c003dH DD 0500bH DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetVideoModeWin32$rtcName$0 DB 064H DB 06dH DB 00H ORG $+13 _glfwGetVideoModeWin32$rtcVarDesc DD 030H DD 0dcH DQ FLAT:_glfwGetVideoModeWin32$rtcName$0 ORG $+48 _glfwGetVideoModeWin32$rtcFrameData DD 01H DD 00H DQ FLAT:_glfwGetVideoModeWin32$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03cH DW 027fH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetVideoModesWin32 DD 035064319H DD 01143319H DD 0700d0054H DD 0500b600cH DD imagerel __GSHandlerCheck DD 0298H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetVideoModesWin32$rtcName$0 DB 06dH DB 06fH DB 064H DB 065H DB 00H ORG $+3 _glfwGetVideoModesWin32$rtcName$1 DB 064H DB 06dH DB 00H ORG $+5 _glfwGetVideoModesWin32$rtcVarDesc DD 0f0H DD 0dcH DQ FLAT:_glfwGetVideoModesWin32$rtcName$1 DD 0b8H DD 018H DQ FLAT:_glfwGetVideoModesWin32$rtcName$0 ORG $+96 _glfwGetVideoModesWin32$rtcFrameData DD 02H DD 00H DQ FLAT:_glfwGetVideoModesWin32$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 045H DB 0fdH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetMonitorWorkareaWin32 DD 025054c19H DD 011d2322H DD 070160025H DD 05015H DD imagerel __GSHandlerCheck DD 0118H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetMonitorWorkareaWin32$rtcName$0 DB 06dH DB 069H DB 00H ORG $+13 _glfwGetMonitorWorkareaWin32$rtcVarDesc DD 028H DD 028H DQ FLAT:_glfwGetMonitorWorkareaWin32$rtcName$0 ORG $+48 _glfwGetMonitorWorkareaWin32$rtcFrameData DD 01H DD 00H DQ FLAT:_glfwGetMonitorWorkareaWin32$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetMonitorContentScaleWin32 DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 040H DB 0ceH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetMonitorPosWin32 DD 025054719H DD 0118231dH DD 07011003dH DD 05010H DD imagerel __GSHandlerCheck DD 01d8H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetMonitorPosWin32$rtcName$0 DB 064H DB 06dH DB 00H ORG $+13 _glfwGetMonitorPosWin32$rtcVarDesc DD 030H DD 0dcH DQ FLAT:_glfwGetMonitorPosWin32$rtcName$0 ORG $+48 _glfwGetMonitorPosWin32$rtcFrameData DD 01H DD 00H DQ FLAT:_glfwGetMonitorPosWin32$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwFreeMonitorWin32 DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 040H DW 0160H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwGetHMONITORContentScaleWin32 DD 025054719H DD 0118231dH DD 070110029H DD 05010H DD imagerel __GSHandlerCheck DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwGetHMONITORContentScaleWin32$rtcName$0 DB 078H DB 064H DB 070H DB 069H DB 00H ORG $+3 _glfwGetHMONITORContentScaleWin32$rtcName$1 DB 079H DB 064H DB 070H DB 069H DB 00H ORG $+3 _glfwGetHMONITORContentScaleWin32$rtcVarDesc DD 044H DD 04H DQ FLAT:_glfwGetHMONITORContentScaleWin32$rtcName$1 DD 024H DD 04H DQ FLAT:_glfwGetHMONITORContentScaleWin32$rtcName$0 ORG $+96 _glfwGetHMONITORContentScaleWin32$rtcFrameData DD 02H DD 00H DQ FLAT:_glfwGetHMONITORContentScaleWin32$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwRestoreVideoModeWin32 DD 035051301H DD 010e3313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 03bH DW 0246H voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwSetVideoModeWin32 DD 035054219H DD 01133318H DD 0700c0051H DD 0500bH DD imagerel __GSHandlerCheck DD 0278H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwSetVideoModeWin32$rtcName$0 DB 063H DB 075H DB 072H DB 072H DB 065H DB 06eH DB 074H DB 00H _glfwSetVideoModeWin32$rtcName$1 DB 064H DB 06dH DB 00H ORG $+5 _glfwSetVideoModeWin32$rtcVarDesc DD 090H DD 0dcH DQ FLAT:_glfwSetVideoModeWin32$rtcName$1 DD 038H DD 018H DQ FLAT:_glfwSetVideoModeWin32$rtcName$0 ORG $+96 _glfwSetVideoModeWin32$rtcFrameData DD 02H DD 00H DQ FLAT:_glfwSetVideoModeWin32$rtcVarDesc CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 02aH DW 037bH voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwPollMonitorsWin32 DD 025053119H DD 010a230fH DD 07003015dH DD 05002H DD imagerel __GSHandlerCheck DD 0ad8H xdata ENDS ; COMDAT CONST CONST SEGMENT _glfwPollMonitorsWin32$rtcName$0 DB 061H DB 064H DB 061H DB 070H DB 074H DB 065H DB 072H DB 00H _glfwPollMonitorsWin32$rtcName$1 DB 064H DB 069H DB 073H DB 070H DB 06cH DB 061H DB 079H DB 00H _glfwPollMonitorsWin32$rtcVarDesc DD 0440H DD 0348H DQ FLAT:_glfwPollMonitorsWin32$rtcName$1 DD 0d0H DD 0348H DQ FLAT:_glfwPollMonitorsWin32$rtcName$0 ORG $+96 _glfwPollMonitorsWin32$rtcFrameData DD 02H DD 00H DQ FLAT:_glfwPollMonitorsWin32$rtcVarDesc CONST ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default _TEXT SEGMENT __JustMyCode_Default PROC ; COMDAT 00000 c2 00 00 ret 0 __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT glfwGetWin32Monitor _TEXT SEGMENT monitor$ = 8 handle$ = 256 glfwGetWin32Monitor PROC ; COMDAT ; 544 : { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 545 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR handle$[rbp] 00026 48 89 45 08 mov QWORD PTR monitor$[rbp], rax ; 546 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 0002a 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00031 75 10 jne SHORT $LN2@glfwGetWin 00033 33 d2 xor edx, edx 00035 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0003a e8 00 00 00 00 call _glfwInputError 0003f 33 c0 xor eax, eax 00041 eb 0a jmp SHORT $LN1@glfwGetWin $LN2@glfwGetWin: ; 547 : return monitor->win32.publicDisplayName; 00043 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] 00047 48 05 a8 01 00 00 add rax, 424 ; 000001a8H $LN1@glfwGetWin: ; 548 : } 0004d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00054 5f pop rdi 00055 5d pop rbp 00056 c3 ret 0 glfwGetWin32Monitor ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT glfwGetWin32Adapter _TEXT SEGMENT monitor$ = 8 handle$ = 256 glfwGetWin32Adapter PROC ; COMDAT ; 537 : { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 538 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR handle$[rbp] 00026 48 89 45 08 mov QWORD PTR monitor$[rbp], rax ; 539 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 0002a 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00031 75 10 jne SHORT $LN2@glfwGetWin 00033 33 d2 xor edx, edx 00035 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0003a e8 00 00 00 00 call _glfwInputError 0003f 33 c0 xor eax, eax 00041 eb 0a jmp SHORT $LN1@glfwGetWin $LN2@glfwGetWin: ; 540 : return monitor->win32.publicAdapterName; 00043 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] 00047 48 05 88 01 00 00 add rax, 392 ; 00000188H $LN1@glfwGetWin: ; 541 : } 0004d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] 00054 5f pop rdi 00055 5d pop rbp 00056 c3 ret 0 glfwGetWin32Adapter ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT createMonitor _TEXT SEGMENT monitor$ = 8 widthMM$ = 36 heightMM$ = 68 name$ = 104 dc$ = 136 dm$ = 176 rect$ = 424 tv138 = 644 tv129 = 644 __$ArrayPad$ = 648 adapter$ = 688 display$ = 696 createMonitor PROC ; COMDAT ; 65 : { 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec d8 02 00 00 sub rsp, 728 ; 000002d8H 00013 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] 00018 48 8d 7c 24 40 lea rdi, QWORD PTR [rsp+64] 0001d b9 76 00 00 00 mov ecx, 118 ; 00000076H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 f8 02 00 00 mov rcx, QWORD PTR [rsp+760] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 88 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 66 : _GLFWmonitor* monitor; ; 67 : int widthMM, heightMM; ; 68 : char* name; ; 69 : HDC dc; ; 70 : DEVMODEW dm; ; 71 : RECT rect; ; 72 : ; 73 : if (display) 0004e 48 83 bd b8 02 00 00 00 cmp QWORD PTR display$[rbp], 0 00056 74 19 je SHORT $LN2@createMoni ; 74 : name = _glfwCreateUTF8FromWideStringWin32(display->DeviceString); 00058 48 8b 85 b8 02 00 00 mov rax, QWORD PTR display$[rbp] 0005f 48 83 c0 44 add rax, 68 ; 00000044H 00063 48 8b c8 mov rcx, rax 00066 e8 00 00 00 00 call _glfwCreateUTF8FromWideStringWin32 0006b 48 89 45 68 mov QWORD PTR name$[rbp], rax 0006f eb 17 jmp SHORT $LN3@createMoni $LN2@createMoni: ; 75 : else ; 76 : name = _glfwCreateUTF8FromWideStringWin32(adapter->DeviceString); 00071 48 8b 85 b0 02 00 00 mov rax, QWORD PTR adapter$[rbp] 00078 48 83 c0 44 add rax, 68 ; 00000044H 0007c 48 8b c8 mov rcx, rax 0007f e8 00 00 00 00 call _glfwCreateUTF8FromWideStringWin32 00084 48 89 45 68 mov QWORD PTR name$[rbp], rax $LN3@createMoni: ; 77 : if (!name) 00088 48 83 7d 68 00 cmp QWORD PTR name$[rbp], 0 0008d 75 07 jne SHORT $LN4@createMoni ; 78 : return NULL; 0008f 33 c0 xor eax, eax 00091 e9 c5 02 00 00 jmp $LN1@createMoni $LN4@createMoni: ; 79 : ; 80 : ZeroMemory(&dm, sizeof(dm)); 00096 41 b8 dc 00 00 00 mov r8d, 220 ; 000000dcH 0009c 33 d2 xor edx, edx 0009e 48 8d 8d b0 00 00 00 lea rcx, QWORD PTR dm$[rbp] 000a5 e8 00 00 00 00 call memset ; 81 : dm.dmSize = sizeof(dm); 000aa b8 dc 00 00 00 mov eax, 220 ; 000000dcH 000af 66 89 85 f4 00 00 00 mov WORD PTR dm$[rbp+68], ax ; 82 : EnumDisplaySettingsW(adapter->DeviceName, ENUM_CURRENT_SETTINGS, &dm); 000b6 48 8b 85 b0 02 00 00 mov rax, QWORD PTR adapter$[rbp] 000bd 48 83 c0 04 add rax, 4 000c1 4c 8d 85 b0 00 00 00 lea r8, QWORD PTR dm$[rbp] 000c8 ba ff ff ff ff mov edx, -1 ; ffffffffH 000cd 48 8b c8 mov rcx, rax 000d0 ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplaySettingsW ; 83 : ; 84 : dc = CreateDCW(L"DISPLAY", adapter->DeviceName, NULL, NULL); 000d6 48 8b 85 b0 02 00 00 mov rax, QWORD PTR adapter$[rbp] 000dd 48 83 c0 04 add rax, 4 000e1 45 33 c9 xor r9d, r9d 000e4 45 33 c0 xor r8d, r8d 000e7 48 8b d0 mov rdx, rax 000ea 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ 000f1 ff 15 00 00 00 00 call QWORD PTR __imp_CreateDCW 000f7 48 89 85 88 00 00 00 mov QWORD PTR dc$[rbp], rax ; 85 : ; 86 : if (IsWindows8Point1OrGreater()) 000fe 45 33 c0 xor r8d, r8d 00101 66 ba 03 00 mov dx, 3 00105 66 b9 06 00 mov cx, 6 00109 e8 00 00 00 00 call _glfwIsWindowsVersionOrGreaterWin32 0010e 85 c0 test eax, eax 00110 74 2f je SHORT $LN5@createMoni ; 87 : { ; 88 : widthMM = GetDeviceCaps(dc, HORZSIZE); 00112 ba 04 00 00 00 mov edx, 4 00117 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dc$[rbp] 0011e ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 00124 89 45 24 mov DWORD PTR widthMM$[rbp], eax ; 89 : heightMM = GetDeviceCaps(dc, VERTSIZE); 00127 ba 06 00 00 00 mov edx, 6 0012c 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dc$[rbp] 00133 ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 00139 89 45 44 mov DWORD PTR heightMM$[rbp], eax ; 90 : } 0013c e9 8e 00 00 00 jmp $LN6@createMoni $LN5@createMoni: ; 91 : else ; 92 : { ; 93 : widthMM = (int) (dm.dmPelsWidth * 25.4f / GetDeviceCaps(dc, LOGPIXELSX)); 00141 8b 85 5c 01 00 00 mov eax, DWORD PTR dm$[rbp+172] 00147 f3 48 0f 2a c0 cvtsi2ss xmm0, rax 0014c f3 0f 59 05 00 00 00 00 mulss xmm0, DWORD PTR __real@41cb3333 00154 f3 0f 11 85 84 02 00 00 movss DWORD PTR tv129[rbp], xmm0 0015c ba 58 00 00 00 mov edx, 88 ; 00000058H 00161 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dc$[rbp] 00168 ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 0016e f3 0f 2a c0 cvtsi2ss xmm0, eax 00172 f3 0f 10 8d 84 02 00 00 movss xmm1, DWORD PTR tv129[rbp] 0017a f3 0f 5e c8 divss xmm1, xmm0 0017e 0f 28 c1 movaps xmm0, xmm1 00181 f3 0f 2c c0 cvttss2si eax, xmm0 00185 89 45 24 mov DWORD PTR widthMM$[rbp], eax ; 94 : heightMM = (int) (dm.dmPelsHeight * 25.4f / GetDeviceCaps(dc, LOGPIXELSY)); 00188 8b 85 60 01 00 00 mov eax, DWORD PTR dm$[rbp+176] 0018e f3 48 0f 2a c0 cvtsi2ss xmm0, rax 00193 f3 0f 59 05 00 00 00 00 mulss xmm0, DWORD PTR __real@41cb3333 0019b f3 0f 11 85 84 02 00 00 movss DWORD PTR tv138[rbp], xmm0 001a3 ba 5a 00 00 00 mov edx, 90 ; 0000005aH 001a8 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dc$[rbp] 001af ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 001b5 f3 0f 2a c0 cvtsi2ss xmm0, eax 001b9 f3 0f 10 8d 84 02 00 00 movss xmm1, DWORD PTR tv138[rbp] 001c1 f3 0f 5e c8 divss xmm1, xmm0 001c5 0f 28 c1 movaps xmm0, xmm1 001c8 f3 0f 2c c0 cvttss2si eax, xmm0 001cc 89 45 44 mov DWORD PTR heightMM$[rbp], eax $LN6@createMoni: ; 95 : } ; 96 : ; 97 : DeleteDC(dc); 001cf 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR dc$[rbp] 001d6 ff 15 00 00 00 00 call QWORD PTR __imp_DeleteDC ; 98 : ; 99 : monitor = _glfwAllocMonitor(name, widthMM, heightMM); 001dc 44 8b 45 44 mov r8d, DWORD PTR heightMM$[rbp] 001e0 8b 55 24 mov edx, DWORD PTR widthMM$[rbp] 001e3 48 8b 4d 68 mov rcx, QWORD PTR name$[rbp] 001e7 e8 00 00 00 00 call _glfwAllocMonitor 001ec 48 89 45 08 mov QWORD PTR monitor$[rbp], rax ; 100 : _glfw_free(name); 001f0 48 8b 4d 68 mov rcx, QWORD PTR name$[rbp] 001f4 e8 00 00 00 00 call _glfw_free ; 101 : ; 102 : if (adapter->StateFlags & DISPLAY_DEVICE_MODESPRUNED) 001f9 48 8b 85 b0 02 00 00 mov rax, QWORD PTR adapter$[rbp] 00200 8b 80 44 01 00 00 mov eax, DWORD PTR [rax+324] 00206 25 00 00 00 08 and eax, 134217728 ; 08000000H 0020b 85 c0 test eax, eax 0020d 74 0e je SHORT $LN7@createMoni ; 103 : monitor->win32.modesPruned = GLFW_TRUE; 0020f 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] 00213 c7 80 c8 01 00 00 01 00 00 00 mov DWORD PTR [rax+456], 1 $LN7@createMoni: ; 104 : ; 105 : wcscpy(monitor->win32.adapterName, adapter->DeviceName); 0021d 48 8b 85 b0 02 00 00 mov rax, QWORD PTR adapter$[rbp] 00224 48 83 c0 04 add rax, 4 00228 48 8b 4d 08 mov rcx, QWORD PTR monitor$[rbp] 0022c 48 81 c1 08 01 00 00 add rcx, 264 ; 00000108H 00233 48 8b d0 mov rdx, rax 00236 ff 15 00 00 00 00 call QWORD PTR __imp_wcscpy ; 106 : WideCharToMultiByte(CP_UTF8, 0, 0023c 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] 00240 48 05 88 01 00 00 add rax, 392 ; 00000188H 00246 48 8b 8d b0 02 00 00 mov rcx, QWORD PTR adapter$[rbp] 0024d 48 83 c1 04 add rcx, 4 00251 48 c7 44 24 38 00 00 00 00 mov QWORD PTR [rsp+56], 0 0025a 48 c7 44 24 30 00 00 00 00 mov QWORD PTR [rsp+48], 0 00263 c7 44 24 28 20 00 00 00 mov DWORD PTR [rsp+40], 32 ; 00000020H 0026b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 00270 41 b9 ff ff ff ff mov r9d, -1 00276 4c 8b c1 mov r8, rcx 00279 33 d2 xor edx, edx 0027b b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H 00280 ff 15 00 00 00 00 call QWORD PTR __imp_WideCharToMultiByte ; 107 : adapter->DeviceName, -1, ; 108 : monitor->win32.publicAdapterName, ; 109 : sizeof(monitor->win32.publicAdapterName), ; 110 : NULL, NULL); ; 111 : ; 112 : if (display) 00286 48 83 bd b8 02 00 00 00 cmp QWORD PTR display$[rbp], 0 0028e 74 69 je SHORT $LN8@createMoni ; 113 : { ; 114 : wcscpy(monitor->win32.displayName, display->DeviceName); 00290 48 8b 85 b8 02 00 00 mov rax, QWORD PTR display$[rbp] 00297 48 83 c0 04 add rax, 4 0029b 48 8b 4d 08 mov rcx, QWORD PTR monitor$[rbp] 0029f 48 81 c1 48 01 00 00 add rcx, 328 ; 00000148H 002a6 48 8b d0 mov rdx, rax 002a9 ff 15 00 00 00 00 call QWORD PTR __imp_wcscpy ; 115 : WideCharToMultiByte(CP_UTF8, 0, 002af 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] 002b3 48 05 a8 01 00 00 add rax, 424 ; 000001a8H 002b9 48 8b 8d b8 02 00 00 mov rcx, QWORD PTR display$[rbp] 002c0 48 83 c1 04 add rcx, 4 002c4 48 c7 44 24 38 00 00 00 00 mov QWORD PTR [rsp+56], 0 002cd 48 c7 44 24 30 00 00 00 00 mov QWORD PTR [rsp+48], 0 002d6 c7 44 24 28 20 00 00 00 mov DWORD PTR [rsp+40], 32 ; 00000020H 002de 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 002e3 41 b9 ff ff ff ff mov r9d, -1 002e9 4c 8b c1 mov r8, rcx 002ec 33 d2 xor edx, edx 002ee b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H 002f3 ff 15 00 00 00 00 call QWORD PTR __imp_WideCharToMultiByte $LN8@createMoni: ; 116 : display->DeviceName, -1, ; 117 : monitor->win32.publicDisplayName, ; 118 : sizeof(monitor->win32.publicDisplayName), ; 119 : NULL, NULL); ; 120 : } ; 121 : ; 122 : rect.left = dm.dmPosition.x; 002f9 8b 85 fc 00 00 00 mov eax, DWORD PTR dm$[rbp+76] 002ff 89 85 a8 01 00 00 mov DWORD PTR rect$[rbp], eax ; 123 : rect.top = dm.dmPosition.y; 00305 8b 85 00 01 00 00 mov eax, DWORD PTR dm$[rbp+80] 0030b 89 85 ac 01 00 00 mov DWORD PTR rect$[rbp+4], eax ; 124 : rect.right = dm.dmPosition.x + dm.dmPelsWidth; 00311 8b 85 5c 01 00 00 mov eax, DWORD PTR dm$[rbp+172] 00317 8b 8d fc 00 00 00 mov ecx, DWORD PTR dm$[rbp+76] 0031d 03 c8 add ecx, eax 0031f 8b c1 mov eax, ecx 00321 89 85 b0 01 00 00 mov DWORD PTR rect$[rbp+8], eax ; 125 : rect.bottom = dm.dmPosition.y + dm.dmPelsHeight; 00327 8b 85 60 01 00 00 mov eax, DWORD PTR dm$[rbp+176] 0032d 8b 8d 00 01 00 00 mov ecx, DWORD PTR dm$[rbp+80] 00333 03 c8 add ecx, eax 00335 8b c1 mov eax, ecx 00337 89 85 b4 01 00 00 mov DWORD PTR rect$[rbp+12], eax ; 126 : ; 127 : EnumDisplayMonitors(NULL, &rect, monitorCallback, (LPARAM) monitor); 0033d 4c 8b 4d 08 mov r9, QWORD PTR monitor$[rbp] 00341 4c 8d 05 00 00 00 00 lea r8, OFFSET FLAT:monitorCallback 00348 48 8d 95 a8 01 00 00 lea rdx, QWORD PTR rect$[rbp] 0034f 33 c9 xor ecx, ecx 00351 ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplayMonitors ; 128 : return monitor; 00357 48 8b 45 08 mov rax, QWORD PTR monitor$[rbp] $LN1@createMoni: ; 129 : } 0035b 48 8b f8 mov rdi, rax 0035e 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] 00362 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:createMonitor$rtcFrameData 00369 e8 00 00 00 00 call _RTC_CheckStackVars 0036e 48 8b c7 mov rax, rdi 00371 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00378 48 33 cd xor rcx, rbp 0037b e8 00 00 00 00 call __security_check_cookie 00380 48 8d a5 98 02 00 00 lea rsp, QWORD PTR [rbp+664] 00387 5f pop rdi 00388 5d pop rbp 00389 c3 ret 0 createMonitor ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT monitorCallback _TEXT SEGMENT mi$ = 16 monitor$4 = 152 __$ArrayPad$ = 360 handle$ = 400 dc$ = 408 rect$ = 416 data$ = 424 monitorCallback PROC ; COMDAT ; 46 : { 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 2e 00 00 00 mov ecx, 46 ; 0000002eH 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 68 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 47 : MONITORINFOEXW mi; ; 48 : ZeroMemory(&mi, sizeof(mi)); 00058 41 b8 68 00 00 00 mov r8d, 104 ; 00000068H 0005e 33 d2 xor edx, edx 00060 48 8d 4d 10 lea rcx, QWORD PTR mi$[rbp] 00064 e8 00 00 00 00 call memset ; 49 : mi.cbSize = sizeof(mi); 00069 c7 45 10 68 00 00 00 mov DWORD PTR mi$[rbp], 104 ; 00000068H ; 50 : ; 51 : if (GetMonitorInfoW(handle, (MONITORINFO*) &mi)) 00070 48 8d 55 10 lea rdx, QWORD PTR mi$[rbp] 00074 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR handle$[rbp] 0007b ff 15 00 00 00 00 call QWORD PTR __imp_GetMonitorInfoW 00081 85 c0 test eax, eax 00083 74 41 je SHORT $LN2@monitorCal ; 52 : { ; 53 : _GLFWmonitor* monitor = (_GLFWmonitor*) data; 00085 48 8b 85 a8 01 00 00 mov rax, QWORD PTR data$[rbp] 0008c 48 89 85 98 00 00 00 mov QWORD PTR monitor$4[rbp], rax ; 54 : if (wcscmp(mi.szDevice, monitor->win32.adapterName) == 0) 00093 48 8b 85 98 00 00 00 mov rax, QWORD PTR monitor$4[rbp] 0009a 48 05 08 01 00 00 add rax, 264 ; 00000108H 000a0 48 8b d0 mov rdx, rax 000a3 48 8d 4d 38 lea rcx, QWORD PTR mi$[rbp+40] 000a7 ff 15 00 00 00 00 call QWORD PTR __imp_wcscmp 000ad 85 c0 test eax, eax 000af 75 15 jne SHORT $LN3@monitorCal ; 55 : monitor->win32.handle = handle; 000b1 48 8b 85 98 00 00 00 mov rax, QWORD PTR monitor$4[rbp] 000b8 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR handle$[rbp] 000bf 48 89 88 00 01 00 00 mov QWORD PTR [rax+256], rcx $LN3@monitorCal: $LN2@monitorCal: ; 56 : } ; 57 : ; 58 : return TRUE; 000c6 b8 01 00 00 00 mov eax, 1 ; 59 : } 000cb 8b f8 mov edi, eax 000cd 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 000d1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:monitorCallback$rtcFrameData 000d8 e8 00 00 00 00 call _RTC_CheckStackVars 000dd 8b c7 mov eax, edi 000df 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000e6 48 33 cd xor rcx, rbp 000e9 e8 00 00 00 00 call __security_check_cookie 000ee 48 8d a5 78 01 00 00 lea rsp, QWORD PTR [rbp+376] 000f5 5f pop rdi 000f6 5d pop rbp 000f7 c3 ret 0 monitorCallback ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwSetGammaRampWin32 _TEXT SEGMENT dc$ = 8 values$ = 48 __$ArrayPad$ = 2360 monitor$ = 2400 ramp$ = 2408 _glfwSetGammaRampWin32 PROC ; COMDAT ; 511 : { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 68 09 00 00 sub rsp, 2408 ; 00000968H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 92 01 00 00 mov ecx, 402 ; 00000192H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 88 09 00 00 mov rcx, QWORD PTR [rsp+2440] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 38 09 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 512 : HDC dc; ; 513 : WORD values[3][256]; ; 514 : ; 515 : if (ramp->size != 256) 0004e 48 8b 85 68 09 00 00 mov rax, QWORD PTR ramp$[rbp] 00055 81 78 18 00 01 00 00 cmp DWORD PTR [rax+24], 256 ; 00000100H 0005c 74 16 je SHORT $LN2@glfwSetGam ; 516 : { ; 517 : _glfwInputError(GLFW_PLATFORM_ERROR, 0005e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CD@EGEEPFHF@Win32?3?5Gamma?5ramp?5size?5must?5be?5@ 00065 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 0006a e8 00 00 00 00 call _glfwInputError ; 518 : "Win32: Gamma ramp size must be 256"); ; 519 : return; 0006f e9 b3 00 00 00 jmp $LN1@glfwSetGam $LN2@glfwSetGam: ; 520 : } ; 521 : ; 522 : memcpy(values[0], ramp->red, sizeof(values[0])); 00074 b8 00 02 00 00 mov eax, 512 ; 00000200H 00079 48 6b c0 00 imul rax, rax, 0 0007d 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 00082 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 00088 48 8b 8d 68 09 00 00 mov rcx, QWORD PTR ramp$[rbp] 0008f 48 8b 11 mov rdx, QWORD PTR [rcx] 00092 48 8b c8 mov rcx, rax 00095 e8 00 00 00 00 call memcpy ; 523 : memcpy(values[1], ramp->green, sizeof(values[1])); 0009a b8 00 02 00 00 mov eax, 512 ; 00000200H 0009f 48 6b c0 01 imul rax, rax, 1 000a3 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 000a8 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 000ae 48 8b 8d 68 09 00 00 mov rcx, QWORD PTR ramp$[rbp] 000b5 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] 000b9 48 8b c8 mov rcx, rax 000bc e8 00 00 00 00 call memcpy ; 524 : memcpy(values[2], ramp->blue, sizeof(values[2])); 000c1 b8 00 02 00 00 mov eax, 512 ; 00000200H 000c6 48 6b c0 02 imul rax, rax, 2 000ca 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 000cf 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 000d5 48 8b 8d 68 09 00 00 mov rcx, QWORD PTR ramp$[rbp] 000dc 48 8b 51 10 mov rdx, QWORD PTR [rcx+16] 000e0 48 8b c8 mov rcx, rax 000e3 e8 00 00 00 00 call memcpy ; 525 : ; 526 : dc = CreateDCW(L"DISPLAY", monitor->win32.adapterName, NULL, NULL); 000e8 48 8b 85 60 09 00 00 mov rax, QWORD PTR monitor$[rbp] 000ef 48 05 08 01 00 00 add rax, 264 ; 00000108H 000f5 45 33 c9 xor r9d, r9d 000f8 45 33 c0 xor r8d, r8d 000fb 48 8b d0 mov rdx, rax 000fe 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ 00105 ff 15 00 00 00 00 call QWORD PTR __imp_CreateDCW 0010b 48 89 45 08 mov QWORD PTR dc$[rbp], rax ; 527 : SetDeviceGammaRamp(dc, values); 0010f 48 8d 55 30 lea rdx, QWORD PTR values$[rbp] 00113 48 8b 4d 08 mov rcx, QWORD PTR dc$[rbp] 00117 ff 15 00 00 00 00 call QWORD PTR __imp_SetDeviceGammaRamp ; 528 : DeleteDC(dc); 0011d 48 8b 4d 08 mov rcx, QWORD PTR dc$[rbp] 00121 ff 15 00 00 00 00 call QWORD PTR __imp_DeleteDC $LN1@glfwSetGam: ; 529 : } 00127 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0012b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwSetGammaRampWin32$rtcFrameData 00132 e8 00 00 00 00 call _RTC_CheckStackVars 00137 48 8b 8d 38 09 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0013e 48 33 cd xor rcx, rbp 00141 e8 00 00 00 00 call __security_check_cookie 00146 48 8d a5 48 09 00 00 lea rsp, QWORD PTR [rbp+2376] 0014d 5f pop rdi 0014e 5d pop rbp 0014f c3 ret 0 _glfwSetGammaRampWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetGammaRampWin32 _TEXT SEGMENT dc$ = 8 values$ = 48 __$ArrayPad$ = 2360 monitor$ = 2400 ramp$ = 2408 _glfwGetGammaRampWin32 PROC ; COMDAT ; 493 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 68 09 00 00 sub rsp, 2408 ; 00000968H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 92 01 00 00 mov ecx, 402 ; 00000192H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 88 09 00 00 mov rcx, QWORD PTR [rsp+2440] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 38 09 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 494 : HDC dc; ; 495 : WORD values[3][256]; ; 496 : ; 497 : dc = CreateDCW(L"DISPLAY", monitor->win32.adapterName, NULL, NULL); 0004e 48 8b 85 60 09 00 00 mov rax, QWORD PTR monitor$[rbp] 00055 48 05 08 01 00 00 add rax, 264 ; 00000108H 0005b 45 33 c9 xor r9d, r9d 0005e 45 33 c0 xor r8d, r8d 00061 48 8b d0 mov rdx, rax 00064 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@ 0006b ff 15 00 00 00 00 call QWORD PTR __imp_CreateDCW 00071 48 89 45 08 mov QWORD PTR dc$[rbp], rax ; 498 : GetDeviceGammaRamp(dc, values); 00075 48 8d 55 30 lea rdx, QWORD PTR values$[rbp] 00079 48 8b 4d 08 mov rcx, QWORD PTR dc$[rbp] 0007d ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceGammaRamp ; 499 : DeleteDC(dc); 00083 48 8b 4d 08 mov rcx, QWORD PTR dc$[rbp] 00087 ff 15 00 00 00 00 call QWORD PTR __imp_DeleteDC ; 500 : ; 501 : _glfwAllocGammaArrays(ramp, 256); 0008d ba 00 01 00 00 mov edx, 256 ; 00000100H 00092 48 8b 8d 68 09 00 00 mov rcx, QWORD PTR ramp$[rbp] 00099 e8 00 00 00 00 call _glfwAllocGammaArrays ; 502 : ; 503 : memcpy(ramp->red, values[0], sizeof(values[0])); 0009e b8 00 02 00 00 mov eax, 512 ; 00000200H 000a3 48 6b c0 00 imul rax, rax, 0 000a7 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 000ac 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 000b2 48 8b d0 mov rdx, rax 000b5 48 8b 85 68 09 00 00 mov rax, QWORD PTR ramp$[rbp] 000bc 48 8b 08 mov rcx, QWORD PTR [rax] 000bf e8 00 00 00 00 call memcpy ; 504 : memcpy(ramp->green, values[1], sizeof(values[1])); 000c4 b8 00 02 00 00 mov eax, 512 ; 00000200H 000c9 48 6b c0 01 imul rax, rax, 1 000cd 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 000d2 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 000d8 48 8b d0 mov rdx, rax 000db 48 8b 85 68 09 00 00 mov rax, QWORD PTR ramp$[rbp] 000e2 48 8b 48 08 mov rcx, QWORD PTR [rax+8] 000e6 e8 00 00 00 00 call memcpy ; 505 : memcpy(ramp->blue, values[2], sizeof(values[2])); 000eb b8 00 02 00 00 mov eax, 512 ; 00000200H 000f0 48 6b c0 02 imul rax, rax, 2 000f4 48 8d 44 05 30 lea rax, QWORD PTR values$[rbp+rax] 000f9 41 b8 00 02 00 00 mov r8d, 512 ; 00000200H 000ff 48 8b d0 mov rdx, rax 00102 48 8b 85 68 09 00 00 mov rax, QWORD PTR ramp$[rbp] 00109 48 8b 48 10 mov rcx, QWORD PTR [rax+16] 0010d e8 00 00 00 00 call memcpy ; 506 : ; 507 : return GLFW_TRUE; 00112 b8 01 00 00 00 mov eax, 1 ; 508 : } 00117 8b f8 mov edi, eax 00119 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0011d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetGammaRampWin32$rtcFrameData 00124 e8 00 00 00 00 call _RTC_CheckStackVars 00129 8b c7 mov eax, edi 0012b 48 8b 8d 38 09 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00132 48 33 cd xor rcx, rbp 00135 e8 00 00 00 00 call __security_check_cookie 0013a 48 8d a5 48 09 00 00 lea rsp, QWORD PTR [rbp+2376] 00141 5f pop rdi 00142 5d pop rbp 00143 c3 ret 0 _glfwGetGammaRampWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetVideoModeWin32 _TEXT SEGMENT dm$ = 16 __$ArrayPad$ = 440 monitor$ = 480 mode$ = 488 _glfwGetVideoModeWin32 PROC ; COMDAT ; 476 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 0001d b9 42 00 00 00 mov ecx, 66 ; 00000042H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 477 : DEVMODEW dm; ; 478 : ZeroMemory(&dm, sizeof(dm)); 0004e 41 b8 dc 00 00 00 mov r8d, 220 ; 000000dcH 00054 33 d2 xor edx, edx 00056 48 8d 4d 10 lea rcx, QWORD PTR dm$[rbp] 0005a e8 00 00 00 00 call memset ; 479 : dm.dmSize = sizeof(dm); 0005f b8 dc 00 00 00 mov eax, 220 ; 000000dcH 00064 66 89 45 54 mov WORD PTR dm$[rbp+68], ax ; 480 : ; 481 : EnumDisplaySettingsW(monitor->win32.adapterName, ENUM_CURRENT_SETTINGS, &dm); 00068 48 8b 85 e0 01 00 00 mov rax, QWORD PTR monitor$[rbp] 0006f 48 05 08 01 00 00 add rax, 264 ; 00000108H 00075 4c 8d 45 10 lea r8, QWORD PTR dm$[rbp] 00079 ba ff ff ff ff mov edx, -1 ; ffffffffH 0007e 48 8b c8 mov rcx, rax 00081 ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplaySettingsW ; 482 : ; 483 : mode->width = dm.dmPelsWidth; 00087 48 8b 85 e8 01 00 00 mov rax, QWORD PTR mode$[rbp] 0008e 8b 8d bc 00 00 00 mov ecx, DWORD PTR dm$[rbp+172] 00094 89 08 mov DWORD PTR [rax], ecx ; 484 : mode->height = dm.dmPelsHeight; 00096 48 8b 85 e8 01 00 00 mov rax, QWORD PTR mode$[rbp] 0009d 8b 8d c0 00 00 00 mov ecx, DWORD PTR dm$[rbp+176] 000a3 89 48 04 mov DWORD PTR [rax+4], ecx ; 485 : mode->refreshRate = dm.dmDisplayFrequency; 000a6 48 8b 85 e8 01 00 00 mov rax, QWORD PTR mode$[rbp] 000ad 8b 8d c8 00 00 00 mov ecx, DWORD PTR dm$[rbp+184] 000b3 89 48 14 mov DWORD PTR [rax+20], ecx ; 486 : _glfwSplitBPP(dm.dmBitsPerPel, 000b6 48 8b 85 e8 01 00 00 mov rax, QWORD PTR mode$[rbp] 000bd 48 83 c0 10 add rax, 16 000c1 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR mode$[rbp] 000c8 48 83 c1 0c add rcx, 12 000cc 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR mode$[rbp] 000d3 48 83 c2 08 add rdx, 8 000d7 4c 8b c8 mov r9, rax 000da 4c 8b c1 mov r8, rcx 000dd 8b 8d b8 00 00 00 mov ecx, DWORD PTR dm$[rbp+168] 000e3 e8 00 00 00 00 call _glfwSplitBPP ; 487 : &mode->redBits, ; 488 : &mode->greenBits, ; 489 : &mode->blueBits); ; 490 : } 000e8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 000ec 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetVideoModeWin32$rtcFrameData 000f3 e8 00 00 00 00 call _RTC_CheckStackVars 000f8 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000ff 48 33 cd xor rcx, rbp 00102 e8 00 00 00 00 call __security_check_cookie 00107 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 0010e 5f pop rdi 0010f 5d pop rbp 00110 c3 ret 0 _glfwGetVideoModeWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetVideoModesWin32 _TEXT SEGMENT modeIndex$ = 4 size$ = 36 result$ = 72 i$5 = 100 mode$6 = 136 dm$7 = 192 __$ArrayPad$ = 616 monitor$ = 656 count$ = 664 _glfwGetVideoModesWin32 PROC ; COMDAT ; 399 : { $LN17: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 56 push rsi 0000c 57 push rdi 0000d 48 81 ec a0 02 00 00 sub rsp, 672 ; 000002a0H 00014 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00019 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0001e b9 6c 00 00 00 mov ecx, 108 ; 0000006cH 00023 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00028 f3 ab rep stosd 0002a 48 8b 8c 24 c8 02 00 00 mov rcx, QWORD PTR [rsp+712] 00032 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00039 48 33 c5 xor rax, rbp 0003c 48 89 85 68 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00043 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 400 : int modeIndex = 0, size = 0; 0004f c7 45 04 00 00 00 00 mov DWORD PTR modeIndex$[rbp], 0 00056 c7 45 24 00 00 00 00 mov DWORD PTR size$[rbp], 0 ; 401 : GLFWvidmode* result = NULL; 0005d 48 c7 45 48 00 00 00 00 mov QWORD PTR result$[rbp], 0 ; 402 : ; 403 : *count = 0; 00065 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 0006c c7 00 00 00 00 00 mov DWORD PTR [rax], 0 $LN2@glfwGetVid: ; 404 : ; 405 : for (;;) ; 406 : { ; 407 : int i; ; 408 : GLFWvidmode mode; ; 409 : DEVMODEW dm; ; 410 : ; 411 : ZeroMemory(&dm, sizeof(dm)); 00072 41 b8 dc 00 00 00 mov r8d, 220 ; 000000dcH 00078 33 d2 xor edx, edx 0007a 48 8d 8d c0 00 00 00 lea rcx, QWORD PTR dm$7[rbp] 00081 e8 00 00 00 00 call memset ; 412 : dm.dmSize = sizeof(dm); 00086 b8 dc 00 00 00 mov eax, 220 ; 000000dcH 0008b 66 89 85 04 01 00 00 mov WORD PTR dm$7[rbp+68], ax ; 413 : ; 414 : if (!EnumDisplaySettingsW(monitor->win32.adapterName, modeIndex, &dm)) 00092 48 8b 85 90 02 00 00 mov rax, QWORD PTR monitor$[rbp] 00099 48 05 08 01 00 00 add rax, 264 ; 00000108H 0009f 4c 8d 85 c0 00 00 00 lea r8, QWORD PTR dm$7[rbp] 000a6 8b 55 04 mov edx, DWORD PTR modeIndex$[rbp] 000a9 48 8b c8 mov rcx, rax 000ac ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplaySettingsW 000b2 85 c0 test eax, eax 000b4 75 05 jne SHORT $LN8@glfwGetVid ; 415 : break; 000b6 e9 6e 01 00 00 jmp $LN3@glfwGetVid $LN8@glfwGetVid: ; 416 : ; 417 : modeIndex++; 000bb 8b 45 04 mov eax, DWORD PTR modeIndex$[rbp] 000be ff c0 inc eax 000c0 89 45 04 mov DWORD PTR modeIndex$[rbp], eax ; 418 : ; 419 : // Skip modes with less than 15 BPP ; 420 : if (dm.dmBitsPerPel < 15) 000c3 83 bd 68 01 00 00 0f cmp DWORD PTR dm$7[rbp+168], 15 000ca 73 02 jae SHORT $LN9@glfwGetVid ; 421 : continue; 000cc eb a4 jmp SHORT $LN2@glfwGetVid $LN9@glfwGetVid: ; 422 : ; 423 : mode.width = dm.dmPelsWidth; 000ce 8b 85 6c 01 00 00 mov eax, DWORD PTR dm$7[rbp+172] 000d4 89 85 88 00 00 00 mov DWORD PTR mode$6[rbp], eax ; 424 : mode.height = dm.dmPelsHeight; 000da 8b 85 70 01 00 00 mov eax, DWORD PTR dm$7[rbp+176] 000e0 89 85 8c 00 00 00 mov DWORD PTR mode$6[rbp+4], eax ; 425 : mode.refreshRate = dm.dmDisplayFrequency; 000e6 8b 85 78 01 00 00 mov eax, DWORD PTR dm$7[rbp+184] 000ec 89 85 9c 00 00 00 mov DWORD PTR mode$6[rbp+20], eax ; 426 : _glfwSplitBPP(dm.dmBitsPerPel, 000f2 4c 8d 8d 98 00 00 00 lea r9, QWORD PTR mode$6[rbp+16] 000f9 4c 8d 85 94 00 00 00 lea r8, QWORD PTR mode$6[rbp+12] 00100 48 8d 95 90 00 00 00 lea rdx, QWORD PTR mode$6[rbp+8] 00107 8b 8d 68 01 00 00 mov ecx, DWORD PTR dm$7[rbp+168] 0010d e8 00 00 00 00 call _glfwSplitBPP ; 427 : &mode.redBits, ; 428 : &mode.greenBits, ; 429 : &mode.blueBits); ; 430 : ; 431 : for (i = 0; i < *count; i++) 00112 c7 45 64 00 00 00 00 mov DWORD PTR i$5[rbp], 0 00119 eb 08 jmp SHORT $LN7@glfwGetVid $LN5@glfwGetVid: 0011b 8b 45 64 mov eax, DWORD PTR i$5[rbp] 0011e ff c0 inc eax 00120 89 45 64 mov DWORD PTR i$5[rbp], eax $LN7@glfwGetVid: 00123 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 0012a 8b 00 mov eax, DWORD PTR [rax] 0012c 39 45 64 cmp DWORD PTR i$5[rbp], eax 0012f 7d 29 jge SHORT $LN6@glfwGetVid ; 432 : { ; 433 : if (_glfwCompareVideoModes(result + i, &mode) == 0) 00131 48 63 45 64 movsxd rax, DWORD PTR i$5[rbp] 00135 48 6b c0 18 imul rax, rax, 24 00139 48 8b 4d 48 mov rcx, QWORD PTR result$[rbp] 0013d 48 03 c8 add rcx, rax 00140 48 8b c1 mov rax, rcx 00143 48 8d 95 88 00 00 00 lea rdx, QWORD PTR mode$6[rbp] 0014a 48 8b c8 mov rcx, rax 0014d e8 00 00 00 00 call _glfwCompareVideoModes 00152 85 c0 test eax, eax 00154 75 02 jne SHORT $LN10@glfwGetVid ; 434 : break; 00156 eb 02 jmp SHORT $LN6@glfwGetVid $LN10@glfwGetVid: ; 435 : } 00158 eb c1 jmp SHORT $LN5@glfwGetVid $LN6@glfwGetVid: ; 436 : ; 437 : // Skip duplicate modes ; 438 : if (i < *count) 0015a 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 00161 8b 00 mov eax, DWORD PTR [rax] 00163 39 45 64 cmp DWORD PTR i$5[rbp], eax 00166 7d 05 jge SHORT $LN11@glfwGetVid ; 439 : continue; 00168 e9 05 ff ff ff jmp $LN2@glfwGetVid $LN11@glfwGetVid: ; 440 : ; 441 : if (monitor->win32.modesPruned) 0016d 48 8b 85 90 02 00 00 mov rax, QWORD PTR monitor$[rbp] 00174 83 b8 c8 01 00 00 00 cmp DWORD PTR [rax+456], 0 0017b 74 38 je SHORT $LN12@glfwGetVid ; 442 : { ; 443 : // Skip modes not supported by the connected displays ; 444 : if (ChangeDisplaySettingsExW(monitor->win32.adapterName, ; 445 : &dm, ; 446 : NULL, ; 447 : CDS_TEST, ; 448 : NULL) != DISP_CHANGE_SUCCESSFUL) 0017d 48 8b 85 90 02 00 00 mov rax, QWORD PTR monitor$[rbp] 00184 48 05 08 01 00 00 add rax, 264 ; 00000108H 0018a 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 00193 41 b9 02 00 00 00 mov r9d, 2 00199 45 33 c0 xor r8d, r8d 0019c 48 8d 95 c0 00 00 00 lea rdx, QWORD PTR dm$7[rbp] 001a3 48 8b c8 mov rcx, rax 001a6 ff 15 00 00 00 00 call QWORD PTR __imp_ChangeDisplaySettingsExW 001ac 85 c0 test eax, eax 001ae 74 05 je SHORT $LN13@glfwGetVid ; 449 : { ; 450 : continue; 001b0 e9 bd fe ff ff jmp $LN2@glfwGetVid $LN13@glfwGetVid: $LN12@glfwGetVid: ; 451 : } ; 452 : } ; 453 : ; 454 : if (*count == size) 001b5 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 001bc 8b 4d 24 mov ecx, DWORD PTR size$[rbp] 001bf 39 08 cmp DWORD PTR [rax], ecx 001c1 75 23 jne SHORT $LN14@glfwGetVid ; 455 : { ; 456 : size += 128; 001c3 8b 45 24 mov eax, DWORD PTR size$[rbp] 001c6 05 80 00 00 00 add eax, 128 ; 00000080H 001cb 89 45 24 mov DWORD PTR size$[rbp], eax ; 457 : result = (GLFWvidmode*) _glfw_realloc(result, size * sizeof(GLFWvidmode)); 001ce 48 63 45 24 movsxd rax, DWORD PTR size$[rbp] 001d2 48 6b c0 18 imul rax, rax, 24 001d6 48 8b d0 mov rdx, rax 001d9 48 8b 4d 48 mov rcx, QWORD PTR result$[rbp] 001dd e8 00 00 00 00 call _glfw_realloc 001e2 48 89 45 48 mov QWORD PTR result$[rbp], rax $LN14@glfwGetVid: ; 458 : } ; 459 : ; 460 : (*count)++; 001e6 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 001ed 8b 00 mov eax, DWORD PTR [rax] 001ef ff c0 inc eax 001f1 48 8b 8d 98 02 00 00 mov rcx, QWORD PTR count$[rbp] 001f8 89 01 mov DWORD PTR [rcx], eax ; 461 : result[*count - 1] = mode; 001fa 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 00201 8b 00 mov eax, DWORD PTR [rax] 00203 ff c8 dec eax 00205 48 98 cdqe 00207 48 6b c0 18 imul rax, rax, 24 0020b 48 8b 4d 48 mov rcx, QWORD PTR result$[rbp] 0020f 48 8d 95 88 00 00 00 lea rdx, QWORD PTR mode$6[rbp] 00216 48 8d 3c 01 lea rdi, QWORD PTR [rcx+rax] 0021a 48 8b f2 mov rsi, rdx 0021d b9 18 00 00 00 mov ecx, 24 00222 f3 a4 rep movsb ; 462 : } 00224 e9 49 fe ff ff jmp $LN2@glfwGetVid $LN3@glfwGetVid: ; 463 : ; 464 : if (!*count) 00229 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 00230 83 38 00 cmp DWORD PTR [rax], 0 00233 75 30 jne SHORT $LN15@glfwGetVid ; 465 : { ; 466 : // HACK: Report the current mode if no valid modes were found ; 467 : result = _glfw_calloc(1, sizeof(GLFWvidmode)); 00235 ba 18 00 00 00 mov edx, 24 0023a b9 01 00 00 00 mov ecx, 1 0023f e8 00 00 00 00 call _glfw_calloc 00244 48 89 45 48 mov QWORD PTR result$[rbp], rax ; 468 : _glfwGetVideoModeWin32(monitor, result); 00248 48 8b 55 48 mov rdx, QWORD PTR result$[rbp] 0024c 48 8b 8d 90 02 00 00 mov rcx, QWORD PTR monitor$[rbp] 00253 e8 00 00 00 00 call _glfwGetVideoModeWin32 ; 469 : *count = 1; 00258 48 8b 85 98 02 00 00 mov rax, QWORD PTR count$[rbp] 0025f c7 00 01 00 00 00 mov DWORD PTR [rax], 1 $LN15@glfwGetVid: ; 470 : } ; 471 : ; 472 : return result; 00265 48 8b 45 48 mov rax, QWORD PTR result$[rbp] ; 473 : } 00269 48 8b f8 mov rdi, rax 0026c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00270 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetVideoModesWin32$rtcFrameData 00277 e8 00 00 00 00 call _RTC_CheckStackVars 0027c 48 8b c7 mov rax, rdi 0027f 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00286 48 33 cd xor rcx, rbp 00289 e8 00 00 00 00 call __security_check_cookie 0028e 48 8d a5 70 02 00 00 lea rsp, QWORD PTR [rbp+624] 00295 5f pop rdi 00296 5e pop rsi 00297 5d pop rbp 00298 c3 ret 0 _glfwGetVideoModesWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetMonitorWorkareaWin32 _TEXT SEGMENT mi$ = 8 __$ArrayPad$ = 248 monitor$ = 288 xpos$ = 296 ypos$ = 304 width$ = 312 height$ = 320 _glfwGetMonitorWorkareaWin32 PROC ; COMDAT ; 384 : { $LN7: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00014 55 push rbp 00015 57 push rdi 00016 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00027 b9 12 00 00 00 mov ecx, 18 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00031 f3 ab rep stosd 00033 48 8b 8c 24 48 01 00 00 mov rcx, QWORD PTR [rsp+328] 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00042 48 33 c5 xor rax, rbp 00045 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 385 : MONITORINFO mi = { sizeof(mi) }; 00058 c7 45 08 28 00 00 00 mov DWORD PTR mi$[rbp], 40 ; 00000028H 0005f 48 8d 45 0c lea rax, QWORD PTR mi$[rbp+4] 00063 48 8b f8 mov rdi, rax 00066 33 c0 xor eax, eax 00068 b9 24 00 00 00 mov ecx, 36 ; 00000024H 0006d f3 aa rep stosb ; 386 : GetMonitorInfoW(monitor->win32.handle, &mi); 0006f 48 8d 55 08 lea rdx, QWORD PTR mi$[rbp] 00073 48 8b 85 20 01 00 00 mov rax, QWORD PTR monitor$[rbp] 0007a 48 8b 88 00 01 00 00 mov rcx, QWORD PTR [rax+256] 00081 ff 15 00 00 00 00 call QWORD PTR __imp_GetMonitorInfoW ; 387 : ; 388 : if (xpos) 00087 48 83 bd 28 01 00 00 00 cmp QWORD PTR xpos$[rbp], 0 0008f 74 0c je SHORT $LN2@glfwGetMon ; 389 : *xpos = mi.rcWork.left; 00091 48 8b 85 28 01 00 00 mov rax, QWORD PTR xpos$[rbp] 00098 8b 4d 1c mov ecx, DWORD PTR mi$[rbp+20] 0009b 89 08 mov DWORD PTR [rax], ecx $LN2@glfwGetMon: ; 390 : if (ypos) 0009d 48 83 bd 30 01 00 00 00 cmp QWORD PTR ypos$[rbp], 0 000a5 74 0c je SHORT $LN3@glfwGetMon ; 391 : *ypos = mi.rcWork.top; 000a7 48 8b 85 30 01 00 00 mov rax, QWORD PTR ypos$[rbp] 000ae 8b 4d 20 mov ecx, DWORD PTR mi$[rbp+24] 000b1 89 08 mov DWORD PTR [rax], ecx $LN3@glfwGetMon: ; 392 : if (width) 000b3 48 83 bd 38 01 00 00 00 cmp QWORD PTR width$[rbp], 0 000bb 74 13 je SHORT $LN4@glfwGetMon ; 393 : *width = mi.rcWork.right - mi.rcWork.left; 000bd 8b 45 1c mov eax, DWORD PTR mi$[rbp+20] 000c0 8b 4d 24 mov ecx, DWORD PTR mi$[rbp+28] 000c3 2b c8 sub ecx, eax 000c5 8b c1 mov eax, ecx 000c7 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR width$[rbp] 000ce 89 01 mov DWORD PTR [rcx], eax $LN4@glfwGetMon: ; 394 : if (height) 000d0 48 83 bd 40 01 00 00 00 cmp QWORD PTR height$[rbp], 0 000d8 74 13 je SHORT $LN5@glfwGetMon ; 395 : *height = mi.rcWork.bottom - mi.rcWork.top; 000da 8b 45 20 mov eax, DWORD PTR mi$[rbp+24] 000dd 8b 4d 28 mov ecx, DWORD PTR mi$[rbp+32] 000e0 2b c8 sub ecx, eax 000e2 8b c1 mov eax, ecx 000e4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR height$[rbp] 000eb 89 01 mov DWORD PTR [rcx], eax $LN5@glfwGetMon: ; 396 : } 000ed 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 000f1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetMonitorWorkareaWin32$rtcFrameData 000f8 e8 00 00 00 00 call _RTC_CheckStackVars 000fd 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00104 48 33 cd xor rcx, rbp 00107 e8 00 00 00 00 call __security_check_cookie 0010c 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] 00113 5f pop rdi 00114 5d pop rbp 00115 c3 ret 0 _glfwGetMonitorWorkareaWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetMonitorContentScaleWin32 _TEXT SEGMENT monitor$ = 224 xscale$ = 232 yscale$ = 240 _glfwGetMonitorContentScaleWin32 PROC ; COMDAT ; 377 : { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 378 : _glfwGetHMONITORContentScaleWin32(monitor->win32.handle, xscale, yscale); 00029 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR yscale$[rbp] 00030 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR xscale$[rbp] 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR monitor$[rbp] 0003e 48 8b 88 00 01 00 00 mov rcx, QWORD PTR [rax+256] 00045 e8 00 00 00 00 call _glfwGetHMONITORContentScaleWin32 ; 379 : } 0004a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00051 5f pop rdi 00052 5d pop rbp 00053 c3 ret 0 _glfwGetMonitorContentScaleWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetMonitorPosWin32 _TEXT SEGMENT dm$ = 16 __$ArrayPad$ = 440 monitor$ = 480 xpos$ = 488 ypos$ = 496 _glfwGetMonitorPosWin32 PROC ; COMDAT ; 359 : { $LN5: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 01 00 00 sub rsp, 488 ; 000001e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00022 b9 42 00 00 00 mov ecx, 66 ; 00000042H 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0002c f3 ab rep stosd 0002e 48 8b 8c 24 08 02 00 00 mov rcx, QWORD PTR [rsp+520] 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0003d 48 33 c5 xor rax, rbp 00040 48 89 85 b8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 360 : DEVMODEW dm; ; 361 : ZeroMemory(&dm, sizeof(dm)); 00053 41 b8 dc 00 00 00 mov r8d, 220 ; 000000dcH 00059 33 d2 xor edx, edx 0005b 48 8d 4d 10 lea rcx, QWORD PTR dm$[rbp] 0005f e8 00 00 00 00 call memset ; 362 : dm.dmSize = sizeof(dm); 00064 b8 dc 00 00 00 mov eax, 220 ; 000000dcH 00069 66 89 45 54 mov WORD PTR dm$[rbp+68], ax ; 363 : ; 364 : EnumDisplaySettingsExW(monitor->win32.adapterName, 0006d 48 8b 85 e0 01 00 00 mov rax, QWORD PTR monitor$[rbp] 00074 48 05 08 01 00 00 add rax, 264 ; 00000108H 0007a 41 b9 04 00 00 00 mov r9d, 4 00080 4c 8d 45 10 lea r8, QWORD PTR dm$[rbp] 00084 ba ff ff ff ff mov edx, -1 ; ffffffffH 00089 48 8b c8 mov rcx, rax 0008c ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplaySettingsExW ; 365 : ENUM_CURRENT_SETTINGS, ; 366 : &dm, ; 367 : EDS_ROTATEDMODE); ; 368 : ; 369 : if (xpos) 00092 48 83 bd e8 01 00 00 00 cmp QWORD PTR xpos$[rbp], 0 0009a 74 0c je SHORT $LN2@glfwGetMon ; 370 : *xpos = dm.dmPosition.x; 0009c 48 8b 85 e8 01 00 00 mov rax, QWORD PTR xpos$[rbp] 000a3 8b 4d 5c mov ecx, DWORD PTR dm$[rbp+76] 000a6 89 08 mov DWORD PTR [rax], ecx $LN2@glfwGetMon: ; 371 : if (ypos) 000a8 48 83 bd f0 01 00 00 00 cmp QWORD PTR ypos$[rbp], 0 000b0 74 0c je SHORT $LN3@glfwGetMon ; 372 : *ypos = dm.dmPosition.y; 000b2 48 8b 85 f0 01 00 00 mov rax, QWORD PTR ypos$[rbp] 000b9 8b 4d 60 mov ecx, DWORD PTR dm$[rbp+80] 000bc 89 08 mov DWORD PTR [rax], ecx $LN3@glfwGetMon: ; 373 : } 000be 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 000c2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetMonitorPosWin32$rtcFrameData 000c9 e8 00 00 00 00 call _RTC_CheckStackVars 000ce 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 000d5 48 33 cd xor rcx, rbp 000d8 e8 00 00 00 00 call __security_check_cookie 000dd 48 8d a5 c8 01 00 00 lea rsp, QWORD PTR [rbp+456] 000e4 5f pop rdi 000e5 5d pop rbp 000e6 c3 ret 0 _glfwGetMonitorPosWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwFreeMonitorWin32 _TEXT SEGMENT monitor$ = 224 _glfwFreeMonitorWin32 PROC ; COMDAT ; 355 : { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 356 : } 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00026 5f pop rdi 00027 5d pop rbp 00028 c3 ret 0 _glfwFreeMonitorWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwGetHMONITORContentScaleWin32 _TEXT SEGMENT xdpi$ = 4 ydpi$ = 36 dc$5 = 72 __$ArrayPad$ = 280 handle$ = 320 xscale$ = 328 yscale$ = 336 _glfwGetHMONITORContentScaleWin32 PROC ; COMDAT ; 319 : { $LN10: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00022 b9 1a 00 00 00 mov ecx, 26 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0002c f3 ab rep stosd 0002e 48 8b 8c 24 68 01 00 00 mov rcx, QWORD PTR [rsp+360] 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0003d 48 33 c5 xor rax, rbp 00040 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 320 : UINT xdpi, ydpi; ; 321 : ; 322 : if (xscale) 00053 48 83 bd 48 01 00 00 00 cmp QWORD PTR xscale$[rbp], 0 0005b 74 0e je SHORT $LN2@glfwGetHMO ; 323 : *xscale = 0.f; 0005d 48 8b 85 48 01 00 00 mov rax, QWORD PTR xscale$[rbp] 00064 0f 57 c0 xorps xmm0, xmm0 00067 f3 0f 11 00 movss DWORD PTR [rax], xmm0 $LN2@glfwGetHMO: ; 324 : if (yscale) 0006b 48 83 bd 50 01 00 00 00 cmp QWORD PTR yscale$[rbp], 0 00073 74 0e je SHORT $LN3@glfwGetHMO ; 325 : *yscale = 0.f; 00075 48 8b 85 50 01 00 00 mov rax, QWORD PTR yscale$[rbp] 0007c 0f 57 c0 xorps xmm0, xmm0 0007f f3 0f 11 00 movss DWORD PTR [rax], xmm0 $LN3@glfwGetHMO: ; 326 : ; 327 : if (IsWindows8Point1OrGreater()) 00083 45 33 c0 xor r8d, r8d 00086 66 ba 03 00 mov dx, 3 0008a 66 b9 06 00 mov cx, 6 0008e e8 00 00 00 00 call _glfwIsWindowsVersionOrGreaterWin32 00093 85 c0 test eax, eax 00095 74 33 je SHORT $LN4@glfwGetHMO ; 328 : { ; 329 : if (GetDpiForMonitor(handle, MDT_EFFECTIVE_DPI, &xdpi, &ydpi) != S_OK) 00097 4c 8d 4d 24 lea r9, QWORD PTR ydpi$[rbp] 0009b 4c 8d 45 04 lea r8, QWORD PTR xdpi$[rbp] 0009f 33 d2 xor edx, edx 000a1 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR handle$[rbp] 000a8 ff 15 10 2a 00 00 call QWORD PTR _glfw+10768 000ae 85 c0 test eax, eax 000b0 74 16 je SHORT $LN6@glfwGetHMO ; 330 : { ; 331 : _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to query monitor DPI"); 000b2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CD@IGHBCNOG@Win32?3?5Failed?5to?5query?5monitor?5@ 000b9 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 000be e8 00 00 00 00 call _glfwInputError ; 332 : return; 000c3 e9 88 00 00 00 jmp $LN1@glfwGetHMO $LN6@glfwGetHMO: ; 333 : } ; 334 : } 000c8 eb 3c jmp SHORT $LN5@glfwGetHMO $LN4@glfwGetHMO: ; 335 : else ; 336 : { ; 337 : const HDC dc = GetDC(NULL); 000ca 33 c9 xor ecx, ecx 000cc ff 15 00 00 00 00 call QWORD PTR __imp_GetDC 000d2 48 89 45 48 mov QWORD PTR dc$5[rbp], rax ; 338 : xdpi = GetDeviceCaps(dc, LOGPIXELSX); 000d6 ba 58 00 00 00 mov edx, 88 ; 00000058H 000db 48 8b 4d 48 mov rcx, QWORD PTR dc$5[rbp] 000df ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 000e5 89 45 04 mov DWORD PTR xdpi$[rbp], eax ; 339 : ydpi = GetDeviceCaps(dc, LOGPIXELSY); 000e8 ba 5a 00 00 00 mov edx, 90 ; 0000005aH 000ed 48 8b 4d 48 mov rcx, QWORD PTR dc$5[rbp] 000f1 ff 15 00 00 00 00 call QWORD PTR __imp_GetDeviceCaps 000f7 89 45 24 mov DWORD PTR ydpi$[rbp], eax ; 340 : ReleaseDC(NULL, dc); 000fa 48 8b 55 48 mov rdx, QWORD PTR dc$5[rbp] 000fe 33 c9 xor ecx, ecx 00100 ff 15 00 00 00 00 call QWORD PTR __imp_ReleaseDC $LN5@glfwGetHMO: ; 341 : } ; 342 : ; 343 : if (xscale) 00106 48 83 bd 48 01 00 00 00 cmp QWORD PTR xscale$[rbp], 0 0010e 74 1b je SHORT $LN7@glfwGetHMO ; 344 : *xscale = xdpi / (float) USER_DEFAULT_SCREEN_DPI; 00110 8b 45 04 mov eax, DWORD PTR xdpi$[rbp] 00113 f3 48 0f 2a c0 cvtsi2ss xmm0, rax 00118 f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@42c00000 00120 48 8b 85 48 01 00 00 mov rax, QWORD PTR xscale$[rbp] 00127 f3 0f 11 00 movss DWORD PTR [rax], xmm0 $LN7@glfwGetHMO: ; 345 : if (yscale) 0012b 48 83 bd 50 01 00 00 00 cmp QWORD PTR yscale$[rbp], 0 00133 74 1b je SHORT $LN8@glfwGetHMO ; 346 : *yscale = ydpi / (float) USER_DEFAULT_SCREEN_DPI; 00135 8b 45 24 mov eax, DWORD PTR ydpi$[rbp] 00138 f3 48 0f 2a c0 cvtsi2ss xmm0, rax 0013d f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@42c00000 00145 48 8b 85 50 01 00 00 mov rax, QWORD PTR yscale$[rbp] 0014c f3 0f 11 00 movss DWORD PTR [rax], xmm0 $LN8@glfwGetHMO: $LN1@glfwGetHMO: ; 347 : } 00150 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwGetHMONITORContentScaleWin32$rtcFrameData 0015b e8 00 00 00 00 call _RTC_CheckStackVars 00160 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00167 48 33 cd xor rcx, rbp 0016a e8 00 00 00 00 call __security_check_cookie 0016f 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 00176 5f pop rdi 00177 5d pop rbp 00178 c3 ret 0 _glfwGetHMONITORContentScaleWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwRestoreVideoModeWin32 _TEXT SEGMENT monitor$ = 224 _glfwRestoreVideoModeWin32 PROC ; COMDAT ; 309 : { $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 310 : if (monitor->win32.modeChanged) 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR monitor$[rbp] 00026 83 b8 cc 01 00 00 00 cmp DWORD PTR [rax+460], 0 0002d 74 3b je SHORT $LN2@glfwRestor ; 311 : { ; 312 : ChangeDisplaySettingsExW(monitor->win32.adapterName, 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR monitor$[rbp] 00036 48 05 08 01 00 00 add rax, 264 ; 00000108H 0003c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 00045 41 b9 04 00 00 00 mov r9d, 4 0004b 45 33 c0 xor r8d, r8d 0004e 33 d2 xor edx, edx 00050 48 8b c8 mov rcx, rax 00053 ff 15 00 00 00 00 call QWORD PTR __imp_ChangeDisplaySettingsExW ; 313 : NULL, NULL, CDS_FULLSCREEN, NULL); ; 314 : monitor->win32.modeChanged = GLFW_FALSE; 00059 48 8b 85 e0 00 00 00 mov rax, QWORD PTR monitor$[rbp] 00060 c7 80 cc 01 00 00 00 00 00 00 mov DWORD PTR [rax+460], 0 $LN2@glfwRestor: ; 315 : } ; 316 : } 0006a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00071 5f pop rdi 00072 5d pop rbp 00073 c3 ret 0 _glfwRestoreVideoModeWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwSetVideoModeWin32 _TEXT SEGMENT current$ = 8 best$ = 56 dm$ = 96 result$ = 340 description$5 = 376 __$ArrayPad$ = 584 monitor$ = 624 desired$ = 632 _glfwSetVideoModeWin32 PROC ; COMDAT ; 251 : { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 88 02 00 00 sub rsp, 648 ; 00000288H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00018 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0001d b9 66 00 00 00 mov ecx, 102 ; 00000066H 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 a8 02 00 00 mov rcx, QWORD PTR [rsp+680] 00031 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00038 48 33 c5 xor rax, rbp 0003b 48 89 85 48 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 252 : GLFWvidmode current; ; 253 : const GLFWvidmode* best; ; 254 : DEVMODEW dm; ; 255 : LONG result; ; 256 : ; 257 : best = _glfwChooseVideoMode(monitor, desired); 0004e 48 8b 95 78 02 00 00 mov rdx, QWORD PTR desired$[rbp] 00055 48 8b 8d 70 02 00 00 mov rcx, QWORD PTR monitor$[rbp] 0005c e8 00 00 00 00 call _glfwChooseVideoMode 00061 48 89 45 38 mov QWORD PTR best$[rbp], rax ; 258 : _glfwGetVideoModeWin32(monitor, ¤t); 00065 48 8d 55 08 lea rdx, QWORD PTR current$[rbp] 00069 48 8b 8d 70 02 00 00 mov rcx, QWORD PTR monitor$[rbp] 00070 e8 00 00 00 00 call _glfwGetVideoModeWin32 ; 259 : if (_glfwCompareVideoModes(¤t, best) == 0) 00075 48 8b 55 38 mov rdx, QWORD PTR best$[rbp] 00079 48 8d 4d 08 lea rcx, QWORD PTR current$[rbp] 0007d e8 00 00 00 00 call _glfwCompareVideoModes 00082 85 c0 test eax, eax 00084 75 05 jne SHORT $LN2@glfwSetVid ; 260 : return; 00086 e9 ab 01 00 00 jmp $LN1@glfwSetVid $LN2@glfwSetVid: ; 261 : ; 262 : ZeroMemory(&dm, sizeof(dm)); 0008b 41 b8 dc 00 00 00 mov r8d, 220 ; 000000dcH 00091 33 d2 xor edx, edx 00093 48 8d 4d 60 lea rcx, QWORD PTR dm$[rbp] 00097 e8 00 00 00 00 call memset ; 263 : dm.dmSize = sizeof(dm); 0009c b8 dc 00 00 00 mov eax, 220 ; 000000dcH 000a1 66 89 85 a4 00 00 00 mov WORD PTR dm$[rbp+68], ax ; 264 : dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL | 000a8 c7 85 a8 00 00 00 00 00 5c 00 mov DWORD PTR dm$[rbp+72], 6029312 ; 005c0000H ; 265 : DM_DISPLAYFREQUENCY; ; 266 : dm.dmPelsWidth = best->width; 000b2 48 8b 45 38 mov rax, QWORD PTR best$[rbp] 000b6 8b 00 mov eax, DWORD PTR [rax] 000b8 89 85 0c 01 00 00 mov DWORD PTR dm$[rbp+172], eax ; 267 : dm.dmPelsHeight = best->height; 000be 48 8b 45 38 mov rax, QWORD PTR best$[rbp] 000c2 8b 40 04 mov eax, DWORD PTR [rax+4] 000c5 89 85 10 01 00 00 mov DWORD PTR dm$[rbp+176], eax ; 268 : dm.dmBitsPerPel = best->redBits + best->greenBits + best->blueBits; 000cb 48 8b 45 38 mov rax, QWORD PTR best$[rbp] 000cf 8b 40 08 mov eax, DWORD PTR [rax+8] 000d2 48 8b 4d 38 mov rcx, QWORD PTR best$[rbp] 000d6 03 41 0c add eax, DWORD PTR [rcx+12] 000d9 48 8b 4d 38 mov rcx, QWORD PTR best$[rbp] 000dd 03 41 10 add eax, DWORD PTR [rcx+16] 000e0 89 85 08 01 00 00 mov DWORD PTR dm$[rbp+168], eax ; 269 : dm.dmDisplayFrequency = best->refreshRate; 000e6 48 8b 45 38 mov rax, QWORD PTR best$[rbp] 000ea 8b 40 14 mov eax, DWORD PTR [rax+20] 000ed 89 85 18 01 00 00 mov DWORD PTR dm$[rbp+184], eax ; 270 : ; 271 : if (dm.dmBitsPerPel < 15 || dm.dmBitsPerPel >= 24) 000f3 83 bd 08 01 00 00 0f cmp DWORD PTR dm$[rbp+168], 15 000fa 72 09 jb SHORT $LN4@glfwSetVid 000fc 83 bd 08 01 00 00 18 cmp DWORD PTR dm$[rbp+168], 24 00103 72 0a jb SHORT $LN3@glfwSetVid $LN4@glfwSetVid: ; 272 : dm.dmBitsPerPel = 32; 00105 c7 85 08 01 00 00 20 00 00 00 mov DWORD PTR dm$[rbp+168], 32 ; 00000020H $LN3@glfwSetVid: ; 273 : ; 274 : result = ChangeDisplaySettingsExW(monitor->win32.adapterName, 0010f 48 8b 85 70 02 00 00 mov rax, QWORD PTR monitor$[rbp] 00116 48 05 08 01 00 00 add rax, 264 ; 00000108H 0011c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 00125 41 b9 04 00 00 00 mov r9d, 4 0012b 45 33 c0 xor r8d, r8d 0012e 48 8d 55 60 lea rdx, QWORD PTR dm$[rbp] 00132 48 8b c8 mov rcx, rax 00135 ff 15 00 00 00 00 call QWORD PTR __imp_ChangeDisplaySettingsExW 0013b 89 85 54 01 00 00 mov DWORD PTR result$[rbp], eax ; 275 : &dm, ; 276 : NULL, ; 277 : CDS_FULLSCREEN, ; 278 : NULL); ; 279 : if (result == DISP_CHANGE_SUCCESSFUL) 00141 83 bd 54 01 00 00 00 cmp DWORD PTR result$[rbp], 0 00148 75 16 jne SHORT $LN5@glfwSetVid ; 280 : monitor->win32.modeChanged = GLFW_TRUE; 0014a 48 8b 85 70 02 00 00 mov rax, QWORD PTR monitor$[rbp] 00151 c7 80 cc 01 00 00 01 00 00 00 mov DWORD PTR [rax+460], 1 0015b e9 d6 00 00 00 jmp $LN6@glfwSetVid $LN5@glfwSetVid: ; 281 : else ; 282 : { ; 283 : const char* description = "Unknown error"; 00160 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0O@NIPGCINC@Unknown?5error@ 00167 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax ; 284 : ; 285 : if (result == DISP_CHANGE_BADDUALVIEW) 0016e 83 bd 54 01 00 00 fa cmp DWORD PTR result$[rbp], -6 00175 75 13 jne SHORT $LN7@glfwSetVid ; 286 : description = "The system uses DualView"; 00177 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@EJOHFDHH@The?5system?5uses?5DualView@ 0017e 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 00185 e9 94 00 00 00 jmp $LN8@glfwSetVid $LN7@glfwSetVid: ; 287 : else if (result == DISP_CHANGE_BADFLAGS) 0018a 83 bd 54 01 00 00 fc cmp DWORD PTR result$[rbp], -4 00191 75 10 jne SHORT $LN9@glfwSetVid ; 288 : description = "Invalid flags"; 00193 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0O@IHOLGAKK@Invalid?5flags@ 0019a 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 001a1 eb 7b jmp SHORT $LN10@glfwSetVid $LN9@glfwSetVid: ; 289 : else if (result == DISP_CHANGE_BADMODE) 001a3 83 bd 54 01 00 00 fe cmp DWORD PTR result$[rbp], -2 001aa 75 10 jne SHORT $LN11@glfwSetVid ; 290 : description = "Graphics mode not supported"; 001ac 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BM@KPJJBADD@Graphics?5mode?5not?5supported@ 001b3 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 001ba eb 62 jmp SHORT $LN12@glfwSetVid $LN11@glfwSetVid: ; 291 : else if (result == DISP_CHANGE_BADPARAM) 001bc 83 bd 54 01 00 00 fb cmp DWORD PTR result$[rbp], -5 001c3 75 10 jne SHORT $LN13@glfwSetVid ; 292 : description = "Invalid parameter"; 001c5 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@DBAKKFEN@Invalid?5parameter@ 001cc 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 001d3 eb 49 jmp SHORT $LN14@glfwSetVid $LN13@glfwSetVid: ; 293 : else if (result == DISP_CHANGE_FAILED) 001d5 83 bd 54 01 00 00 ff cmp DWORD PTR result$[rbp], -1 001dc 75 10 jne SHORT $LN15@glfwSetVid ; 294 : description = "Graphics mode failed"; 001de 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BF@JHMFGJBN@Graphics?5mode?5failed@ 001e5 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 001ec eb 30 jmp SHORT $LN16@glfwSetVid $LN15@glfwSetVid: ; 295 : else if (result == DISP_CHANGE_NOTUPDATED) 001ee 83 bd 54 01 00 00 fd cmp DWORD PTR result$[rbp], -3 001f5 75 10 jne SHORT $LN17@glfwSetVid ; 296 : description = "Failed to write to registry"; 001f7 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BM@IGBABBBF@Failed?5to?5write?5to?5registry@ 001fe 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax 00205 eb 17 jmp SHORT $LN18@glfwSetVid $LN17@glfwSetVid: ; 297 : else if (result == DISP_CHANGE_RESTART) 00207 83 bd 54 01 00 00 01 cmp DWORD PTR result$[rbp], 1 0020e 75 0e jne SHORT $LN19@glfwSetVid ; 298 : description = "Computer restart required"; 00210 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BK@OEGBAIFC@Computer?5restart?5required@ 00217 48 89 85 78 01 00 00 mov QWORD PTR description$5[rbp], rax $LN19@glfwSetVid: $LN18@glfwSetVid: $LN16@glfwSetVid: $LN14@glfwSetVid: $LN12@glfwSetVid: $LN10@glfwSetVid: $LN8@glfwSetVid: ; 299 : ; 300 : _glfwInputError(GLFW_PLATFORM_ERROR, 0021e 4c 8b 85 78 01 00 00 mov r8, QWORD PTR description$5[rbp] 00225 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CE@IKOICJPN@Win32?3?5Failed?5to?5set?5video?5mode@ 0022c b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00231 e8 00 00 00 00 call _glfwInputError $LN6@glfwSetVid: $LN1@glfwSetVid: ; 301 : "Win32: Failed to set video mode: %s", ; 302 : description); ; 303 : } ; 304 : } 00236 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 0023a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwSetVideoModeWin32$rtcFrameData 00241 e8 00 00 00 00 call _RTC_CheckStackVars 00246 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 0024d 48 33 cd xor rcx, rbp 00250 e8 00 00 00 00 call __security_check_cookie 00255 48 8d a5 58 02 00 00 lea rsp, QWORD PTR [rbp+600] 0025c 5f pop rdi 0025d 5d pop rbp 0025e c3 ret 0 _glfwSetVideoModeWin32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_monitor.c ; COMDAT _glfwPollMonitorsWin32 _TEXT SEGMENT i$ = 4 disconnectedCount$ = 36 disconnected$ = 72 adapterIndex$ = 100 displayIndex$ = 132 adapter$ = 176 display$ = 1056 monitor$ = 1928 type$5 = 1956 __$ArrayPad$ = 2744 _glfwPollMonitorsWin32 PROC ; COMDAT ; 139 : { $LN32: 00000 40 55 push rbp 00002 57 push rdi 00003 48 81 ec e8 0a 00 00 sub rsp, 2792 ; 00000ae8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0000f 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] 00014 b9 f2 01 00 00 mov ecx, 498 ; 000001f2H 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 0001e f3 ab rep stosd 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00027 48 33 c5 xor rax, rbp 0002a 48 89 85 b8 0a 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax 00031 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__E5428F11_win32_monitor@c 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : int i, disconnectedCount; ; 141 : _GLFWmonitor** disconnected = NULL; 0003d 48 c7 45 48 00 00 00 00 mov QWORD PTR disconnected$[rbp], 0 ; 142 : DWORD adapterIndex, displayIndex; ; 143 : DISPLAY_DEVICEW adapter, display; ; 144 : _GLFWmonitor* monitor; ; 145 : ; 146 : disconnectedCount = _glfw.monitorCount; 00045 8b 05 88 07 00 00 mov eax, DWORD PTR _glfw+1928 0004b 89 45 24 mov DWORD PTR disconnectedCount$[rbp], eax ; 147 : if (disconnectedCount) 0004e 83 7d 24 00 cmp DWORD PTR disconnectedCount$[rbp], 0 00052 74 36 je SHORT $LN17@glfwPollMo ; 148 : { ; 149 : disconnected = _glfw_calloc(_glfw.monitorCount, sizeof(_GLFWmonitor*)); 00054 48 63 05 88 07 00 00 movsxd rax, DWORD PTR _glfw+1928 0005b ba 08 00 00 00 mov edx, 8 00060 48 8b c8 mov rcx, rax 00063 e8 00 00 00 00 call _glfw_calloc 00068 48 89 45 48 mov QWORD PTR disconnected$[rbp], rax ; 150 : memcpy(disconnected, 0006c 48 63 05 88 07 00 00 movsxd rax, DWORD PTR _glfw+1928 00073 48 c1 e0 03 shl rax, 3 00077 4c 8b c0 mov r8, rax 0007a 48 8b 15 80 07 00 00 mov rdx, QWORD PTR _glfw+1920 00081 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00085 e8 00 00 00 00 call memcpy $LN17@glfwPollMo: ; 151 : _glfw.monitors, ; 152 : _glfw.monitorCount * sizeof(_GLFWmonitor*)); ; 153 : } ; 154 : ; 155 : for (adapterIndex = 0; ; adapterIndex++) 0008a c7 45 64 00 00 00 00 mov DWORD PTR adapterIndex$[rbp], 0 00091 eb 08 jmp SHORT $LN4@glfwPollMo $LN2@glfwPollMo: 00093 8b 45 64 mov eax, DWORD PTR adapterIndex$[rbp] 00096 ff c0 inc eax 00098 89 45 64 mov DWORD PTR adapterIndex$[rbp], eax $LN4@glfwPollMo: ; 156 : { ; 157 : int type = _GLFW_INSERT_LAST; 0009b c7 85 a4 07 00 00 01 00 00 00 mov DWORD PTR type$5[rbp], 1 ; 158 : ; 159 : ZeroMemory(&adapter, sizeof(adapter)); 000a5 41 b8 48 03 00 00 mov r8d, 840 ; 00000348H 000ab 33 d2 xor edx, edx 000ad 48 8d 8d b0 00 00 00 lea rcx, QWORD PTR adapter$[rbp] 000b4 e8 00 00 00 00 call memset ; 160 : adapter.cb = sizeof(adapter); 000b9 c7 85 b0 00 00 00 48 03 00 00 mov DWORD PTR adapter$[rbp], 840 ; 00000348H ; 161 : ; 162 : if (!EnumDisplayDevicesW(NULL, adapterIndex, &adapter, 0)) 000c3 45 33 c9 xor r9d, r9d 000c6 4c 8d 85 b0 00 00 00 lea r8, QWORD PTR adapter$[rbp] 000cd 8b 55 64 mov edx, DWORD PTR adapterIndex$[rbp] 000d0 33 c9 xor ecx, ecx 000d2 ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplayDevicesW 000d8 85 c0 test eax, eax 000da 75 05 jne SHORT $LN18@glfwPollMo ; 163 : break; 000dc e9 3e 02 00 00 jmp $LN3@glfwPollMo $LN18@glfwPollMo: ; 164 : ; 165 : if (!(adapter.StateFlags & DISPLAY_DEVICE_ACTIVE)) 000e1 8b 85 f4 01 00 00 mov eax, DWORD PTR adapter$[rbp+324] 000e7 83 e0 01 and eax, 1 000ea 85 c0 test eax, eax 000ec 75 02 jne SHORT $LN19@glfwPollMo ; 166 : continue; 000ee eb a3 jmp SHORT $LN2@glfwPollMo $LN19@glfwPollMo: ; 167 : ; 168 : if (adapter.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) 000f0 8b 85 f4 01 00 00 mov eax, DWORD PTR adapter$[rbp+324] 000f6 83 e0 04 and eax, 4 000f9 85 c0 test eax, eax 000fb 74 0a je SHORT $LN20@glfwPollMo ; 169 : type = _GLFW_INSERT_FIRST; 000fd c7 85 a4 07 00 00 00 00 00 00 mov DWORD PTR type$5[rbp], 0 $LN20@glfwPollMo: ; 170 : ; 171 : for (displayIndex = 0; ; displayIndex++) 00107 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR displayIndex$[rbp], 0 00111 eb 0e jmp SHORT $LN7@glfwPollMo $LN5@glfwPollMo: 00113 8b 85 84 00 00 00 mov eax, DWORD PTR displayIndex$[rbp] 00119 ff c0 inc eax 0011b 89 85 84 00 00 00 mov DWORD PTR displayIndex$[rbp], eax $LN7@glfwPollMo: ; 172 : { ; 173 : ZeroMemory(&display, sizeof(display)); 00121 41 b8 48 03 00 00 mov r8d, 840 ; 00000348H 00127 33 d2 xor edx, edx 00129 48 8d 8d 20 04 00 00 lea rcx, QWORD PTR display$[rbp] 00130 e8 00 00 00 00 call memset ; 174 : display.cb = sizeof(display); 00135 c7 85 20 04 00 00 48 03 00 00 mov DWORD PTR display$[rbp], 840 ; 00000348H ; 175 : ; 176 : if (!EnumDisplayDevicesW(adapter.DeviceName, displayIndex, &display, 0)) 0013f 45 33 c9 xor r9d, r9d 00142 4c 8d 85 20 04 00 00 lea r8, QWORD PTR display$[rbp] 00149 8b 95 84 00 00 00 mov edx, DWORD PTR displayIndex$[rbp] 0014f 48 8d 8d b4 00 00 00 lea rcx, QWORD PTR adapter$[rbp+4] 00156 ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplayDevicesW 0015c 85 c0 test eax, eax 0015e 75 05 jne SHORT $LN21@glfwPollMo ; 177 : break; 00160 e9 f7 00 00 00 jmp $LN6@glfwPollMo $LN21@glfwPollMo: ; 178 : ; 179 : if (!(display.StateFlags & DISPLAY_DEVICE_ACTIVE)) 00165 8b 85 64 05 00 00 mov eax, DWORD PTR display$[rbp+324] 0016b 83 e0 01 and eax, 1 0016e 85 c0 test eax, eax 00170 75 02 jne SHORT $LN22@glfwPollMo ; 180 : continue; 00172 eb 9f jmp SHORT $LN5@glfwPollMo $LN22@glfwPollMo: ; 181 : ; 182 : for (i = 0; i < disconnectedCount; i++) 00174 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 0017b eb 08 jmp SHORT $LN10@glfwPollMo $LN8@glfwPollMo: 0017d 8b 45 04 mov eax, DWORD PTR i$[rbp] 00180 ff c0 inc eax 00182 89 45 04 mov DWORD PTR i$[rbp], eax $LN10@glfwPollMo: 00185 8b 45 24 mov eax, DWORD PTR disconnectedCount$[rbp] 00188 39 45 04 cmp DWORD PTR i$[rbp], eax 0018b 7d 69 jge SHORT $LN9@glfwPollMo ; 183 : { ; 184 : if (disconnected[i] && 0018d 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00191 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00195 48 83 3c c1 00 cmp QWORD PTR [rcx+rax*8], 0 0019a 74 58 je SHORT $LN23@glfwPollMo 0019c 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001a0 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 001a4 48 8b 04 c1 mov rax, QWORD PTR [rcx+rax*8] 001a8 48 05 48 01 00 00 add rax, 328 ; 00000148H 001ae 48 8d 95 24 04 00 00 lea rdx, QWORD PTR display$[rbp+4] 001b5 48 8b c8 mov rcx, rax 001b8 ff 15 00 00 00 00 call QWORD PTR __imp_wcscmp 001be 85 c0 test eax, eax 001c0 75 32 jne SHORT $LN23@glfwPollMo ; 185 : wcscmp(disconnected[i]->win32.displayName, ; 186 : display.DeviceName) == 0) ; 187 : { ; 188 : disconnected[i] = NULL; 001c2 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001c6 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 001ca 48 c7 04 c1 00 00 00 00 mov QWORD PTR [rcx+rax*8], 0 ; 189 : // handle may have changed, update ; 190 : EnumDisplayMonitors(NULL, NULL, monitorCallback, (LPARAM) _glfw.monitors[i]); 001d2 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 001d6 48 8b 0d 80 07 00 00 mov rcx, QWORD PTR _glfw+1920 001dd 4c 8b 0c c1 mov r9, QWORD PTR [rcx+rax*8] 001e1 4c 8d 05 00 00 00 00 lea r8, OFFSET FLAT:monitorCallback 001e8 33 d2 xor edx, edx 001ea 33 c9 xor ecx, ecx 001ec ff 15 00 00 00 00 call QWORD PTR __imp_EnumDisplayMonitors ; 191 : break; 001f2 eb 02 jmp SHORT $LN9@glfwPollMo $LN23@glfwPollMo: ; 192 : } ; 193 : } 001f4 eb 87 jmp SHORT $LN8@glfwPollMo $LN9@glfwPollMo: ; 194 : ; 195 : if (i < disconnectedCount) 001f6 8b 45 24 mov eax, DWORD PTR disconnectedCount$[rbp] 001f9 39 45 04 cmp DWORD PTR i$[rbp], eax 001fc 7d 05 jge SHORT $LN24@glfwPollMo ; 196 : continue; 001fe e9 10 ff ff ff jmp $LN5@glfwPollMo $LN24@glfwPollMo: ; 197 : ; 198 : monitor = createMonitor(&adapter, &display); 00203 48 8d 95 20 04 00 00 lea rdx, QWORD PTR display$[rbp] 0020a 48 8d 8d b0 00 00 00 lea rcx, QWORD PTR adapter$[rbp] 00211 e8 00 00 00 00 call createMonitor 00216 48 89 85 88 07 00 00 mov QWORD PTR monitor$[rbp], rax ; 199 : if (!monitor) 0021d 48 83 bd 88 07 00 00 00 cmp QWORD PTR monitor$[rbp], 0 00225 75 0e jne SHORT $LN25@glfwPollMo ; 200 : { ; 201 : _glfw_free(disconnected); 00227 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 0022b e8 00 00 00 00 call _glfw_free ; 202 : return; 00230 e9 36 01 00 00 jmp $LN1@glfwPollMo $LN25@glfwPollMo: ; 203 : } ; 204 : ; 205 : _glfwInputMonitor(monitor, GLFW_CONNECTED, type); 00235 44 8b 85 a4 07 00 00 mov r8d, DWORD PTR type$5[rbp] 0023c ba 01 00 04 00 mov edx, 262145 ; 00040001H 00241 48 8b 8d 88 07 00 00 mov rcx, QWORD PTR monitor$[rbp] 00248 e8 00 00 00 00 call _glfwInputMonitor ; 206 : ; 207 : type = _GLFW_INSERT_LAST; 0024d c7 85 a4 07 00 00 01 00 00 00 mov DWORD PTR type$5[rbp], 1 ; 208 : } 00257 e9 b7 fe ff ff jmp $LN5@glfwPollMo $LN6@glfwPollMo: ; 209 : ; 210 : // HACK: If an active adapter does not have any display devices ; 211 : // (as sometimes happens), add it directly as a monitor ; 212 : if (displayIndex == 0) 0025c 83 bd 84 00 00 00 00 cmp DWORD PTR displayIndex$[rbp], 0 00263 0f 85 b1 00 00 00 jne $LN26@glfwPollMo ; 213 : { ; 214 : for (i = 0; i < disconnectedCount; i++) 00269 c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00270 eb 08 jmp SHORT $LN13@glfwPollMo $LN11@glfwPollMo: 00272 8b 45 04 mov eax, DWORD PTR i$[rbp] 00275 ff c0 inc eax 00277 89 45 04 mov DWORD PTR i$[rbp], eax $LN13@glfwPollMo: 0027a 8b 45 24 mov eax, DWORD PTR disconnectedCount$[rbp] 0027d 39 45 04 cmp DWORD PTR i$[rbp], eax 00280 7d 49 jge SHORT $LN12@glfwPollMo ; 215 : { ; 216 : if (disconnected[i] && 00282 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00286 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 0028a 48 83 3c c1 00 cmp QWORD PTR [rcx+rax*8], 0 0028f 74 38 je SHORT $LN27@glfwPollMo 00291 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 00295 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00299 48 8b 04 c1 mov rax, QWORD PTR [rcx+rax*8] 0029d 48 05 08 01 00 00 add rax, 264 ; 00000108H 002a3 48 8d 95 b4 00 00 00 lea rdx, QWORD PTR adapter$[rbp+4] 002aa 48 8b c8 mov rcx, rax 002ad ff 15 00 00 00 00 call QWORD PTR __imp_wcscmp 002b3 85 c0 test eax, eax 002b5 75 12 jne SHORT $LN27@glfwPollMo ; 217 : wcscmp(disconnected[i]->win32.adapterName, ; 218 : adapter.DeviceName) == 0) ; 219 : { ; 220 : disconnected[i] = NULL; 002b7 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 002bb 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 002bf 48 c7 04 c1 00 00 00 00 mov QWORD PTR [rcx+rax*8], 0 ; 221 : break; 002c7 eb 02 jmp SHORT $LN12@glfwPollMo $LN27@glfwPollMo: ; 222 : } ; 223 : } 002c9 eb a7 jmp SHORT $LN11@glfwPollMo $LN12@glfwPollMo: ; 224 : ; 225 : if (i < disconnectedCount) 002cb 8b 45 24 mov eax, DWORD PTR disconnectedCount$[rbp] 002ce 39 45 04 cmp DWORD PTR i$[rbp], eax 002d1 7d 05 jge SHORT $LN28@glfwPollMo ; 226 : continue; 002d3 e9 bb fd ff ff jmp $LN2@glfwPollMo $LN28@glfwPollMo: ; 227 : ; 228 : monitor = createMonitor(&adapter, NULL); 002d8 33 d2 xor edx, edx 002da 48 8d 8d b0 00 00 00 lea rcx, QWORD PTR adapter$[rbp] 002e1 e8 00 00 00 00 call createMonitor 002e6 48 89 85 88 07 00 00 mov QWORD PTR monitor$[rbp], rax ; 229 : if (!monitor) 002ed 48 83 bd 88 07 00 00 00 cmp QWORD PTR monitor$[rbp], 0 002f5 75 0b jne SHORT $LN29@glfwPollMo ; 230 : { ; 231 : _glfw_free(disconnected); 002f7 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 002fb e8 00 00 00 00 call _glfw_free ; 232 : return; 00300 eb 69 jmp SHORT $LN1@glfwPollMo $LN29@glfwPollMo: ; 233 : } ; 234 : ; 235 : _glfwInputMonitor(monitor, GLFW_CONNECTED, type); 00302 44 8b 85 a4 07 00 00 mov r8d, DWORD PTR type$5[rbp] 00309 ba 01 00 04 00 mov edx, 262145 ; 00040001H 0030e 48 8b 8d 88 07 00 00 mov rcx, QWORD PTR monitor$[rbp] 00315 e8 00 00 00 00 call _glfwInputMonitor $LN26@glfwPollMo: ; 236 : } ; 237 : } 0031a e9 74 fd ff ff jmp $LN2@glfwPollMo $LN3@glfwPollMo: ; 238 : ; 239 : for (i = 0; i < disconnectedCount; i++) 0031f c7 45 04 00 00 00 00 mov DWORD PTR i$[rbp], 0 00326 eb 08 jmp SHORT $LN16@glfwPollMo $LN14@glfwPollMo: 00328 8b 45 04 mov eax, DWORD PTR i$[rbp] 0032b ff c0 inc eax 0032d 89 45 04 mov DWORD PTR i$[rbp], eax $LN16@glfwPollMo: 00330 8b 45 24 mov eax, DWORD PTR disconnectedCount$[rbp] 00333 39 45 04 cmp DWORD PTR i$[rbp], eax 00336 7d 2a jge SHORT $LN15@glfwPollMo ; 240 : { ; 241 : if (disconnected[i]) 00338 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0033c 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00340 48 83 3c c1 00 cmp QWORD PTR [rcx+rax*8], 0 00345 74 19 je SHORT $LN30@glfwPollMo ; 242 : _glfwInputMonitor(disconnected[i], GLFW_DISCONNECTED, 0); 00347 48 63 45 04 movsxd rax, DWORD PTR i$[rbp] 0034b 45 33 c0 xor r8d, r8d 0034e ba 02 00 04 00 mov edx, 262146 ; 00040002H 00353 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00357 48 8b 0c c1 mov rcx, QWORD PTR [rcx+rax*8] 0035b e8 00 00 00 00 call _glfwInputMonitor $LN30@glfwPollMo: ; 243 : } 00360 eb c6 jmp SHORT $LN14@glfwPollMo $LN15@glfwPollMo: ; 244 : ; 245 : _glfw_free(disconnected); 00362 48 8b 4d 48 mov rcx, QWORD PTR disconnected$[rbp] 00366 e8 00 00 00 00 call _glfw_free $LN1@glfwPollMo: ; 246 : } 0036b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] 0036f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwPollMonitorsWin32$rtcFrameData 00376 e8 00 00 00 00 call _RTC_CheckStackVars 0037b 48 8b 8d b8 0a 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00382 48 33 cd xor rcx, rbp 00385 e8 00 00 00 00 call __security_check_cookie 0038a 48 8d a5 c8 0a 00 00 lea rsp, QWORD PTR [rbp+2760] 00391 5f pop rdi 00392 5d pop rbp 00393 c3 ret 0 _glfwPollMonitorsWin32 ENDP _TEXT ENDS END