Files
stgsharp/源代码/StgSharpGraphic/x64/Release/win32_monitor.cod
T

3476 lines
103 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0
include listing.inc
INCLUDELIB OLDNAMES
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'
EXTRN __imp_ChangeDisplaySettingsExW:PROC
EXTRN __imp_SetDeviceGammaRamp:PROC
EXTRN __imp_EnumDisplayMonitors:PROC
EXTRN __imp_CreateDCW:PROC
EXTRN __imp_GetMonitorInfoW:PROC
EXTRN __imp_EnumDisplaySettingsExW:PROC
EXTRN __imp_GetDeviceGammaRamp:PROC
EXTRN __imp_GetDeviceCaps:PROC
EXTRN __imp_DeleteDC:PROC
EXTRN __imp_EnumDisplayDevicesW:PROC
EXTRN __imp_EnumDisplaySettingsW:PROC
EXTRN __imp_ReleaseDC:PROC
; 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'
PUBLIC glfwGetWin32Monitor
PUBLIC glfwGetWin32Adapter
PUBLIC _glfwGetHMONITORContentScaleWin32
PUBLIC _glfwRestoreVideoModeWin32
PUBLIC _glfwSetVideoModeWin32
PUBLIC _glfwFreeMonitorWin32
PUBLIC _glfwGetMonitorContentScaleWin32
PUBLIC _glfwSetGammaRampWin32
PUBLIC _glfwPollMonitorsWin32
PUBLIC _glfwGetVideoModesWin32
PUBLIC _glfwGetMonitorPosWin32
PUBLIC _glfwGetGammaRampWin32
PUBLIC _glfwGetMonitorWorkareaWin32
PUBLIC _glfwGetVideoModeWin32
; COMDAT pdata
pdata SEGMENT
$pdata$glfwGetWin32Monitor DD imagerel $LN5
DD imagerel $LN5+44
DD imagerel $unwind$glfwGetWin32Monitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$glfwGetWin32Adapter DD imagerel $LN5
DD imagerel $LN5+44
DD imagerel $unwind$glfwGetWin32Adapter
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetHMONITORContentScaleWin32 DD imagerel $LN17
DD imagerel $LN17+244
DD imagerel $unwind$_glfwGetHMONITORContentScaleWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwRestoreVideoModeWin32 DD imagerel $LN6
DD imagerel $LN6+67
DD imagerel $unwind$_glfwRestoreVideoModeWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwSetVideoModeWin32 DD imagerel $LN42
DD imagerel $LN42+163
DD imagerel $unwind$_glfwSetVideoModeWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$0$_glfwSetVideoModeWin32 DD imagerel $LN42+163
DD imagerel $LN42+323
DD imagerel $chain$0$_glfwSetVideoModeWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$1$_glfwSetVideoModeWin32 DD imagerel $LN42+323
DD imagerel $LN42+484
DD imagerel $chain$1$_glfwSetVideoModeWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$createMonitor DD imagerel createMonitor
DD imagerel createMonitor+67
DD imagerel $unwind$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$0$createMonitor DD imagerel createMonitor+67
DD imagerel createMonitor+80
DD imagerel $chain$0$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$1$createMonitor DD imagerel createMonitor+80
DD imagerel createMonitor+96
DD imagerel $chain$1$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$3$createMonitor DD imagerel createMonitor+96
DD imagerel createMonitor+237
DD imagerel $chain$3$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$4$createMonitor DD imagerel createMonitor+237
DD imagerel createMonitor+344
DD imagerel $chain$4$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$5$createMonitor DD imagerel createMonitor+344
DD imagerel createMonitor+415
DD imagerel $chain$5$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$6$createMonitor DD imagerel createMonitor+415
DD imagerel createMonitor+533
DD imagerel $chain$6$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$7$createMonitor DD imagerel createMonitor+533
DD imagerel createMonitor+708
DD imagerel $chain$7$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$8$createMonitor DD imagerel createMonitor+708
DD imagerel createMonitor+736
DD imagerel $chain$8$createMonitor
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$monitorCallback DD imagerel monitorCallback
DD imagerel monitorCallback+204
DD imagerel $unwind$monitorCallback
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwSetGammaRampWin32 DD imagerel $LN12
DD imagerel $LN12+472
DD imagerel $unwind$_glfwSetGammaRampWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwPollMonitorsWin32 DD imagerel $LN116
DD imagerel $LN116+891
DD imagerel $unwind$_glfwPollMonitorsWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetVideoModesWin32 DD imagerel $LN91
DD imagerel $LN91+33
DD imagerel $unwind$_glfwGetVideoModesWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$2$_glfwGetVideoModesWin32 DD imagerel $LN91+33
DD imagerel $LN91+127
DD imagerel $chain$2$_glfwGetVideoModesWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$3$_glfwGetVideoModesWin32 DD imagerel $LN91+127
DD imagerel $LN91+743
DD imagerel $chain$3$_glfwGetVideoModesWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$4$_glfwGetVideoModesWin32 DD imagerel $LN91+743
DD imagerel $LN91+773
DD imagerel $chain$4$_glfwGetVideoModesWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$5$_glfwGetVideoModesWin32 DD imagerel $LN91+773
DD imagerel $LN91+882
DD imagerel $chain$5$_glfwGetVideoModesWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetMonitorPosWin32 DD imagerel $LN8
DD imagerel $LN8+153
DD imagerel $unwind$_glfwGetMonitorPosWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetGammaRampWin32 DD imagerel $LN10
DD imagerel $LN10+427
DD imagerel $unwind$_glfwGetGammaRampWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetMonitorWorkareaWin32 DD imagerel $LN12
DD imagerel $LN12+159
DD imagerel $unwind$_glfwGetMonitorWorkareaWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetVideoModeWin32 DD imagerel $LN13
DD imagerel $LN13+237
DD imagerel $unwind$_glfwGetVideoModeWin32
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetVideoModeWin32 DD 072419H
DD 0276412H
DD 0263412H
DD 0220112H
DD 0700bH
DD imagerel __GSHandlerCheck
DD 0100H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetMonitorWorkareaWin32 DD 051919H
DD 0e006a20aH
DD 060037004H
DD 03002H
DD imagerel __GSHandlerCheck
DD 048H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetGammaRampWin32 DD 051f19H
DD 0ca340dH
DD 0c6010dH
DD 07006H
DD imagerel __GSHandlerCheck
DD 0620H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetMonitorPosWin32 DD 072119H
DD 029340fH
DD 022010fH
DD 060077008H
DD 05006H
DD imagerel __GSHandlerCheck
DD 0100H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$5$_glfwGetVideoModesWin32 DD 021H
DD imagerel $LN91
DD imagerel $LN91+33
DD imagerel $unwind$_glfwGetVideoModesWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$4$_glfwGetVideoModesWin32 DD 021H
DD imagerel $LN91+33
DD imagerel $LN91+127
DD imagerel $chain$2$_glfwGetVideoModesWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$3$_glfwGetVideoModesWin32 DD 020821H
DD 0325408H
DD imagerel $LN91+33
DD imagerel $LN91+127
DD imagerel $chain$2$_glfwGetVideoModesWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$2$_glfwGetVideoModesWin32 DD 062021H
DD 028f420H
DD 029d40bH
DD 02ac404H
DD imagerel $LN91
DD imagerel $LN91+33
DD imagerel $unwind$_glfwGetVideoModesWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetVideoModesWin32 DD 062119H
DD 02b010fH
DD 07006e008H
DD 030046005H
DD imagerel __GSHandlerCheck
DD 0130H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwPollMonitorsWin32 DD 0dc019H
DD 0e1f4c0H
DD 0e054b1H
DD 0e23414H
DD 0da0114H
DD 0d00be00dH
DD 07007c009H
DD 06006H
DD imagerel __GSHandlerCheck
DD 06c0H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwSetGammaRampWin32 DD 046619H
DD 0c63466H
DD 0c70107H
DD imagerel __GSHandlerCheck
DD 0620H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$monitorCallback DD 051f19H
DD 017340dH
DD 014010dH
DD 07006H
DD imagerel __GSHandlerCheck
DD 090H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$8$createMonitor DD 021H
DD imagerel createMonitor
DD imagerel createMonitor+67
DD imagerel $unwind$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$7$createMonitor DD 021H
DD imagerel createMonitor+67
DD imagerel createMonitor+80
DD imagerel $chain$0$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$6$createMonitor DD 021H
DD imagerel createMonitor+80
DD imagerel createMonitor+96
DD imagerel $chain$1$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$5$createMonitor DD 021H
DD imagerel createMonitor+96
DD imagerel createMonitor+237
DD imagerel $chain$3$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$4$createMonitor DD 020821H
DD 0146808H
DD imagerel createMonitor+96
DD imagerel createMonitor+237
DD imagerel $chain$3$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$3$createMonitor DD 041221H
DD 02af412H
DD 02bc408H
DD imagerel createMonitor+80
DD imagerel createMonitor+96
DD imagerel $chain$1$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$1$createMonitor DD 020821H
DD 0337408H
DD imagerel createMonitor+67
DD imagerel createMonitor+80
DD imagerel $chain$0$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$0$createMonitor DD 020821H
DD 0323408H
DD imagerel createMonitor
DD imagerel createMonitor+67
DD imagerel $unwind$createMonitor
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$createMonitor DD 051e19H
DD 02c010cH
DD 06003e005H
DD 05002H
DD imagerel __GSHandlerCheck
DD 0130H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$1$_glfwSetVideoModeWin32 DD 021H
DD imagerel $LN42
DD imagerel $LN42+163
DD imagerel $unwind$_glfwSetVideoModeWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$chain$0$_glfwSetVideoModeWin32 DD 020821H
DD 02e5408H
DD imagerel $LN42
DD imagerel $LN42+163
DD imagerel $unwind$_glfwSetVideoModeWin32
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwSetVideoModeWin32 DD 051d19H
DD 028010bH
DD 060037004H
DD 03002H
DD imagerel __GSHandlerCheck
DD 0130H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwRestoreVideoModeWin32 DD 020601H
DD 030025206H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetHMONITORContentScaleWin32 DD 041719H
DD 070045208H
DD 030026003H
DD imagerel __GSHandlerCheck
DD 028H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwGetWin32Adapter DD 010401H
DD 04204H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$glfwGetWin32Monitor DD 010401H
DD 04204H
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetVideoModeWin32
_TEXT SEGMENT
dm$ = 32
__$ArrayPad$ = 256
monitor$ = 288
mode$ = 296
_glfwGetVideoModeWin32 PROC ; COMDAT
; 476 : {
$LN13:
00000 48 89 5c 24 18 mov QWORD PTR [rsp+24], rbx
00005 48 89 74 24 20 mov QWORD PTR [rsp+32], rsi
0000a 57 push rdi
0000b 48 81 ec 10 01
00 00 sub rsp, 272 ; 00000110H
00012 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00019 48 33 c4 xor rax, rsp
0001c 48 89 84 24 00
01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
00024 48 8b fa mov rdi, rdx
00027 48 8b d9 mov rbx, rcx
; 477 : DEVMODEW dm;
; 478 : ZeroMemory(&dm, sizeof(dm));
0002a be dc 00 00 00 mov esi, 220 ; 000000dcH
0002f 48 8d 4c 24 20 lea rcx, QWORD PTR dm$[rsp]
00034 44 8b c6 mov r8d, esi
00037 33 d2 xor edx, edx
00039 e8 00 00 00 00 call memset
; 479 : dm.dmSize = sizeof(dm);
; 480 :
; 481 : EnumDisplaySettingsW(monitor->win32.adapterName, ENUM_CURRENT_SETTINGS, &dm);
0003e 48 8d 8b 08 01
00 00 lea rcx, QWORD PTR [rbx+264]
00045 66 89 74 24 64 mov WORD PTR dm$[rsp+68], si
0004a 4c 8d 44 24 20 lea r8, QWORD PTR dm$[rsp]
0004f ba ff ff ff ff mov edx, -1 ; ffffffffH
00054 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplaySettingsW
; 482 :
; 483 : mode->width = dm.dmPelsWidth;
0005a 8b 84 24 cc 00
00 00 mov eax, DWORD PTR dm$[rsp+172]
; 484 : mode->height = dm.dmPelsHeight;
; 485 : mode->refreshRate = dm.dmDisplayFrequency;
; 486 : _glfwSplitBPP(dm.dmBitsPerPel,
00061 8b 8c 24 c8 00
00 00 mov ecx, DWORD PTR dm$[rsp+168]
00068 89 07 mov DWORD PTR [rdi], eax
0006a 8b 84 24 d0 00
00 00 mov eax, DWORD PTR dm$[rsp+176]
00071 89 47 04 mov DWORD PTR [rdi+4], eax
00074 8b 84 24 d8 00
00 00 mov eax, DWORD PTR dm$[rsp+184]
0007b 89 47 14 mov DWORD PTR [rdi+20], eax
0007e 83 f9 20 cmp ecx, 32 ; 00000020H
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 287 : if (bpp == 32)
00081 75 17 jne SHORT $LN4@glfwGetVid
; 288 : bpp = 24;
00083 c7 47 10 08 00
00 00 mov DWORD PTR [rdi+16], 8
0008a c7 47 0c 08 00
00 00 mov DWORD PTR [rdi+12], 8
00091 c7 47 08 08 00
00 00 mov DWORD PTR [rdi+8], 8
; 295 : *green = *green + 1;
00098 eb 2e jmp SHORT $LN6@glfwGetVid
$LN4@glfwGetVid:
; 289 :
; 290 : // Convert "bits per pixel" to red, green & blue sizes
; 291 :
; 292 : *red = *green = *blue = bpp / 3;
0009a b8 56 55 55 55 mov eax, 1431655766 ; 55555556H
0009f f7 e9 imul ecx
000a1 8b c2 mov eax, edx
000a3 c1 e8 1f shr eax, 31
000a6 03 d0 add edx, eax
000a8 89 57 10 mov DWORD PTR [rdi+16], edx
000ab 89 57 0c mov DWORD PTR [rdi+12], edx
000ae 89 57 08 mov DWORD PTR [rdi+8], edx
; 293 : delta = bpp - (*red * 3);
000b1 8d 04 52 lea eax, DWORD PTR [rdx+rdx*2]
000b4 2b c8 sub ecx, eax
; 294 : if (delta >= 1)
000b6 83 f9 01 cmp ecx, 1
000b9 7c 0d jl SHORT $LN6@glfwGetVid
; 295 : *green = *green + 1;
000bb ff c2 inc edx
000bd 89 57 0c mov DWORD PTR [rdi+12], edx
; 296 :
; 297 : if (delta == 2)
000c0 83 f9 02 cmp ecx, 2
000c3 75 03 jne SHORT $LN6@glfwGetVid
; 298 : *red = *red + 1;
000c5 89 57 08 mov DWORD PTR [rdi+8], edx
$LN6@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 490 : }
000c8 48 8b 8c 24 00
01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
000d0 48 33 cc xor rcx, rsp
000d3 e8 00 00 00 00 call __security_check_cookie
000d8 4c 8d 9c 24 10
01 00 00 lea r11, QWORD PTR [rsp+272]
000e0 49 8b 5b 20 mov rbx, QWORD PTR [r11+32]
000e4 49 8b 73 28 mov rsi, QWORD PTR [r11+40]
000e8 49 8b e3 mov rsp, r11
000eb 5f pop rdi
000ec c3 ret 0
_glfwGetVideoModeWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetMonitorWorkareaWin32
_TEXT SEGMENT
mi$ = 32
__$ArrayPad$ = 72
monitor$ = 128
xpos$ = 136
ypos$ = 144
width$ = 152
height$ = 160
_glfwGetMonitorWorkareaWin32 PROC ; COMDAT
; 384 : {
$LN12:
00000 40 53 push rbx
00002 56 push rsi
00003 57 push rdi
00004 41 56 push r14
00006 48 83 ec 58 sub rsp, 88 ; 00000058H
0000a 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00011 48 33 c4 xor rax, rsp
00014 48 89 44 24 48 mov QWORD PTR __$ArrayPad$[rsp], rax
; 385 : MONITORINFO mi = { sizeof(mi) };
; 386 : GetMonitorInfoW(monitor->win32.handle, &mi);
00019 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
00020 0f 57 c0 xorps xmm0, xmm0
00023 48 8b 9c 24 a0
00 00 00 mov rbx, QWORD PTR height$[rsp]
0002b 4c 8b f2 mov r14, rdx
0002e 33 c0 xor eax, eax
00030 c7 44 24 20 28
00 00 00 mov DWORD PTR mi$[rsp], 40 ; 00000028H
00038 48 8d 54 24 20 lea rdx, QWORD PTR mi$[rsp]
0003d 89 44 24 44 mov DWORD PTR mi$[rsp+36], eax
00041 0f 11 44 24 24 movups XMMWORD PTR mi$[rsp+4], xmm0
00046 49 8b f1 mov rsi, r9
00049 49 8b f8 mov rdi, r8
0004c 0f 11 44 24 34 movups XMMWORD PTR mi$[rsp+20], xmm0
00051 ff 15 00 00 00
00 call QWORD PTR __imp_GetMonitorInfoW
; 387 :
; 388 : if (xpos)
00057 8b 54 24 34 mov edx, DWORD PTR mi$[rsp+20]
0005b 4d 85 f6 test r14, r14
0005e 74 03 je SHORT $LN2@glfwGetMon
; 389 : *xpos = mi.rcWork.left;
00060 41 89 16 mov DWORD PTR [r14], edx
$LN2@glfwGetMon:
; 390 : if (ypos)
00063 8b 4c 24 38 mov ecx, DWORD PTR mi$[rsp+24]
00067 48 85 ff test rdi, rdi
0006a 74 02 je SHORT $LN3@glfwGetMon
; 391 : *ypos = mi.rcWork.top;
0006c 89 0f mov DWORD PTR [rdi], ecx
$LN3@glfwGetMon:
; 392 : if (width)
0006e 48 85 f6 test rsi, rsi
00071 74 08 je SHORT $LN4@glfwGetMon
; 393 : *width = mi.rcWork.right - mi.rcWork.left;
00073 8b 44 24 3c mov eax, DWORD PTR mi$[rsp+28]
00077 2b c2 sub eax, edx
00079 89 06 mov DWORD PTR [rsi], eax
$LN4@glfwGetMon:
; 394 : if (height)
0007b 48 85 db test rbx, rbx
0007e 74 08 je SHORT $LN5@glfwGetMon
; 395 : *height = mi.rcWork.bottom - mi.rcWork.top;
00080 8b 44 24 40 mov eax, DWORD PTR mi$[rsp+32]
00084 2b c1 sub eax, ecx
00086 89 03 mov DWORD PTR [rbx], eax
$LN5@glfwGetMon:
; 396 : }
00088 48 8b 4c 24 48 mov rcx, QWORD PTR __$ArrayPad$[rsp]
0008d 48 33 cc xor rcx, rsp
00090 e8 00 00 00 00 call __security_check_cookie
00095 48 83 c4 58 add rsp, 88 ; 00000058H
00099 41 5e pop r14
0009b 5f pop rdi
0009c 5e pop rsi
0009d 5b pop rbx
0009e c3 ret 0
_glfwGetMonitorWorkareaWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetGammaRampWin32
_TEXT SEGMENT
values$ = 32
__$ArrayPad$ = 1568
monitor$ = 1600
ramp$ = 1608
_glfwGetGammaRampWin32 PROC ; COMDAT
; 493 : {
$LN10:
00000 48 89 5c 24 18 mov QWORD PTR [rsp+24], rbx
00005 57 push rdi
00006 48 81 ec 30 06
00 00 sub rsp, 1584 ; 00000630H
0000d 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00014 48 33 c4 xor rax, rsp
00017 48 89 84 24 20
06 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
0001f 48 8b fa mov rdi, rdx
; 494 : HDC dc;
; 495 : WORD values[3][256];
; 496 :
; 497 : dc = CreateDCW(L"DISPLAY", monitor->win32.adapterName, NULL, NULL);
00022 45 33 c9 xor r9d, r9d
00025 48 8d 91 08 01
00 00 lea rdx, QWORD PTR [rcx+264]
0002c 45 33 c0 xor r8d, r8d
0002f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@
00036 ff 15 00 00 00
00 call QWORD PTR __imp_CreateDCW
; 498 : GetDeviceGammaRamp(dc, values);
0003c 48 8b c8 mov rcx, rax
0003f 48 8d 54 24 20 lea rdx, QWORD PTR values$[rsp]
00044 48 8b d8 mov rbx, rax
00047 ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceGammaRamp
; 499 : DeleteDC(dc);
0004d 48 8b cb mov rcx, rbx
00050 ff 15 00 00 00
00 call QWORD PTR __imp_DeleteDC
; 500 :
; 501 : _glfwAllocGammaArrays(ramp, 256);
00056 ba 00 01 00 00 mov edx, 256 ; 00000100H
0005b 48 8b cf mov rcx, rdi
0005e e8 00 00 00 00 call _glfwAllocGammaArrays
; 502 :
; 503 : memcpy(ramp->red, values[0], sizeof(values[0]));
00063 48 8b 07 mov rax, QWORD PTR [rdi]
00066 48 8d 4c 24 20 lea rcx, QWORD PTR values$[rsp]
0006b ba 04 00 00 00 mov edx, 4
00070 44 8b c2 mov r8d, edx
$LL5@glfwGetGam:
00073 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
0007a 0f 10 01 movups xmm0, XMMWORD PTR [rcx]
0007d 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
00084 0f 11 40 80 movups XMMWORD PTR [rax-128], xmm0
00088 0f 10 49 90 movups xmm1, XMMWORD PTR [rcx-112]
0008c 0f 11 48 90 movups XMMWORD PTR [rax-112], xmm1
00090 0f 10 41 a0 movups xmm0, XMMWORD PTR [rcx-96]
00094 0f 11 40 a0 movups XMMWORD PTR [rax-96], xmm0
00098 0f 10 49 b0 movups xmm1, XMMWORD PTR [rcx-80]
0009c 0f 11 48 b0 movups XMMWORD PTR [rax-80], xmm1
000a0 0f 10 41 c0 movups xmm0, XMMWORD PTR [rcx-64]
000a4 0f 11 40 c0 movups XMMWORD PTR [rax-64], xmm0
000a8 0f 10 49 d0 movups xmm1, XMMWORD PTR [rcx-48]
000ac 0f 11 48 d0 movups XMMWORD PTR [rax-48], xmm1
000b0 0f 10 41 e0 movups xmm0, XMMWORD PTR [rcx-32]
000b4 0f 11 40 e0 movups XMMWORD PTR [rax-32], xmm0
000b8 0f 10 49 f0 movups xmm1, XMMWORD PTR [rcx-16]
000bc 0f 11 48 f0 movups XMMWORD PTR [rax-16], xmm1
000c0 49 83 e8 01 sub r8, 1
000c4 75 ad jne SHORT $LL5@glfwGetGam
; 504 : memcpy(ramp->green, values[1], sizeof(values[1]));
000c6 48 8b 47 08 mov rax, QWORD PTR [rdi+8]
000ca 48 8d 8c 24 20
02 00 00 lea rcx, QWORD PTR values$[rsp+512]
000d2 4c 8b c2 mov r8, rdx
$LL4@glfwGetGam:
000d5 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
000dc 0f 10 01 movups xmm0, XMMWORD PTR [rcx]
000df 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
000e6 0f 11 40 80 movups XMMWORD PTR [rax-128], xmm0
000ea 0f 10 49 90 movups xmm1, XMMWORD PTR [rcx-112]
000ee 0f 11 48 90 movups XMMWORD PTR [rax-112], xmm1
000f2 0f 10 41 a0 movups xmm0, XMMWORD PTR [rcx-96]
000f6 0f 11 40 a0 movups XMMWORD PTR [rax-96], xmm0
000fa 0f 10 49 b0 movups xmm1, XMMWORD PTR [rcx-80]
000fe 0f 11 48 b0 movups XMMWORD PTR [rax-80], xmm1
00102 0f 10 41 c0 movups xmm0, XMMWORD PTR [rcx-64]
00106 0f 11 40 c0 movups XMMWORD PTR [rax-64], xmm0
0010a 0f 10 49 d0 movups xmm1, XMMWORD PTR [rcx-48]
0010e 0f 11 48 d0 movups XMMWORD PTR [rax-48], xmm1
00112 0f 10 41 e0 movups xmm0, XMMWORD PTR [rcx-32]
00116 0f 11 40 e0 movups XMMWORD PTR [rax-32], xmm0
0011a 0f 10 49 f0 movups xmm1, XMMWORD PTR [rcx-16]
0011e 0f 11 48 f0 movups XMMWORD PTR [rax-16], xmm1
00122 49 83 e8 01 sub r8, 1
00126 75 ad jne SHORT $LL4@glfwGetGam
; 505 : memcpy(ramp->blue, values[2], sizeof(values[2]));
00128 48 8b 4f 10 mov rcx, QWORD PTR [rdi+16]
0012c 48 8d 84 24 20
04 00 00 lea rax, QWORD PTR values$[rsp+1024]
$LL3@glfwGetGam:
00134 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
0013b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
0013e 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
00145 0f 11 41 80 movups XMMWORD PTR [rcx-128], xmm0
00149 0f 10 48 90 movups xmm1, XMMWORD PTR [rax-112]
0014d 0f 11 49 90 movups XMMWORD PTR [rcx-112], xmm1
00151 0f 10 40 a0 movups xmm0, XMMWORD PTR [rax-96]
00155 0f 11 41 a0 movups XMMWORD PTR [rcx-96], xmm0
00159 0f 10 48 b0 movups xmm1, XMMWORD PTR [rax-80]
0015d 0f 11 49 b0 movups XMMWORD PTR [rcx-80], xmm1
00161 0f 10 40 c0 movups xmm0, XMMWORD PTR [rax-64]
00165 0f 11 41 c0 movups XMMWORD PTR [rcx-64], xmm0
00169 0f 10 48 d0 movups xmm1, XMMWORD PTR [rax-48]
0016d 0f 11 49 d0 movups XMMWORD PTR [rcx-48], xmm1
00171 0f 10 40 e0 movups xmm0, XMMWORD PTR [rax-32]
00175 0f 11 41 e0 movups XMMWORD PTR [rcx-32], xmm0
00179 0f 10 48 f0 movups xmm1, XMMWORD PTR [rax-16]
0017d 0f 11 49 f0 movups XMMWORD PTR [rcx-16], xmm1
00181 48 83 ea 01 sub rdx, 1
00185 75 ad jne SHORT $LL3@glfwGetGam
; 506 :
; 507 : return GLFW_TRUE;
00187 8d 42 01 lea eax, QWORD PTR [rdx+1]
; 508 : }
0018a 48 8b 8c 24 20
06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
00192 48 33 cc xor rcx, rsp
00195 e8 00 00 00 00 call __security_check_cookie
0019a 48 8b 9c 24 50
06 00 00 mov rbx, QWORD PTR [rsp+1616]
001a2 48 81 c4 30 06
00 00 add rsp, 1584 ; 00000630H
001a9 5f pop rdi
001aa c3 ret 0
_glfwGetGammaRampWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetMonitorPosWin32
_TEXT SEGMENT
dm$ = 32
__$ArrayPad$ = 256
monitor$ = 304
xpos$ = 312
ypos$ = 320
_glfwGetMonitorPosWin32 PROC ; COMDAT
; 359 : {
$LN8:
00000 48 89 5c 24 20 mov QWORD PTR [rsp+32], rbx
00005 55 push rbp
00006 56 push rsi
00007 57 push rdi
00008 48 81 ec 10 01
00 00 sub rsp, 272 ; 00000110H
0000f 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00016 48 33 c4 xor rax, rsp
00019 48 89 84 24 00
01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
00021 49 8b f8 mov rdi, r8
00024 48 8b f2 mov rsi, rdx
00027 48 8b d9 mov rbx, rcx
; 360 : DEVMODEW dm;
; 361 : ZeroMemory(&dm, sizeof(dm));
0002a bd dc 00 00 00 mov ebp, 220 ; 000000dcH
0002f 44 8b c5 mov r8d, ebp
00032 48 8d 4c 24 20 lea rcx, QWORD PTR dm$[rsp]
00037 33 d2 xor edx, edx
00039 e8 00 00 00 00 call memset
; 362 : dm.dmSize = sizeof(dm);
; 363 :
; 364 : EnumDisplaySettingsExW(monitor->win32.adapterName,
0003e 48 8d 8b 08 01
00 00 lea rcx, QWORD PTR [rbx+264]
00045 66 89 6c 24 64 mov WORD PTR dm$[rsp+68], bp
0004a 41 b9 04 00 00
00 mov r9d, 4
00050 4c 8d 44 24 20 lea r8, QWORD PTR dm$[rsp]
00055 ba ff ff ff ff mov edx, -1 ; ffffffffH
0005a ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplaySettingsExW
; 365 : ENUM_CURRENT_SETTINGS,
; 366 : &dm,
; 367 : EDS_ROTATEDMODE);
; 368 :
; 369 : if (xpos)
00060 48 85 f6 test rsi, rsi
00063 74 06 je SHORT $LN2@glfwGetMon
; 370 : *xpos = dm.dmPosition.x;
00065 8b 44 24 6c mov eax, DWORD PTR dm$[rsp+76]
00069 89 06 mov DWORD PTR [rsi], eax
$LN2@glfwGetMon:
; 371 : if (ypos)
0006b 48 85 ff test rdi, rdi
0006e 74 06 je SHORT $LN3@glfwGetMon
; 372 : *ypos = dm.dmPosition.y;
00070 8b 44 24 70 mov eax, DWORD PTR dm$[rsp+80]
00074 89 07 mov DWORD PTR [rdi], eax
$LN3@glfwGetMon:
; 373 : }
00076 48 8b 8c 24 00
01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
0007e 48 33 cc xor rcx, rsp
00081 e8 00 00 00 00 call __security_check_cookie
00086 48 8b 9c 24 48
01 00 00 mov rbx, QWORD PTR [rsp+328]
0008e 48 81 c4 10 01
00 00 add rsp, 272 ; 00000110H
00095 5f pop rdi
00096 5e pop rsi
00097 5d pop rbp
00098 c3 ret 0
_glfwGetMonitorPosWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetVideoModesWin32
_TEXT SEGMENT
monitor$GSCopy$1$ = 48
mode$1 = 56
dm$2 = 80
__$ArrayPad$ = 304
monitor$ = 384
count$ = 392
_glfwGetVideoModesWin32 PROC ; COMDAT
; 399 : {
$LN91:
00000 4c 8b dc mov r11, rsp
00003 53 push rbx
00004 56 push rsi
00005 57 push rdi
00006 41 56 push r14
00008 48 81 ec 58 01
00 00 sub rsp, 344 ; 00000158H
0000f 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00016 48 33 c4 xor rax, rsp
00019 48 89 84 24 30
01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
00021 4d 89 63 d8 mov QWORD PTR [r11-40], r12
00025 4c 8b f2 mov r14, rdx
00028 4d 89 6b d0 mov QWORD PTR [r11-48], r13
0002c 48 8b f1 mov rsi, rcx
0002f 48 89 4c 24 30 mov QWORD PTR monitor$GSCopy$1$[rsp], rcx
; 400 : int modeIndex = 0, size = 0;
; 401 : GLFWvidmode* result = NULL;
00034 33 ff xor edi, edi
; 402 :
; 403 : *count = 0;
00036 89 3a mov DWORD PTR [rdx], edi
; 404 :
; 405 : for (;;)
; 406 : {
; 407 : int i;
; 408 : GLFWvidmode mode;
; 409 : DEVMODEW dm;
; 410 :
; 411 : ZeroMemory(&dm, sizeof(dm));
00038 48 8d 4c 24 50 lea rcx, QWORD PTR dm$2[rsp]
0003d 4d 89 7b c8 mov QWORD PTR [r11-56], r15
00041 41 bd dc 00 00
00 mov r13d, 220 ; 000000dcH
00047 45 8b c5 mov r8d, r13d
0004a 33 d2 xor edx, edx
0004c 45 33 e4 xor r12d, r12d
0004f 45 33 ff xor r15d, r15d
00052 e8 00 00 00 00 call memset
; 412 : dm.dmSize = sizeof(dm);
00057 66 44 89 ac 24
94 00 00 00 mov WORD PTR dm$2[rsp+68], r13w
; 413 :
; 414 : if (!EnumDisplaySettingsW(monitor->win32.adapterName, modeIndex, &dm))
00060 4c 8d 44 24 50 lea r8, QWORD PTR dm$2[rsp]
00065 4c 8d ae 08 01
00 00 lea r13, QWORD PTR [rsi+264]
0006c 33 d2 xor edx, edx
0006e 49 8b cd mov rcx, r13
00071 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplaySettingsW
00077 85 c0 test eax, eax
00079 0f 84 68 02 00
00 je $LN58@glfwGetVid
0007f 48 89 ac 24 90
01 00 00 mov QWORD PTR [rsp+400], rbp
00087 bb dc 00 00 00 mov ebx, 220 ; 000000dcH
0008c 0f 1f 40 00 npad 4
$LL2@glfwGetVid:
; 415 : break;
; 416 :
; 417 : modeIndex++;
; 418 :
; 419 : // Skip modes with less than 15 BPP
; 420 : if (dm.dmBitsPerPel < 15)
00090 8b 8c 24 f8 00
00 00 mov ecx, DWORD PTR dm$2[rsp+168]
00097 41 ff c4 inc r12d
0009a 83 f9 0f cmp ecx, 15
0009d 0f 82 0c 02 00
00 jb $LN60@glfwGetVid
; 421 : continue;
; 422 :
; 423 : mode.width = dm.dmPelsWidth;
000a3 44 8b 9c 24 fc
00 00 00 mov r11d, DWORD PTR dm$2[rsp+172]
; 424 : mode.height = dm.dmPelsHeight;
000ab 8b 9c 24 00 01
00 00 mov ebx, DWORD PTR dm$2[rsp+176]
; 425 : mode.refreshRate = dm.dmDisplayFrequency;
000b2 8b ac 24 08 01
00 00 mov ebp, DWORD PTR dm$2[rsp+184]
000b9 44 89 5c 24 38 mov DWORD PTR mode$1[rsp], r11d
000be 89 5c 24 3c mov DWORD PTR mode$1[rsp+4], ebx
000c2 89 6c 24 4c mov DWORD PTR mode$1[rsp+20], ebp
; 426 : _glfwSplitBPP(dm.dmBitsPerPel,
000c6 83 f9 20 cmp ecx, 32 ; 00000020H
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 287 : if (bpp == 32)
000c9 75 6a jne SHORT $LN18@glfwGetVid
; 288 : bpp = 24;
000cb ba 08 00 00 00 mov edx, 8
000d0 33 c9 xor ecx, ecx
000d2 89 54 24 48 mov DWORD PTR mode$1[rsp+16], edx
000d6 44 8b c2 mov r8d, edx
000d9 44 8b ca mov r9d, edx
000dc 89 54 24 44 mov DWORD PTR mode$1[rsp+12], edx
000e0 44 8b d2 mov r10d, edx
$LN66@glfwGetVid:
; 295 : *green = *green + 1;
000e3 41 ff c2 inc r10d
$LN19@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 431 : for (i = 0; i < *count; i++)
000e6 41 8b 36 mov esi, DWORD PTR [r14]
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 297 : if (delta == 2)
000e9 83 f9 02 cmp ecx, 2
000ec 41 8b c0 mov eax, r8d
000ef 41 0f 44 c2 cmove eax, r10d
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 431 : for (i = 0; i < *count; i++)
000f3 45 0f 45 d0 cmovne r10d, r8d
000f7 45 33 c0 xor r8d, r8d
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 297 : if (delta == 2)
000fa 89 44 24 40 mov DWORD PTR mode$1[rsp+8], eax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 431 : for (i = 0; i < *count; i++)
000fe 85 f6 test esi, esi
00100 0f 8e a3 00 00
00 jle $LN65@glfwGetVid
00106 45 03 ca add r9d, r10d
00109 48 8d 4f 0c lea rcx, QWORD PTR [rdi+12]
0010d 44 03 ca add r9d, edx
00110 41 0f af db imul ebx, r11d
00114 0f 1f 40 00 0f
1f 84 00 00 00
00 00 npad 12
$LL7@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 46 : const int fbpp = fm->redBits + fm->greenBits + fm->blueBits;
00120 8b 41 fc mov eax, DWORD PTR [rcx-4]
00123 03 41 04 add eax, DWORD PTR [rcx+4]
00126 03 01 add eax, DWORD PTR [rcx]
; 47 : const int sbpp = sm->redBits + sm->greenBits + sm->blueBits;
; 48 : const int farea = fm->width * fm->height;
00128 8b 51 f4 mov edx, DWORD PTR [rcx-12]
; 49 : const int sarea = sm->width * sm->height;
; 50 :
; 51 : // First sort on color bits per pixel
; 52 : if (fbpp != sbpp)
0012b 41 3b c1 cmp eax, r9d
0012e 74 3f je SHORT $LN25@glfwGetVid
; 53 : return fbpp - sbpp;
00130 41 2b c1 sub eax, r9d
00133 eb 59 jmp SHORT $LN24@glfwGetVid
$LN18@glfwGetVid:
; 292 : *red = *green = *blue = bpp / 3;
00135 b8 56 55 55 55 mov eax, 1431655766 ; 55555556H
0013a f7 e9 imul ecx
0013c 8b c2 mov eax, edx
0013e c1 e8 1f shr eax, 31
00141 03 d0 add edx, eax
00143 44 8b d2 mov r10d, edx
00146 89 54 24 48 mov DWORD PTR mode$1[rsp+16], edx
0014a 44 8b c2 mov r8d, edx
; 293 : delta = bpp - (*red * 3);
0014d 89 54 24 44 mov DWORD PTR mode$1[rsp+12], edx
00151 44 8b ca mov r9d, edx
00154 8d 04 52 lea eax, DWORD PTR [rdx+rdx*2]
00157 2b c8 sub ecx, eax
; 294 : if (delta >= 1)
00159 83 f9 01 cmp ecx, 1
0015c 7c 85 jl SHORT $LN66@glfwGetVid
; 295 : *green = *green + 1;
0015e 44 8d 4a 01 lea r9d, DWORD PTR [rdx+1]
00162 44 89 4c 24 44 mov DWORD PTR mode$1[rsp+12], r9d
00167 45 8b d1 mov r10d, r9d
0016a e9 77 ff ff ff jmp $LN19@glfwGetVid
$LN25@glfwGetVid:
; 48 : const int farea = fm->width * fm->height;
0016f 8b c2 mov eax, edx
00171 0f af 41 f8 imul eax, DWORD PTR [rcx-8]
; 54 :
; 55 : // Then sort on screen area
; 56 : if (farea != sarea)
00175 3b c3 cmp eax, ebx
00177 74 04 je SHORT $LN26@glfwGetVid
; 57 : return farea - sarea;
00179 2b c3 sub eax, ebx
0017b eb 11 jmp SHORT $LN24@glfwGetVid
$LN26@glfwGetVid:
; 58 :
; 59 : // Then sort on width
; 60 : if (fm->width != sm->width)
0017d 41 3b d3 cmp edx, r11d
00180 74 07 je SHORT $LN27@glfwGetVid
; 61 : return fm->width - sm->width;
00182 8b c2 mov eax, edx
00184 41 2b c3 sub eax, r11d
00187 eb 05 jmp SHORT $LN24@glfwGetVid
$LN27@glfwGetVid:
; 62 :
; 63 : // Lastly sort on refresh rate
; 64 : return fm->refreshRate - sm->refreshRate;
00189 8b 41 08 mov eax, DWORD PTR [rcx+8]
0018c 2b c5 sub eax, ebp
$LN24@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 433 : if (_glfwCompareVideoModes(result + i, &mode) == 0)
0018e 85 c0 test eax, eax
00190 74 0e je SHORT $LN57@glfwGetVid
; 431 : for (i = 0; i < *count; i++)
00192 41 ff c0 inc r8d
00195 48 83 c1 18 add rcx, 24
00199 44 3b c6 cmp r8d, esi
0019c 7c 82 jl SHORT $LL7@glfwGetVid
; 438 : if (i < *count)
0019e eb 09 jmp SHORT $LN65@glfwGetVid
$LN57@glfwGetVid:
001a0 44 3b c6 cmp r8d, esi
001a3 0f 8c fc 00 00
00 jl $LN68@glfwGetVid
$LN65@glfwGetVid:
; 439 : continue;
; 440 :
; 441 : if (monitor->win32.modesPruned)
001a9 48 8b 74 24 30 mov rsi, QWORD PTR monitor$GSCopy$1$[rsp]
001ae 83 be c8 01 00
00 00 cmp DWORD PTR [rsi+456], 0
001b5 74 28 je SHORT $LN13@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)
001b7 41 b9 02 00 00
00 mov r9d, 2
001bd 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
001c6 45 33 c0 xor r8d, r8d
001c9 48 8d 54 24 50 lea rdx, QWORD PTR dm$2[rsp]
001ce 49 8b cd mov rcx, r13
001d1 ff 15 00 00 00
00 call QWORD PTR __imp_ChangeDisplaySettingsExW
001d7 85 c0 test eax, eax
001d9 0f 85 cb 00 00
00 jne $LN69@glfwGetVid
$LN13@glfwGetVid:
; 449 : {
; 450 : continue;
; 451 : }
; 452 : }
; 453 :
; 454 : if (*count == size)
001df 45 39 3e cmp DWORD PTR [r14], r15d
001e2 75 42 jne SHORT $LN42@glfwGetVid
; 455 : {
; 456 : size += 128;
001e4 41 83 ef 80 sub r15d, -128 ; ffffffffffffff80H
; 457 : result = (GLFWvidmode*) _glfw_realloc(result, size * sizeof(GLFWvidmode));
001e8 49 63 c7 movsxd rax, r15d
001eb 48 8d 1c 40 lea rbx, QWORD PTR [rax+rax*2]
001ef 48 c1 e3 03 shl rbx, 3
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 298 : if (block && size)
001f3 48 85 ff test rdi, rdi
001f6 74 61 je SHORT $LN34@glfwGetVid
001f8 48 8b cf mov rcx, rdi
001fb 48 85 db test rbx, rbx
001fe 74 4a je SHORT $LN30@glfwGetVid
; 299 : {
; 300 : void* resized = _glfw.allocator.reallocate(block, size, _glfw.allocator.user);
00200 4c 8b 05 20 00
00 00 mov r8, QWORD PTR _glfw+32
00207 48 8b d3 mov rdx, rbx
0020a ff 15 10 00 00
00 call QWORD PTR _glfw+16
00210 48 8b f8 mov rdi, rax
; 301 : if (resized)
00213 48 85 c0 test rax, rax
00216 75 0e jne SHORT $LN42@glfwGetVid
$LN44@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 460 : (*count)++;
00218 33 d2 xor edx, edx
0021a b9 05 00 01 00 mov ecx, 65541 ; 00010005H
$LN89@glfwGetVid:
0021f e8 00 00 00 00 call _glfwInputError
$LN41@glfwGetVid:
00224 33 ff xor edi, edi
$LN42@glfwGetVid:
00226 49 63 0e movsxd rcx, DWORD PTR [r14]
; 461 : result[*count - 1] = mode;
00229 0f 10 44 24 38 movups xmm0, XMMWORD PTR mode$1[rsp]
0022e f2 0f 10 4c 24
48 movsd xmm1, QWORD PTR mode$1[rsp+16]
00234 8d 41 01 lea eax, DWORD PTR [rcx+1]
00237 48 8d 0c 49 lea rcx, QWORD PTR [rcx+rcx*2]
0023b 41 89 06 mov DWORD PTR [r14], eax
0023e 0f 11 04 cf movups XMMWORD PTR [rdi+rcx*8], xmm0
00242 f2 0f 11 4c cf
10 movsd QWORD PTR [rdi+rcx*8+16], xmm1
00248 eb 60 jmp SHORT $LN69@glfwGetVid
$LN30@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user);
0024a 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
00251 ff 15 18 00 00
00 call QWORD PTR _glfw+24
; 312 : return NULL;
00257 eb cb jmp SHORT $LN41@glfwGetVid
$LN34@glfwGetVid:
; 273 : if (count && size)
00259 48 85 db test rbx, rbx
0025c 74 c6 je SHORT $LN41@glfwGetVid
; 274 : {
; 275 : void* block;
; 276 :
; 277 : if (count > SIZE_MAX / size)
0025e 33 d2 xor edx, edx
00260 48 c7 c0 ff ff
ff ff mov rax, -1
00267 48 f7 f3 div rbx
0026a 48 83 f8 01 cmp rax, 1
0026e 73 0e jae SHORT $LN43@glfwGetVid
; 278 : {
; 279 : _glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow");
00270 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BJ@IHHANIOG@Allocation?5size?5overflow@
00277 b9 04 00 01 00 mov ecx, 65540 ; 00010004H
; 280 : return NULL;
0027c eb a1 jmp SHORT $LN89@glfwGetVid
$LN43@glfwGetVid:
; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user);
0027e 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
00285 48 8b cb mov rcx, rbx
00288 ff 15 08 00 00
00 call QWORD PTR _glfw+8
; 284 : if (block)
0028e 48 85 c0 test rax, rax
00291 74 85 je SHORT $LN44@glfwGetVid
; 285 : return memset(block, 0, count * size);
00293 4c 8b c3 mov r8, rbx
00296 33 d2 xor edx, edx
00298 48 8b c8 mov rcx, rax
0029b e8 00 00 00 00 call memset
002a0 48 8b f8 mov rdi, rax
002a3 eb 81 jmp SHORT $LN42@glfwGetVid
$LN68@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 438 : if (i < *count)
002a5 48 8b 74 24 30 mov rsi, QWORD PTR monitor$GSCopy$1$[rsp]
$LN69@glfwGetVid:
; 404 :
; 405 : for (;;)
; 406 : {
; 407 : int i;
; 408 : GLFWvidmode mode;
; 409 : DEVMODEW dm;
; 410 :
; 411 : ZeroMemory(&dm, sizeof(dm));
002aa bb dc 00 00 00 mov ebx, 220 ; 000000dcH
$LN60@glfwGetVid:
002af 4c 8b c3 mov r8, rbx
002b2 48 8d 4c 24 50 lea rcx, QWORD PTR dm$2[rsp]
002b7 33 d2 xor edx, edx
002b9 e8 00 00 00 00 call memset
; 413 :
; 414 : if (!EnumDisplaySettingsW(monitor->win32.adapterName, modeIndex, &dm))
002be 4c 8d 44 24 50 lea r8, QWORD PTR dm$2[rsp]
002c3 66 89 9c 24 94
00 00 00 mov WORD PTR dm$2[rsp+68], bx
002cb 41 8b d4 mov edx, r12d
002ce 49 8b cd mov rcx, r13
002d1 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplaySettingsW
002d7 85 c0 test eax, eax
002d9 0f 85 b1 fd ff
ff jne $LL2@glfwGetVid
002df 48 8b ac 24 90
01 00 00 mov rbp, QWORD PTR [rsp+400]
$LN58@glfwGetVid:
; 462 : }
; 463 :
; 464 : if (!*count)
002e7 41 83 3e 00 cmp DWORD PTR [r14], 0
002eb 4c 8b bc 24 40
01 00 00 mov r15, QWORD PTR [rsp+320]
002f3 4c 8b ac 24 48
01 00 00 mov r13, QWORD PTR [rsp+328]
002fb 4c 8b a4 24 50
01 00 00 mov r12, QWORD PTR [rsp+336]
00303 75 4d jne SHORT $LN67@glfwGetVid
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user);
00305 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
0030c b9 18 00 00 00 mov ecx, 24
00311 ff 15 08 00 00
00 call QWORD PTR _glfw+8
00317 48 8b d8 mov rbx, rax
; 284 : if (block)
0031a 48 85 c0 test rax, rax
0031d 74 0e je SHORT $LN51@glfwGetVid
0031f 0f 57 c0 xorps xmm0, xmm0
; 285 : return memset(block, 0, count * size);
00322 33 c0 xor eax, eax
00324 0f 11 03 movups XMMWORD PTR [rbx], xmm0
00327 48 89 43 10 mov QWORD PTR [rbx+16], rax
0032b eb 0e jmp SHORT $LN49@glfwGetVid
$LN51@glfwGetVid:
; 286 : else
; 287 : {
; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL);
0032d 33 d2 xor edx, edx
0032f b9 05 00 01 00 mov ecx, 65541 ; 00010005H
00334 e8 00 00 00 00 call _glfwInputError
; 289 : return NULL;
00339 33 db xor ebx, ebx
$LN49@glfwGetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 468 : _glfwGetVideoModeWin32(monitor, result);
0033b 48 8b d3 mov rdx, rbx
0033e 48 8b ce mov rcx, rsi
00341 e8 00 00 00 00 call _glfwGetVideoModeWin32
; 469 : *count = 1;
; 470 : }
; 471 :
; 472 : return result;
00346 48 8b c3 mov rax, rbx
00349 41 c7 06 01 00
00 00 mov DWORD PTR [r14], 1
00350 eb 03 jmp SHORT $LN15@glfwGetVid
$LN67@glfwGetVid:
00352 48 8b c7 mov rax, rdi
$LN15@glfwGetVid:
; 473 : }
00355 48 8b 8c 24 30
01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
0035d 48 33 cc xor rcx, rsp
00360 e8 00 00 00 00 call __security_check_cookie
00365 48 81 c4 58 01
00 00 add rsp, 344 ; 00000158H
0036c 41 5e pop r14
0036e 5f pop rdi
0036f 5e pop rsi
00370 5b pop rbx
00371 c3 ret 0
_glfwGetVideoModesWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwPollMonitorsWin32
_TEXT SEGMENT
adapter$ = 32
display$ = 880
__$ArrayPad$ = 1728
_glfwPollMonitorsWin32 PROC ; COMDAT
; 139 : {
$LN116:
00000 48 89 5c 24 18 mov QWORD PTR [rsp+24], rbx
00005 56 push rsi
00006 57 push rdi
00007 41 54 push r12
00009 41 55 push r13
0000b 41 56 push r14
0000d 48 81 ec d0 06
00 00 sub rsp, 1744 ; 000006d0H
00014 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001b 48 33 c4 xor rax, rsp
0001e 48 89 84 24 c0
06 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
; 140 : int i, disconnectedCount;
; 141 : _GLFWmonitor** disconnected = NULL;
; 142 : DWORD adapterIndex, displayIndex;
; 143 : DISPLAY_DEVICEW adapter, display;
; 144 : _GLFWmonitor* monitor;
; 145 :
; 146 : disconnectedCount = _glfw.monitorCount;
00026 4c 63 25 88 07
00 00 movsxd r12, DWORD PTR _glfw+1928
0002d 33 f6 xor esi, esi
0002f 44 8b f6 mov r14d, esi
; 147 : if (disconnectedCount)
00032 45 85 e4 test r12d, r12d
00035 74 72 je SHORT $LN76@glfwPollMo
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 277 : if (count > SIZE_MAX / size)
00037 48 b8 ff ff ff
ff ff ff ff 1f mov rax, 2305843009213693951 ; 1fffffffffffffffH
00041 4c 3b e0 cmp r12, rax
00044 76 0e jbe SHORT $LN35@glfwPollMo
; 278 : {
; 279 : _glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow");
00046 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BJ@IHHANIOG@Allocation?5size?5overflow@
0004d b9 04 00 01 00 mov ecx, 65540 ; 00010004H
; 280 : return NULL;
00052 eb 36 jmp SHORT $LN113@glfwPollMo
$LN35@glfwPollMo:
; 281 : }
; 282 :
; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user);
00054 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
0005b 4a 8d 1c e5 00
00 00 00 lea rbx, QWORD PTR [r12*8]
00063 48 8b cb mov rcx, rbx
00066 ff 15 08 00 00
00 call QWORD PTR _glfw+8
; 284 : if (block)
0006c 48 85 c0 test rax, rax
0006f 74 12 je SHORT $LN36@glfwPollMo
; 285 : return memset(block, 0, count * size);
00071 4c 8b c3 mov r8, rbx
00074 33 d2 xor edx, edx
00076 48 8b c8 mov rcx, rax
00079 e8 00 00 00 00 call memset
0007e 4c 8b f0 mov r14, rax
00081 eb 0c jmp SHORT $LN34@glfwPollMo
$LN36@glfwPollMo:
; 286 : else
; 287 : {
; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL);
00083 33 d2 xor edx, edx
00085 b9 05 00 01 00 mov ecx, 65541 ; 00010005H
$LN113@glfwPollMo:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 150 : memcpy(disconnected,
0008a e8 00 00 00 00 call _glfwInputError
$LN34@glfwPollMo:
0008f 4c 63 05 88 07
00 00 movsxd r8, DWORD PTR _glfw+1928
00096 49 8b ce mov rcx, r14
00099 48 8b 15 80 07
00 00 mov rdx, QWORD PTR _glfw+1920
000a0 49 c1 e0 03 shl r8, 3
000a4 e8 00 00 00 00 call memcpy
$LN76@glfwPollMo:
; 151 : _glfw.monitors,
; 152 : _glfw.monitorCount * sizeof(_GLFWmonitor*));
; 153 : }
; 154 :
; 155 : for (adapterIndex = 0; ; adapterIndex++)
; 156 : {
; 157 : int type = _GLFW_INSERT_LAST;
; 158 :
; 159 : ZeroMemory(&adapter, sizeof(adapter));
000a9 48 89 ac 24 00
07 00 00 mov QWORD PTR [rsp+1792], rbp
000b1 48 8d 4c 24 24 lea rcx, QWORD PTR adapter$[rsp+4]
000b6 33 d2 xor edx, edx
000b8 4c 89 bc 24 08
07 00 00 mov QWORD PTR [rsp+1800], r15
000c0 41 b8 44 03 00
00 mov r8d, 836 ; 00000344H
000c6 44 8b ee mov r13d, esi
000c9 e8 00 00 00 00 call memset
; 160 : adapter.cb = sizeof(adapter);
; 161 :
; 162 : if (!EnumDisplayDevicesW(NULL, adapterIndex, &adapter, 0))
000ce 45 33 c9 xor r9d, r9d
000d1 c7 44 24 20 48
03 00 00 mov DWORD PTR adapter$[rsp], 840 ; 00000348H
000d9 4c 8d 44 24 20 lea r8, QWORD PTR adapter$[rsp]
000de 33 d2 xor edx, edx
000e0 33 c9 xor ecx, ecx
000e2 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayDevicesW
000e8 85 c0 test eax, eax
000ea 0f 84 16 02 00
00 je $LN59@glfwPollMo
$LL4@glfwPollMo:
; 163 : break;
; 164 :
; 165 : if (!(adapter.StateFlags & DISPLAY_DEVICE_ACTIVE))
000f0 44 8b bc 24 64
01 00 00 mov r15d, DWORD PTR adapter$[rsp+324]
000f8 41 f6 c7 01 test r15b, 1
000fc 0f 84 cc 01 00
00 je $LN2@glfwPollMo
; 166 : continue;
; 167 :
; 168 : if (adapter.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE)
00102 41 c1 ef 02 shr r15d, 2
; 169 : type = _GLFW_INSERT_FIRST;
; 170 :
; 171 : for (displayIndex = 0; ; displayIndex++)
; 172 : {
; 173 : ZeroMemory(&display, sizeof(display));
00106 48 8d 8c 24 74
03 00 00 lea rcx, QWORD PTR display$[rsp+4]
0010e 41 f7 d7 not r15d
00111 33 d2 xor edx, edx
00113 41 b8 44 03 00
00 mov r8d, 836 ; 00000344H
00119 41 83 e7 01 and r15d, 1
0011d 8b ee mov ebp, esi
0011f e8 00 00 00 00 call memset
; 174 : display.cb = sizeof(display);
; 175 :
; 176 : if (!EnumDisplayDevicesW(adapter.DeviceName, displayIndex, &display, 0))
00124 45 33 c9 xor r9d, r9d
00127 c7 84 24 70 03
00 00 48 03 00
00 mov DWORD PTR display$[rsp], 840 ; 00000348H
00132 4c 8d 84 24 70
03 00 00 lea r8, QWORD PTR display$[rsp]
0013a 33 d2 xor edx, edx
0013c 48 8d 4c 24 24 lea rcx, QWORD PTR adapter$[rsp+4]
00141 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayDevicesW
00147 85 c0 test eax, eax
00149 0f 84 07 01 00
00 je $LN75@glfwPollMo
0014f 90 npad 1
$LL7@glfwPollMo:
; 177 : break;
; 178 :
; 179 : if (!(display.StateFlags & DISPLAY_DEVICE_ACTIVE))
00150 f6 84 24 b4 04
00 00 01 test BYTE PTR display$[rsp+324], 1
00158 0f 84 ae 00 00
00 je $LN5@glfwPollMo
; 180 : continue;
; 181 :
; 182 : for (i = 0; i < disconnectedCount; i++)
0015e 8b de mov ebx, esi
00160 4c 8b ce mov r9, rsi
00163 45 85 e4 test r12d, r12d
00166 7e 6e jle SHORT $LN77@glfwPollMo
00168 0f 1f 84 00 00
00 00 00 npad 8
$LL10@glfwPollMo:
; 183 : {
; 184 : if (disconnected[i] &&
00170 4e 8d 14 cd 00
00 00 00 lea r10, QWORD PTR [r9*8]
00178 4b 8b 04 32 mov rax, QWORD PTR [r10+r14]
0017c 48 85 c0 test rax, rax
0017f 74 29 je SHORT $LN8@glfwPollMo
00181 48 05 48 01 00
00 add rax, 328 ; 00000148H
00187 4c 8d 84 24 74
03 00 00 lea r8, QWORD PTR display$[rsp+4]
0018f 4c 2b c0 sub r8, rax
$LL83@glfwPollMo:
00192 0f b7 10 movzx edx, WORD PTR [rax]
00195 42 0f b7 0c 00 movzx ecx, WORD PTR [rax+r8]
0019a 2b d1 sub edx, ecx
0019c 75 08 jne SHORT $LN84@glfwPollMo
0019e 48 83 c0 02 add rax, 2
001a2 85 c9 test ecx, ecx
001a4 75 ec jne SHORT $LL83@glfwPollMo
$LN84@glfwPollMo:
001a6 85 d2 test edx, edx
001a8 74 0c je SHORT $LN55@glfwPollMo
$LN8@glfwPollMo:
; 180 : continue;
; 181 :
; 182 : for (i = 0; i < disconnectedCount; i++)
001aa ff c3 inc ebx
001ac 49 ff c1 inc r9
001af 4d 3b cc cmp r9, r12
001b2 7c bc jl SHORT $LL10@glfwPollMo
001b4 eb 20 jmp SHORT $LN77@glfwPollMo
$LN55@glfwPollMo:
; 185 : wcscmp(disconnected[i]->win32.displayName,
; 186 : display.DeviceName) == 0)
; 187 : {
; 188 : disconnected[i] = NULL;
001b6 4b 89 34 32 mov QWORD PTR [r10+r14], rsi
; 189 : // handle may have changed, update
; 190 : EnumDisplayMonitors(NULL, NULL, monitorCallback, (LPARAM) _glfw.monitors[i]);
001ba 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:monitorCallback
001c1 4c 8b 0d 80 07
00 00 mov r9, QWORD PTR _glfw+1920
001c8 33 d2 xor edx, edx
001ca 33 c9 xor ecx, ecx
001cc 4f 8b 0c 0a mov r9, QWORD PTR [r10+r9]
001d0 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayMonitors
$LN77@glfwPollMo:
; 191 : break;
; 192 : }
; 193 : }
; 194 :
; 195 : if (i < disconnectedCount)
001d6 41 3b dc cmp ebx, r12d
001d9 7c 31 jl SHORT $LN5@glfwPollMo
; 196 : continue;
; 197 :
; 198 : monitor = createMonitor(&adapter, &display);
001db 48 8d 94 24 70
03 00 00 lea rdx, QWORD PTR display$[rsp]
001e3 48 8d 4c 24 20 lea rcx, QWORD PTR adapter$[rsp]
001e8 e8 00 00 00 00 call createMonitor
; 199 : if (!monitor)
001ed 48 85 c0 test rax, rax
001f0 0f 84 38 01 00
00 je $LN15@glfwPollMo
; 200 : {
; 201 : _glfw_free(disconnected);
; 202 : return;
; 203 : }
; 204 :
; 205 : _glfwInputMonitor(monitor, GLFW_CONNECTED, type);
001f6 45 8b c7 mov r8d, r15d
001f9 ba 01 00 04 00 mov edx, 262145 ; 00040001H
001fe 48 8b c8 mov rcx, rax
00201 e8 00 00 00 00 call _glfwInputMonitor
; 206 :
; 207 : type = _GLFW_INSERT_LAST;
00206 41 bf 01 00 00
00 mov r15d, 1
$LN5@glfwPollMo:
; 169 : type = _GLFW_INSERT_FIRST;
; 170 :
; 171 : for (displayIndex = 0; ; displayIndex++)
; 172 : {
; 173 : ZeroMemory(&display, sizeof(display));
0020c 33 d2 xor edx, edx
0020e 48 8d 8c 24 74
03 00 00 lea rcx, QWORD PTR display$[rsp+4]
00216 41 b8 44 03 00
00 mov r8d, 836 ; 00000344H
0021c ff c5 inc ebp
0021e e8 00 00 00 00 call memset
; 174 : display.cb = sizeof(display);
; 175 :
; 176 : if (!EnumDisplayDevicesW(adapter.DeviceName, displayIndex, &display, 0))
00223 45 33 c9 xor r9d, r9d
00226 c7 84 24 70 03
00 00 48 03 00
00 mov DWORD PTR display$[rsp], 840 ; 00000348H
00231 4c 8d 84 24 70
03 00 00 lea r8, QWORD PTR display$[rsp]
00239 8b d5 mov edx, ebp
0023b 48 8d 4c 24 24 lea rcx, QWORD PTR adapter$[rsp+4]
00240 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayDevicesW
00246 85 c0 test eax, eax
00248 0f 85 02 ff ff
ff jne $LL7@glfwPollMo
; 208 : }
; 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)
0024e 85 ed test ebp, ebp
00250 0f 85 78 00 00
00 jne $LN2@glfwPollMo
$LN75@glfwPollMo:
; 213 : {
; 214 : for (i = 0; i < disconnectedCount; i++)
00256 44 8b d6 mov r10d, esi
00259 4c 8b ce mov r9, rsi
0025c 45 85 e4 test r12d, r12d
0025f 7e 47 jle SHORT $LN79@glfwPollMo
$LL13@glfwPollMo:
; 215 : {
; 216 : if (disconnected[i] &&
00261 4b 8b 04 ce mov rax, QWORD PTR [r14+r9*8]
00265 4f 8d 1c ce lea r11, QWORD PTR [r14+r9*8]
00269 48 85 c0 test rax, rax
0026c 74 2a je SHORT $LN11@glfwPollMo
0026e 48 05 08 01 00
00 add rax, 264 ; 00000108H
00274 4c 8d 44 24 24 lea r8, QWORD PTR adapter$[rsp+4]
00279 4c 2b c0 sub r8, rax
0027c 0f 1f 40 00 npad 4
$LL81@glfwPollMo:
00280 0f b7 10 movzx edx, WORD PTR [rax]
00283 42 0f b7 0c 00 movzx ecx, WORD PTR [rax+r8]
00288 2b d1 sub edx, ecx
0028a 75 08 jne SHORT $LN82@glfwPollMo
0028c 48 83 c0 02 add rax, 2
00290 85 c9 test ecx, ecx
00292 75 ec jne SHORT $LL81@glfwPollMo
$LN82@glfwPollMo:
00294 85 d2 test edx, edx
00296 74 0d je SHORT $LN58@glfwPollMo
$LN11@glfwPollMo:
; 213 : {
; 214 : for (i = 0; i < disconnectedCount; i++)
00298 41 ff c2 inc r10d
0029b 49 ff c1 inc r9
0029e 4d 3b cc cmp r9, r12
002a1 7c be jl SHORT $LL13@glfwPollMo
002a3 eb 03 jmp SHORT $LN79@glfwPollMo
$LN58@glfwPollMo:
; 217 : wcscmp(disconnected[i]->win32.adapterName,
; 218 : adapter.DeviceName) == 0)
; 219 : {
; 220 : disconnected[i] = NULL;
002a5 49 89 33 mov QWORD PTR [r11], rsi
$LN79@glfwPollMo:
; 221 : break;
; 222 : }
; 223 : }
; 224 :
; 225 : if (i < disconnectedCount)
002a8 45 3b d4 cmp r10d, r12d
002ab 7c 21 jl SHORT $LN2@glfwPollMo
; 226 : continue;
; 227 :
; 228 : monitor = createMonitor(&adapter, NULL);
002ad 33 d2 xor edx, edx
002af 48 8d 4c 24 20 lea rcx, QWORD PTR adapter$[rsp]
002b4 e8 00 00 00 00 call createMonitor
; 229 : if (!monitor)
002b9 48 85 c0 test rax, rax
002bc 74 70 je SHORT $LN15@glfwPollMo
; 230 : {
; 231 : _glfw_free(disconnected);
; 232 : return;
; 233 : }
; 234 :
; 235 : _glfwInputMonitor(monitor, GLFW_CONNECTED, type);
002be 45 8b c7 mov r8d, r15d
002c1 ba 01 00 04 00 mov edx, 262145 ; 00040001H
002c6 48 8b c8 mov rcx, rax
002c9 e8 00 00 00 00 call _glfwInputMonitor
$LN2@glfwPollMo:
; 151 : _glfw.monitors,
; 152 : _glfw.monitorCount * sizeof(_GLFWmonitor*));
; 153 : }
; 154 :
; 155 : for (adapterIndex = 0; ; adapterIndex++)
; 156 : {
; 157 : int type = _GLFW_INSERT_LAST;
; 158 :
; 159 : ZeroMemory(&adapter, sizeof(adapter));
002ce 33 d2 xor edx, edx
002d0 48 8d 4c 24 24 lea rcx, QWORD PTR adapter$[rsp+4]
002d5 41 b8 44 03 00
00 mov r8d, 836 ; 00000344H
002db 41 ff c5 inc r13d
002de e8 00 00 00 00 call memset
; 160 : adapter.cb = sizeof(adapter);
; 161 :
; 162 : if (!EnumDisplayDevicesW(NULL, adapterIndex, &adapter, 0))
002e3 45 33 c9 xor r9d, r9d
002e6 c7 44 24 20 48
03 00 00 mov DWORD PTR adapter$[rsp], 840 ; 00000348H
002ee 4c 8d 44 24 20 lea r8, QWORD PTR adapter$[rsp]
002f3 41 8b d5 mov edx, r13d
002f6 33 c9 xor ecx, ecx
002f8 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayDevicesW
002fe 85 c0 test eax, eax
00300 0f 85 ea fd ff
ff jne $LL4@glfwPollMo
$LN59@glfwPollMo:
; 236 : }
; 237 : }
; 238 :
; 239 : for (i = 0; i < disconnectedCount; i++)
00306 45 85 e4 test r12d, r12d
00309 7e 23 jle SHORT $LN15@glfwPollMo
0030b 0f 1f 44 00 00 npad 5
$LL16@glfwPollMo:
; 240 : {
; 241 : if (disconnected[i])
00310 49 8b 0c f6 mov rcx, QWORD PTR [r14+rsi*8]
00314 48 85 c9 test rcx, rcx
00317 74 0d je SHORT $LN14@glfwPollMo
; 242 : _glfwInputMonitor(disconnected[i], GLFW_DISCONNECTED, 0);
00319 45 33 c0 xor r8d, r8d
0031c ba 02 00 04 00 mov edx, 262146 ; 00040002H
00321 e8 00 00 00 00 call _glfwInputMonitor
$LN14@glfwPollMo:
; 236 : }
; 237 : }
; 238 :
; 239 : for (i = 0; i < disconnectedCount; i++)
00326 48 ff c6 inc rsi
00329 49 3b f4 cmp rsi, r12
0032c 7c e2 jl SHORT $LL16@glfwPollMo
$LN15@glfwPollMo:
; 243 : }
; 244 :
; 245 : _glfw_free(disconnected);
; 246 : }
0032e 4d 85 f6 test r14, r14
00331 74 10 je SHORT $LN40@glfwPollMo
00333 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
0033a 49 8b ce mov rcx, r14
0033d ff 15 18 00 00
00 call QWORD PTR _glfw+24
$LN40@glfwPollMo:
00343 4c 8b bc 24 08
07 00 00 mov r15, QWORD PTR [rsp+1800]
0034b 48 8b ac 24 00
07 00 00 mov rbp, QWORD PTR [rsp+1792]
00353 48 8b 8c 24 c0
06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
0035b 48 33 cc xor rcx, rsp
0035e e8 00 00 00 00 call __security_check_cookie
00363 48 8b 9c 24 10
07 00 00 mov rbx, QWORD PTR [rsp+1808]
0036b 48 81 c4 d0 06
00 00 add rsp, 1744 ; 000006d0H
00372 41 5e pop r14
00374 41 5d pop r13
00376 41 5c pop r12
00378 5f pop rdi
00379 5e pop rsi
0037a c3 ret 0
_glfwPollMonitorsWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwSetGammaRampWin32
_TEXT SEGMENT
values$ = 32
__$ArrayPad$ = 1568
monitor$ = 1600
ramp$ = 1608
_glfwSetGammaRampWin32 PROC ; COMDAT
; 511 : {
$LN12:
00000 48 81 ec 38 06
00 00 sub rsp, 1592 ; 00000638H
00007 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0000e 48 33 c4 xor rax, rsp
00011 48 89 84 24 20
06 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
; 512 : HDC dc;
; 513 : WORD values[3][256];
; 514 :
; 515 : if (ramp->size != 256)
00019 81 7a 18 00 01
00 00 cmp DWORD PTR [rdx+24], 256 ; 00000100H
00020 4c 8b c2 mov r8, rdx
00023 4c 8b d1 mov r10, rcx
00026 74 29 je SHORT $LN2@glfwSetGam
; 516 : {
; 517 : _glfwInputError(GLFW_PLATFORM_ERROR,
00028 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CD@EGEEPFHF@Win32?3?5Gamma?5ramp?5size?5must?5be?5@
0002f b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00034 e8 00 00 00 00 call _glfwInputError
; 529 : }
00039 48 8b 8c 24 20
06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
00041 48 33 cc xor rcx, rsp
00044 e8 00 00 00 00 call __security_check_cookie
00049 48 81 c4 38 06
00 00 add rsp, 1592 ; 00000638H
00050 c3 ret 0
$LN2@glfwSetGam:
; 518 : "Win32: Gamma ramp size must be 256");
; 519 : return;
; 520 : }
; 521 :
; 522 : memcpy(values[0], ramp->red, sizeof(values[0]));
00051 48 8b 02 mov rax, QWORD PTR [rdx]
00054 48 8d 4c 24 20 lea rcx, QWORD PTR values$[rsp]
00059 ba 04 00 00 00 mov edx, 4
0005e 48 89 9c 24 30
06 00 00 mov QWORD PTR [rsp+1584], rbx
00066 44 8b ca mov r9d, edx
00069 0f 1f 80 00 00
00 00 npad 7
$LL6@glfwSetGam:
00070 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
00077 0f 10 00 movups xmm0, XMMWORD PTR [rax]
0007a 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
00081 0f 11 41 80 movups XMMWORD PTR [rcx-128], xmm0
00085 0f 10 48 90 movups xmm1, XMMWORD PTR [rax-112]
00089 0f 11 49 90 movups XMMWORD PTR [rcx-112], xmm1
0008d 0f 10 40 a0 movups xmm0, XMMWORD PTR [rax-96]
00091 0f 11 41 a0 movups XMMWORD PTR [rcx-96], xmm0
00095 0f 10 48 b0 movups xmm1, XMMWORD PTR [rax-80]
00099 0f 11 49 b0 movups XMMWORD PTR [rcx-80], xmm1
0009d 0f 10 40 c0 movups xmm0, XMMWORD PTR [rax-64]
000a1 0f 11 41 c0 movups XMMWORD PTR [rcx-64], xmm0
000a5 0f 10 48 d0 movups xmm1, XMMWORD PTR [rax-48]
000a9 0f 11 49 d0 movups XMMWORD PTR [rcx-48], xmm1
000ad 0f 10 40 e0 movups xmm0, XMMWORD PTR [rax-32]
000b1 0f 11 41 e0 movups XMMWORD PTR [rcx-32], xmm0
000b5 0f 10 48 f0 movups xmm1, XMMWORD PTR [rax-16]
000b9 0f 11 49 f0 movups XMMWORD PTR [rcx-16], xmm1
000bd 49 83 e9 01 sub r9, 1
000c1 75 ad jne SHORT $LL6@glfwSetGam
; 523 : memcpy(values[1], ramp->green, sizeof(values[1]));
000c3 49 8b 40 08 mov rax, QWORD PTR [r8+8]
000c7 48 8d 8c 24 20
02 00 00 lea rcx, QWORD PTR values$[rsp+512]
000cf 4c 8b ca mov r9, rdx
$LL5@glfwSetGam:
000d2 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
000d9 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000dc 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
000e3 0f 11 41 80 movups XMMWORD PTR [rcx-128], xmm0
000e7 0f 10 48 90 movups xmm1, XMMWORD PTR [rax-112]
000eb 0f 11 49 90 movups XMMWORD PTR [rcx-112], xmm1
000ef 0f 10 40 a0 movups xmm0, XMMWORD PTR [rax-96]
000f3 0f 11 41 a0 movups XMMWORD PTR [rcx-96], xmm0
000f7 0f 10 48 b0 movups xmm1, XMMWORD PTR [rax-80]
000fb 0f 11 49 b0 movups XMMWORD PTR [rcx-80], xmm1
000ff 0f 10 40 c0 movups xmm0, XMMWORD PTR [rax-64]
00103 0f 11 41 c0 movups XMMWORD PTR [rcx-64], xmm0
00107 0f 10 48 d0 movups xmm1, XMMWORD PTR [rax-48]
0010b 0f 11 49 d0 movups XMMWORD PTR [rcx-48], xmm1
0010f 0f 10 40 e0 movups xmm0, XMMWORD PTR [rax-32]
00113 0f 11 41 e0 movups XMMWORD PTR [rcx-32], xmm0
00117 0f 10 48 f0 movups xmm1, XMMWORD PTR [rax-16]
0011b 0f 11 49 f0 movups XMMWORD PTR [rcx-16], xmm1
0011f 49 83 e9 01 sub r9, 1
00123 75 ad jne SHORT $LL5@glfwSetGam
; 524 : memcpy(values[2], ramp->blue, sizeof(values[2]));
00125 49 8b 48 10 mov rcx, QWORD PTR [r8+16]
00129 48 8d 84 24 20
04 00 00 lea rax, QWORD PTR values$[rsp+1024]
$LL4@glfwSetGam:
00131 48 8d 80 80 00
00 00 lea rax, QWORD PTR [rax+128]
00138 0f 10 01 movups xmm0, XMMWORD PTR [rcx]
0013b 48 8d 89 80 00
00 00 lea rcx, QWORD PTR [rcx+128]
00142 0f 11 40 80 movups XMMWORD PTR [rax-128], xmm0
00146 0f 10 49 90 movups xmm1, XMMWORD PTR [rcx-112]
0014a 0f 11 48 90 movups XMMWORD PTR [rax-112], xmm1
0014e 0f 10 41 a0 movups xmm0, XMMWORD PTR [rcx-96]
00152 0f 11 40 a0 movups XMMWORD PTR [rax-96], xmm0
00156 0f 10 49 b0 movups xmm1, XMMWORD PTR [rcx-80]
0015a 0f 11 48 b0 movups XMMWORD PTR [rax-80], xmm1
0015e 0f 10 41 c0 movups xmm0, XMMWORD PTR [rcx-64]
00162 0f 11 40 c0 movups XMMWORD PTR [rax-64], xmm0
00166 0f 10 49 d0 movups xmm1, XMMWORD PTR [rcx-48]
0016a 0f 11 48 d0 movups XMMWORD PTR [rax-48], xmm1
0016e 0f 10 41 e0 movups xmm0, XMMWORD PTR [rcx-32]
00172 0f 11 40 e0 movups XMMWORD PTR [rax-32], xmm0
00176 0f 10 49 f0 movups xmm1, XMMWORD PTR [rcx-16]
0017a 0f 11 48 f0 movups XMMWORD PTR [rax-16], xmm1
0017e 48 83 ea 01 sub rdx, 1
00182 75 ad jne SHORT $LL4@glfwSetGam
; 525 :
; 526 : dc = CreateDCW(L"DISPLAY", monitor->win32.adapterName, NULL, NULL);
00184 49 8d 92 08 01
00 00 lea rdx, QWORD PTR [r10+264]
0018b 45 33 c9 xor r9d, r9d
0018e 45 33 c0 xor r8d, r8d
00191 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@
00198 ff 15 00 00 00
00 call QWORD PTR __imp_CreateDCW
; 527 : SetDeviceGammaRamp(dc, values);
0019e 48 8b c8 mov rcx, rax
001a1 48 8d 54 24 20 lea rdx, QWORD PTR values$[rsp]
001a6 48 8b d8 mov rbx, rax
001a9 ff 15 00 00 00
00 call QWORD PTR __imp_SetDeviceGammaRamp
; 528 : DeleteDC(dc);
001af 48 8b cb mov rcx, rbx
001b2 ff 15 00 00 00
00 call QWORD PTR __imp_DeleteDC
001b8 48 8b 9c 24 30
06 00 00 mov rbx, QWORD PTR [rsp+1584]
; 529 : }
001c0 48 8b 8c 24 20
06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
001c8 48 33 cc xor rcx, rsp
001cb e8 00 00 00 00 call __security_check_cookie
001d0 48 81 c4 38 06
00 00 add rsp, 1592 ; 00000638H
001d7 c3 ret 0
_glfwSetGammaRampWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetMonitorContentScaleWin32
_TEXT SEGMENT
monitor$ = 8
xscale$ = 16
yscale$ = 24
_glfwGetMonitorContentScaleWin32 PROC ; COMDAT
; 378 : _glfwGetHMONITORContentScaleWin32(monitor->win32.handle, xscale, yscale);
00000 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
00007 e9 00 00 00 00 jmp _glfwGetHMONITORContentScaleWin32
_glfwGetMonitorContentScaleWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwFreeMonitorWin32
_TEXT SEGMENT
monitor$ = 8
_glfwFreeMonitorWin32 PROC ; COMDAT
; 356 : }
00000 c2 00 00 ret 0
_glfwFreeMonitorWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT monitorCallback
_TEXT SEGMENT
mi$ = 32
__$ArrayPad$ = 144
handle$ = 176
dc$ = 184
rect$ = 192
data$ = 200
monitorCallback PROC ; COMDAT
; 46 : {
00000 48 89 5c 24 10 mov QWORD PTR [rsp+16], rbx
00005 57 push rdi
00006 48 81 ec a0 00
00 00 sub rsp, 160 ; 000000a0H
0000d 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00014 48 33 c4 xor rax, rsp
00017 48 89 84 24 90
00 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
0001f 0f 57 c0 xorps xmm0, xmm0
; 47 : MONITORINFOEXW mi;
; 48 : ZeroMemory(&mi, sizeof(mi));
; 49 : mi.cbSize = sizeof(mi);
00022 c7 44 24 20 68
00 00 00 mov DWORD PTR mi$[rsp], 104 ; 00000068H
0002a 33 c0 xor eax, eax
; 50 :
; 51 : if (GetMonitorInfoW(handle, (MONITORINFO*) &mi))
0002c 48 8d 54 24 20 lea rdx, QWORD PTR mi$[rsp]
00031 0f 11 44 24 24 movups XMMWORD PTR mi$[rsp+4], xmm0
00036 89 84 24 84 00
00 00 mov DWORD PTR mi$[rsp+100], eax
0003d 49 8b d9 mov rbx, r9
00040 0f 11 44 24 34 movups XMMWORD PTR mi$[rsp+20], xmm0
00045 48 8b f9 mov rdi, rcx
00048 0f 11 44 24 44 movups XMMWORD PTR mi$[rsp+36], xmm0
0004d 0f 11 44 24 54 movups XMMWORD PTR mi$[rsp+52], xmm0
00052 0f 11 44 24 64 movups XMMWORD PTR mi$[rsp+68], xmm0
00057 0f 11 44 24 74 movups XMMWORD PTR mi$[rsp+84], xmm0
0005c ff 15 00 00 00
00 call QWORD PTR __imp_GetMonitorInfoW
00062 85 c0 test eax, eax
00064 74 40 je SHORT $LN8@monitorCal
; 52 : {
; 53 : _GLFWmonitor* monitor = (_GLFWmonitor*) data;
; 54 : if (wcscmp(mi.szDevice, monitor->win32.adapterName) == 0)
00066 4c 8d 83 08 01
00 00 lea r8, QWORD PTR [rbx+264]
0006d 48 8d 44 24 48 lea rax, QWORD PTR mi$[rsp+40]
00072 4c 2b c0 sub r8, rax
00075 66 66 66 0f 1f
84 00 00 00 00
00 npad 11
$LL5@monitorCal:
00080 0f b7 10 movzx edx, WORD PTR [rax]
00083 42 0f b7 0c 00 movzx ecx, WORD PTR [rax+r8]
00088 2b d1 sub edx, ecx
0008a 75 08 jne SHORT $LN6@monitorCal
0008c 48 83 c0 02 add rax, 2
00090 85 c9 test ecx, ecx
00092 75 ec jne SHORT $LL5@monitorCal
$LN6@monitorCal:
00094 b8 01 00 00 00 mov eax, 1
00099 85 d2 test edx, edx
0009b 75 0e jne SHORT $LN3@monitorCal
; 55 : monitor->win32.handle = handle;
0009d 48 89 bb 00 01
00 00 mov QWORD PTR [rbx+256], rdi
000a4 eb 05 jmp SHORT $LN3@monitorCal
$LN8@monitorCal:
; 56 : }
; 57 :
; 58 : return TRUE;
000a6 b8 01 00 00 00 mov eax, 1
$LN3@monitorCal:
; 59 : }
000ab 48 8b 8c 24 90
00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
000b3 48 33 cc xor rcx, rsp
000b6 e8 00 00 00 00 call __security_check_cookie
000bb 48 8b 9c 24 b8
00 00 00 mov rbx, QWORD PTR [rsp+184]
000c3 48 81 c4 a0 00
00 00 add rsp, 160 ; 000000a0H
000ca 5f pop rdi
000cb c3 ret 0
monitorCallback ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT createMonitor
_TEXT SEGMENT
rect$ = 64
dm$ = 80
__$ArrayPad$ = 304
adapter$ = 384
display$ = 392
createMonitor PROC ; COMDAT
; 65 : {
00000 40 55 push rbp
00002 56 push rsi
00003 41 56 push r14
00005 48 81 ec 60 01
00 00 sub rsp, 352 ; 00000160H
0000c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00013 48 33 c4 xor rax, rsp
00016 48 89 84 24 30
01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
0001e 4c 8b f1 mov r14, rcx
; 66 : _GLFWmonitor* monitor;
; 67 : int widthMM, heightMM;
; 68 : char* name;
; 69 : HDC dc;
; 70 : DEVMODEW dm;
; 71 : RECT rect;
; 72 :
; 73 : if (display)
; 74 : name = _glfwCreateUTF8FromWideStringWin32(display->DeviceString);
; 75 : else
; 76 : name = _glfwCreateUTF8FromWideStringWin32(adapter->DeviceString);
; 77 : if (!name)
00021 48 85 d2 test rdx, rdx
00024 48 8b ca mov rcx, rdx
00027 48 8b f2 mov rsi, rdx
0002a 49 0f 44 ce cmove rcx, r14
0002e 48 83 c1 44 add rcx, 68 ; 00000044H
00032 e8 00 00 00 00 call _glfwCreateUTF8FromWideStringWin32
00037 48 8b e8 mov rbp, rax
0003a 48 85 c0 test rax, rax
0003d 0f 84 81 02 00
00 je $LN1@createMoni
$LN4@createMoni:
00043 48 89 9c 24 90
01 00 00 mov QWORD PTR [rsp+400], rbx
; 78 : return NULL;
; 79 :
; 80 : ZeroMemory(&dm, sizeof(dm));
0004b 48 8d 4c 24 50 lea rcx, QWORD PTR dm$[rsp]
00050 48 89 bc 24 98
01 00 00 mov QWORD PTR [rsp+408], rdi
00058 bb dc 00 00 00 mov ebx, 220 ; 000000dcH
0005d 44 8b c3 mov r8d, ebx
00060 4c 89 a4 24 58
01 00 00 mov QWORD PTR [rsp+344], r12
00068 33 d2 xor edx, edx
0006a 4c 89 bc 24 50
01 00 00 mov QWORD PTR [rsp+336], r15
00072 e8 00 00 00 00 call memset
; 81 : dm.dmSize = sizeof(dm);
; 82 : EnumDisplaySettingsW(adapter->DeviceName, ENUM_CURRENT_SETTINGS, &dm);
00077 49 8d 7e 04 lea rdi, QWORD PTR [r14+4]
0007b 66 89 9c 24 94
00 00 00 mov WORD PTR dm$[rsp+68], bx
00083 48 8b cf mov rcx, rdi
00086 4c 8d 44 24 50 lea r8, QWORD PTR dm$[rsp]
0008b ba ff ff ff ff mov edx, -1 ; ffffffffH
00090 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplaySettingsW
; 83 :
; 84 : dc = CreateDCW(L"DISPLAY", adapter->DeviceName, NULL, NULL);
00096 45 33 c9 xor r9d, r9d
00099 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_1BA@PICGEGJB@?$AAD?$AAI?$AAS?$AAP?$AAL?$AAA?$AAY@
000a0 45 33 c0 xor r8d, r8d
000a3 48 8b d7 mov rdx, rdi
000a6 ff 15 00 00 00
00 call QWORD PTR __imp_CreateDCW
; 85 :
; 86 : if (IsWindows8Point1OrGreater())
000ac ba 03 00 00 00 mov edx, 3
000b1 48 8b d8 mov rbx, rax
000b4 e8 00 00 00 00 call _glfwIsWindowsVersionOrGreaterWin32
000b9 48 8b cb mov rcx, rbx
000bc 85 c0 test eax, eax
000be 74 21 je SHORT $LN5@createMoni
; 87 : {
; 88 : widthMM = GetDeviceCaps(dc, HORZSIZE);
000c0 ba 04 00 00 00 mov edx, 4
000c5 ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
; 89 : heightMM = GetDeviceCaps(dc, VERTSIZE);
000cb ba 06 00 00 00 mov edx, 6
000d0 48 8b cb mov rcx, rbx
000d3 44 8b f8 mov r15d, eax
000d6 ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
000dc 44 8b e0 mov r12d, eax
; 90 : }
000df eb 77 jmp SHORT $LN6@createMoni
$LN5@createMoni:
; 91 : else
; 92 : {
; 93 : widthMM = (int) (dm.dmPelsWidth * 25.4f / GetDeviceCaps(dc, LOGPIXELSX));
000e1 8b 84 24 fc 00
00 00 mov eax, DWORD PTR dm$[rsp+172]
000e8 ba 58 00 00 00 mov edx, 88 ; 00000058H
000ed 0f 29 b4 24 40
01 00 00 movaps XMMWORD PTR [rsp+320], xmm6
000f5 0f 57 f6 xorps xmm6, xmm6
000f8 f3 48 0f 2a f0 cvtsi2ss xmm6, rax
000fd f3 0f 59 35 00
00 00 00 mulss xmm6, DWORD PTR __real@41cb3333
00105 ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
; 94 : heightMM = (int) (dm.dmPelsHeight * 25.4f / GetDeviceCaps(dc, LOGPIXELSY));
0010b ba 5a 00 00 00 mov edx, 90 ; 0000005aH
00110 48 8b cb mov rcx, rbx
00113 66 0f 6e c0 movd xmm0, eax
00117 8b 84 24 00 01
00 00 mov eax, DWORD PTR dm$[rsp+176]
0011e 0f 5b c0 cvtdq2ps xmm0, xmm0
00121 f3 0f 5e f0 divss xmm6, xmm0
00125 f3 44 0f 2c fe cvttss2si r15d, xmm6
0012a 0f 57 f6 xorps xmm6, xmm6
0012d f3 48 0f 2a f0 cvtsi2ss xmm6, rax
00132 f3 0f 59 35 00
00 00 00 mulss xmm6, DWORD PTR __real@41cb3333
0013a ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
00140 66 0f 6e c0 movd xmm0, eax
00144 0f 5b c0 cvtdq2ps xmm0, xmm0
00147 f3 0f 5e f0 divss xmm6, xmm0
0014b f3 44 0f 2c e6 cvttss2si r12d, xmm6
00150 0f 28 b4 24 40
01 00 00 movaps xmm6, XMMWORD PTR [rsp+320]
$LN6@createMoni:
; 95 : }
; 96 :
; 97 : DeleteDC(dc);
00158 48 8b cb mov rcx, rbx
0015b ff 15 00 00 00
00 call QWORD PTR __imp_DeleteDC
; 99 : monitor = _glfwAllocMonitor(name, widthMM, heightMM);
00161 45 8b c4 mov r8d, r12d
00164 41 8b d7 mov edx, r15d
00167 48 8b cd mov rcx, rbp
0016a e8 00 00 00 00 call _glfwAllocMonitor
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user);
0016f 48 8b 15 20 00
00 00 mov rdx, QWORD PTR _glfw+32
00176 48 8b cd mov rcx, rbp
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 99 : monitor = _glfwAllocMonitor(name, widthMM, heightMM);
00179 48 8b d8 mov rbx, rax
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user);
0017c ff 15 18 00 00
00 call QWORD PTR _glfw+24
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 102 : if (adapter->StateFlags & DISPLAY_DEVICE_MODESPRUNED)
00182 41 f7 86 44 01
00 00 00 00 00
08 test DWORD PTR [r14+324], 134217728 ; 08000000H
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\init.c
; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user);
0018d 4c 8b bc 24 50
01 00 00 mov r15, QWORD PTR [rsp+336]
00195 4c 8b a4 24 58
01 00 00 mov r12, QWORD PTR [rsp+344]
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 102 : if (adapter->StateFlags & DISPLAY_DEVICE_MODESPRUNED)
0019d 74 0a je SHORT $LN7@createMoni
; 103 : monitor->win32.modesPruned = GLFW_TRUE;
0019f c7 83 c8 01 00
00 01 00 00 00 mov DWORD PTR [rbx+456], 1
$LN7@createMoni:
; 104 :
; 105 : wcscpy(monitor->win32.adapterName, adapter->DeviceName);
001a9 48 8b d3 mov rdx, rbx
001ac 48 8b cf mov rcx, rdi
001af 48 2b d7 sub rdx, rdi
001b2 0f 1f 40 00 66
66 0f 1f 84 00
00 00 00 00 npad 14
$LL10@createMoni:
001c0 0f b7 01 movzx eax, WORD PTR [rcx]
001c3 66 89 84 0a 08
01 00 00 mov WORD PTR [rdx+rcx+264], ax
001cb 48 8d 49 02 lea rcx, QWORD PTR [rcx+2]
001cf 66 85 c0 test ax, ax
001d2 75 ec jne SHORT $LL10@createMoni
; 106 : WideCharToMultiByte(CP_UTF8, 0,
001d4 33 ed xor ebp, ebp
001d6 48 8d 83 88 01
00 00 lea rax, QWORD PTR [rbx+392]
001dd 48 89 6c 24 38 mov QWORD PTR [rsp+56], rbp
001e2 4c 8b c7 mov r8, rdi
001e5 48 89 6c 24 30 mov QWORD PTR [rsp+48], rbp
001ea 33 d2 xor edx, edx
001ec c7 44 24 28 20
00 00 00 mov DWORD PTR [rsp+40], 32 ; 00000020H
001f4 b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H
001f9 44 8d 4d ff lea r9d, QWORD PTR [rbp-1]
001fd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
00202 ff 15 00 00 00
00 call QWORD PTR __imp_WideCharToMultiByte
00208 48 8b bc 24 98
01 00 00 mov rdi, QWORD PTR [rsp+408]
; 107 : adapter->DeviceName, -1,
; 108 : monitor->win32.publicAdapterName,
; 109 : sizeof(monitor->win32.publicAdapterName),
; 110 : NULL, NULL);
; 111 :
; 112 : if (display)
00210 48 85 f6 test rsi, rsi
00213 74 5f je SHORT $LN8@createMoni
; 113 : {
; 114 : wcscpy(monitor->win32.displayName, display->DeviceName);
00215 4c 8d 46 04 lea r8, QWORD PTR [rsi+4]
00219 4c 8b d3 mov r10, rbx
0021c 49 8b d0 mov rdx, r8
0021f 4d 2b d0 sub r10, r8
00222 0f 1f 40 00 66
66 0f 1f 84 00
00 00 00 00 npad 14
$LL11@createMoni:
00230 0f b7 02 movzx eax, WORD PTR [rdx]
00233 66 41 89 84 12
48 01 00 00 mov WORD PTR [r10+rdx+328], ax
0023c 48 8d 52 02 lea rdx, QWORD PTR [rdx+2]
00240 66 85 c0 test ax, ax
00243 75 eb jne SHORT $LL11@createMoni
; 115 : WideCharToMultiByte(CP_UTF8, 0,
00245 48 89 6c 24 38 mov QWORD PTR [rsp+56], rbp
0024a 48 8d 83 a8 01
00 00 lea rax, QWORD PTR [rbx+424]
00251 33 d2 xor edx, edx
00253 48 89 6c 24 30 mov QWORD PTR [rsp+48], rbp
00258 c7 44 24 28 20
00 00 00 mov DWORD PTR [rsp+40], 32 ; 00000020H
00260 b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H
00265 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
0026a 44 8d 4a ff lea r9d, QWORD PTR [rdx-1]
0026e 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;
00274 8b 8c 24 9c 00
00 00 mov ecx, DWORD PTR dm$[rsp+76]
; 123 : rect.top = dm.dmPosition.y;
; 124 : rect.right = dm.dmPosition.x + dm.dmPelsWidth;
; 125 : rect.bottom = dm.dmPosition.y + dm.dmPelsHeight;
; 126 :
; 127 : EnumDisplayMonitors(NULL, &rect, monitorCallback, (LPARAM) monitor);
0027b 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:monitorCallback
00282 8b 94 24 a0 00
00 00 mov edx, DWORD PTR dm$[rsp+80]
00289 4c 8b cb mov r9, rbx
0028c 89 4c 24 40 mov DWORD PTR rect$[rsp], ecx
00290 03 8c 24 fc 00
00 00 add ecx, DWORD PTR dm$[rsp+172]
00297 89 4c 24 48 mov DWORD PTR rect$[rsp+8], ecx
0029b 8b 8c 24 00 01
00 00 mov ecx, DWORD PTR dm$[rsp+176]
002a2 03 ca add ecx, edx
002a4 89 54 24 44 mov DWORD PTR rect$[rsp+4], edx
002a8 89 4c 24 4c mov DWORD PTR rect$[rsp+12], ecx
002ac 48 8d 54 24 40 lea rdx, QWORD PTR rect$[rsp]
002b1 33 c9 xor ecx, ecx
002b3 ff 15 00 00 00
00 call QWORD PTR __imp_EnumDisplayMonitors
; 128 : return monitor;
002b9 48 8b c3 mov rax, rbx
002bc 48 8b 9c 24 90
01 00 00 mov rbx, QWORD PTR [rsp+400]
$LN1@createMoni:
; 129 : }
002c4 48 8b 8c 24 30
01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
002cc 48 33 cc xor rcx, rsp
002cf e8 00 00 00 00 call __security_check_cookie
002d4 48 81 c4 60 01
00 00 add rsp, 352 ; 00000160H
002db 41 5e pop r14
002dd 5e pop rsi
002de 5d pop rbp
002df c3 ret 0
createMonitor ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwSetVideoModeWin32
_TEXT SEGMENT
current$ = 48
dm$ = 80
__$ArrayPad$ = 304
monitor$ = 352
desired$ = 360
_glfwSetVideoModeWin32 PROC ; COMDAT
; 251 : {
$LN42:
00000 40 53 push rbx
00002 56 push rsi
00003 57 push rdi
00004 48 81 ec 40 01
00 00 sub rsp, 320 ; 00000140H
0000b 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00012 48 33 c4 xor rax, rsp
00015 48 89 84 24 30
01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax
0001d 48 8b f9 mov rdi, rcx
; 252 : GLFWvidmode current;
; 253 : const GLFWvidmode* best;
; 254 : DEVMODEW dm;
; 255 : LONG result;
; 256 :
; 257 : best = _glfwChooseVideoMode(monitor, desired);
00020 e8 00 00 00 00 call _glfwChooseVideoMode
; 258 : _glfwGetVideoModeWin32(monitor, &current);
00025 48 8d 54 24 30 lea rdx, QWORD PTR current$[rsp]
0002a 48 8b cf mov rcx, rdi
0002d 48 8b d8 mov rbx, rax
00030 e8 00 00 00 00 call _glfwGetVideoModeWin32
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\monitor.c
; 46 : const int fbpp = fm->redBits + fm->greenBits + fm->blueBits;
00035 44 8b 44 24 38 mov r8d, DWORD PTR current$[rsp+8]
0003a 44 03 44 24 3c add r8d, DWORD PTR current$[rsp+12]
; 47 : const int sbpp = sm->redBits + sm->greenBits + sm->blueBits;
0003f 8b 43 0c mov eax, DWORD PTR [rbx+12]
00042 03 43 10 add eax, DWORD PTR [rbx+16]
; 48 : const int farea = fm->width * fm->height;
00045 44 8b 4c 24 30 mov r9d, DWORD PTR current$[rsp]
0004a 41 8b d1 mov edx, r9d
0004d 44 03 44 24 40 add r8d, DWORD PTR current$[rsp+16]
00052 03 43 08 add eax, DWORD PTR [rbx+8]
00055 0f af 54 24 34 imul edx, DWORD PTR current$[rsp+4]
; 49 : const int sarea = sm->width * sm->height;
0005a 8b 0b mov ecx, DWORD PTR [rbx]
; 50 :
; 51 : // First sort on color bits per pixel
; 52 : if (fbpp != sbpp)
0005c 44 3b c0 cmp r8d, eax
0005f 74 05 je SHORT $LN24@glfwSetVid
; 53 : return fbpp - sbpp;
00061 44 2b c0 sub r8d, eax
00064 eb 28 jmp SHORT $LN40@glfwSetVid
$LN24@glfwSetVid:
; 49 : const int sarea = sm->width * sm->height;
00066 8b c1 mov eax, ecx
00068 0f af 43 04 imul eax, DWORD PTR [rbx+4]
; 54 :
; 55 : // Then sort on screen area
; 56 : if (farea != sarea)
0006c 3b d0 cmp edx, eax
0006e 74 08 je SHORT $LN25@glfwSetVid
; 57 : return farea - sarea;
00070 44 8b c2 mov r8d, edx
00073 44 2b c0 sub r8d, eax
00076 eb 16 jmp SHORT $LN40@glfwSetVid
$LN25@glfwSetVid:
; 58 :
; 59 : // Then sort on width
; 60 : if (fm->width != sm->width)
00078 44 3b c9 cmp r9d, ecx
0007b 74 08 je SHORT $LN26@glfwSetVid
; 61 : return fm->width - sm->width;
0007d 45 8b c1 mov r8d, r9d
00080 44 2b c1 sub r8d, ecx
00083 eb 09 jmp SHORT $LN40@glfwSetVid
$LN26@glfwSetVid:
; 62 :
; 63 : // Lastly sort on refresh rate
; 64 : return fm->refreshRate - sm->refreshRate;
00085 44 8b 44 24 44 mov r8d, DWORD PTR current$[rsp+20]
0008a 44 2b 43 14 sub r8d, DWORD PTR [rbx+20]
$LN40@glfwSetVid:
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; 259 : if (_glfwCompareVideoModes(&current, best) == 0)
0008e b9 04 00 00 00 mov ecx, 4
00093 48 8b c3 mov rax, rbx
00096 48 8d 34 0b lea rsi, QWORD PTR [rbx+rcx]
0009a 45 85 c0 test r8d, r8d
0009d 0f 84 26 01 00
00 je $LN6@glfwSetVid
000a3 48 89 ac 24 70
01 00 00 mov QWORD PTR [rsp+368], rbp
; 260 : return;
; 261 :
; 262 : ZeroMemory(&dm, sizeof(dm));
000ab 48 8d 4c 24 50 lea rcx, QWORD PTR dm$[rsp]
000b0 bd dc 00 00 00 mov ebp, 220 ; 000000dcH
000b5 33 d2 xor edx, edx
000b7 44 8b c5 mov r8d, ebp
000ba e8 00 00 00 00 call memset
; 263 : dm.dmSize = sizeof(dm);
000bf 66 89 ac 24 94
00 00 00 mov WORD PTR dm$[rsp+68], bp
; 264 : dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL |
; 265 : DM_DISPLAYFREQUENCY;
; 266 : dm.dmPelsWidth = best->width;
; 267 : dm.dmPelsHeight = best->height;
; 268 : dm.dmBitsPerPel = best->redBits + best->greenBits + best->blueBits;
; 269 : dm.dmDisplayFrequency = best->refreshRate;
000c7 b9 20 00 00 00 mov ecx, 32 ; 00000020H
000cc c7 84 24 98 00
00 00 00 00 5c
00 mov DWORD PTR dm$[rsp+72], 6029312 ; 005c0000H
; 270 :
; 271 : if (dm.dmBitsPerPel < 15 || dm.dmBitsPerPel >= 24)
; 272 : dm.dmBitsPerPel = 32;
; 273 :
; 274 : result = ChangeDisplaySettingsExW(monitor->win32.adapterName,
000d7 41 b9 04 00 00
00 mov r9d, 4
000dd 8b 03 mov eax, DWORD PTR [rbx]
000df 89 84 24 fc 00
00 00 mov DWORD PTR dm$[rsp+172], eax
000e6 8b 06 mov eax, DWORD PTR [rsi]
000e8 89 84 24 00 01
00 00 mov DWORD PTR dm$[rsp+176], eax
000ef 8b 53 0c mov edx, DWORD PTR [rbx+12]
000f2 03 53 10 add edx, DWORD PTR [rbx+16]
000f5 03 53 08 add edx, DWORD PTR [rbx+8]
000f8 89 94 24 f8 00
00 00 mov DWORD PTR dm$[rsp+168], edx
000ff 8b 43 14 mov eax, DWORD PTR [rbx+20]
00102 89 84 24 08 01
00 00 mov DWORD PTR dm$[rsp+184], eax
00109 8d 42 f1 lea eax, DWORD PTR [rdx-15]
0010c 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
00115 83 f8 08 cmp eax, 8
00118 0f 47 d1 cmova edx, ecx
0011b 48 8d 8f 08 01
00 00 lea rcx, QWORD PTR [rdi+264]
00122 89 94 24 f8 00
00 00 mov DWORD PTR dm$[rsp+168], edx
00129 45 33 c0 xor r8d, r8d
0012c 48 8d 54 24 50 lea rdx, QWORD PTR dm$[rsp]
00131 ff 15 00 00 00
00 call QWORD PTR __imp_ChangeDisplaySettingsExW
00137 48 8b ac 24 70
01 00 00 mov rbp, QWORD PTR [rsp+368]
; 275 : &dm,
; 276 : NULL,
; 277 : CDS_FULLSCREEN,
; 278 : NULL);
; 279 : if (result == DISP_CHANGE_SUCCESSFUL)
0013f 85 c0 test eax, eax
00141 75 0c jne SHORT $LN5@glfwSetVid
; 280 : monitor->win32.modeChanged = GLFW_TRUE;
00143 c7 87 cc 01 00
00 01 00 00 00 mov DWORD PTR [rdi+460], 1
0014d eb 7a jmp SHORT $LN6@glfwSetVid
$LN5@glfwSetVid:
; 281 : else
; 282 : {
; 283 : const char* description = "Unknown error";
0014f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:??_C@_0O@NIPGCINC@Unknown?5error@
; 284 :
; 285 : if (result == DISP_CHANGE_BADDUALVIEW)
00156 83 f8 fa cmp eax, -6
00159 75 09 jne SHORT $LN7@glfwSetVid
; 286 : description = "The system uses DualView";
0015b 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BJ@EJOHFDHH@The?5system?5uses?5DualView@
00162 eb 54 jmp SHORT $LN19@glfwSetVid
$LN7@glfwSetVid:
; 287 : else if (result == DISP_CHANGE_BADFLAGS)
00164 83 f8 fc cmp eax, -4
00167 75 09 jne SHORT $LN9@glfwSetVid
; 288 : description = "Invalid flags";
00169 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0O@IHOLGAKK@Invalid?5flags@
00170 eb 46 jmp SHORT $LN19@glfwSetVid
$LN9@glfwSetVid:
; 289 : else if (result == DISP_CHANGE_BADMODE)
00172 83 f8 fe cmp eax, -2
00175 75 09 jne SHORT $LN11@glfwSetVid
; 290 : description = "Graphics mode not supported";
00177 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BM@KPJJBADD@Graphics?5mode?5not?5supported@
0017e eb 38 jmp SHORT $LN19@glfwSetVid
$LN11@glfwSetVid:
; 291 : else if (result == DISP_CHANGE_BADPARAM)
00180 83 f8 fb cmp eax, -5
00183 75 09 jne SHORT $LN13@glfwSetVid
; 292 : description = "Invalid parameter";
00185 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BC@DBAKKFEN@Invalid?5parameter@
0018c eb 2a jmp SHORT $LN19@glfwSetVid
$LN13@glfwSetVid:
; 293 : else if (result == DISP_CHANGE_FAILED)
0018e 83 f8 ff cmp eax, -1
00191 75 09 jne SHORT $LN15@glfwSetVid
; 294 : description = "Graphics mode failed";
00193 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BF@JHMFGJBN@Graphics?5mode?5failed@
0019a eb 1c jmp SHORT $LN19@glfwSetVid
$LN15@glfwSetVid:
; 295 : else if (result == DISP_CHANGE_NOTUPDATED)
0019c 83 f8 fd cmp eax, -3
0019f 75 09 jne SHORT $LN17@glfwSetVid
; 296 : description = "Failed to write to registry";
001a1 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BM@IGBABBBF@Failed?5to?5write?5to?5registry@
001a8 eb 0e jmp SHORT $LN19@glfwSetVid
$LN17@glfwSetVid:
; 297 : else if (result == DISP_CHANGE_RESTART)
001aa 83 f8 01 cmp eax, 1
001ad 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_0BK@OEGBAIFC@Computer?5restart?5required@
001b4 4c 0f 45 c1 cmovne r8, rcx
$LN19@glfwSetVid:
; 298 : description = "Computer restart required";
; 299 :
; 300 : _glfwInputError(GLFW_PLATFORM_ERROR,
001b8 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CE@IKOICJPN@Win32?3?5Failed?5to?5set?5video?5mode@
001bf b9 08 00 01 00 mov ecx, 65544 ; 00010008H
001c4 e8 00 00 00 00 call _glfwInputError
$LN6@glfwSetVid:
; 301 : "Win32: Failed to set video mode: %s",
; 302 : description);
; 303 : }
; 304 : }
001c9 48 8b 8c 24 30
01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
001d1 48 33 cc xor rcx, rsp
001d4 e8 00 00 00 00 call __security_check_cookie
001d9 48 81 c4 40 01
00 00 add rsp, 320 ; 00000140H
001e0 5f pop rdi
001e1 5e pop rsi
001e2 5b pop rbx
001e3 c3 ret 0
_glfwSetVideoModeWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwRestoreVideoModeWin32
_TEXT SEGMENT
monitor$ = 64
_glfwRestoreVideoModeWin32 PROC ; COMDAT
; 309 : {
$LN6:
00000 40 53 push rbx
00002 48 83 ec 30 sub rsp, 48 ; 00000030H
; 310 : if (monitor->win32.modeChanged)
00006 83 b9 cc 01 00
00 00 cmp DWORD PTR [rcx+460], 0
0000d 48 8b d9 mov rbx, rcx
00010 74 2b je SHORT $LN2@glfwRestor
; 311 : {
; 312 : ChangeDisplaySettingsExW(monitor->win32.adapterName,
00012 48 81 c1 08 01
00 00 add rcx, 264 ; 00000108H
00019 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
00022 41 b9 04 00 00
00 mov r9d, 4
00028 45 33 c0 xor r8d, r8d
0002b 33 d2 xor edx, edx
0002d ff 15 00 00 00
00 call QWORD PTR __imp_ChangeDisplaySettingsExW
; 313 : NULL, NULL, CDS_FULLSCREEN, NULL);
; 314 : monitor->win32.modeChanged = GLFW_FALSE;
00033 c7 83 cc 01 00
00 00 00 00 00 mov DWORD PTR [rbx+460], 0
$LN2@glfwRestor:
; 315 : }
; 316 : }
0003d 48 83 c4 30 add rsp, 48 ; 00000030H
00041 5b pop rbx
00042 c3 ret 0
_glfwRestoreVideoModeWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT _glfwGetHMONITORContentScaleWin32
_TEXT SEGMENT
xdpi$ = 32
ydpi$ = 36
__$ArrayPad$ = 40
handle$ = 80
xscale$ = 88
yscale$ = 96
_glfwGetHMONITORContentScaleWin32 PROC ; COMDAT
; 319 : {
$LN17:
00000 40 53 push rbx
00002 56 push rsi
00003 57 push rdi
00004 48 83 ec 30 sub rsp, 48 ; 00000030H
00008 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0000f 48 33 c4 xor rax, rsp
00012 48 89 44 24 28 mov QWORD PTR __$ArrayPad$[rsp], rax
; 320 : UINT xdpi, ydpi;
; 321 :
; 322 : if (xscale)
00017 33 c0 xor eax, eax
00019 49 8b f8 mov rdi, r8
0001c 48 8b f2 mov rsi, rdx
0001f 48 8b d9 mov rbx, rcx
00022 48 85 d2 test rdx, rdx
00025 74 02 je SHORT $LN2@glfwGetHMO
; 323 : *xscale = 0.f;
00027 89 02 mov DWORD PTR [rdx], eax
$LN2@glfwGetHMO:
; 324 : if (yscale)
00029 48 85 ff test rdi, rdi
0002c 74 03 je SHORT $LN3@glfwGetHMO
; 325 : *yscale = 0.f;
0002e 41 89 00 mov DWORD PTR [r8], eax
$LN3@glfwGetHMO:
; 326 :
; 327 : if (IsWindows8Point1OrGreater())
00031 ba 03 00 00 00 mov edx, 3
00036 e8 00 00 00 00 call _glfwIsWindowsVersionOrGreaterWin32
0003b 85 c0 test eax, eax
0003d 74 2c je SHORT $LN4@glfwGetHMO
; 328 : {
; 329 : if (GetDpiForMonitor(handle, MDT_EFFECTIVE_DPI, &xdpi, &ydpi) != S_OK)
0003f 4c 8d 4c 24 24 lea r9, QWORD PTR ydpi$[rsp]
00044 33 d2 xor edx, edx
00046 4c 8d 44 24 20 lea r8, QWORD PTR xdpi$[rsp]
0004b 48 8b cb mov rcx, rbx
0004e ff 15 10 2a 00
00 call QWORD PTR _glfw+10768
00054 85 c0 test eax, eax
00056 74 4d je SHORT $LN5@glfwGetHMO
; 330 : {
; 331 : _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to query monitor DPI");
00058 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CD@IGHBCNOG@Win32?3?5Failed?5to?5query?5monitor?5@
0005f b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00064 e8 00 00 00 00 call _glfwInputError
; 332 : return;
00069 eb 74 jmp SHORT $LN8@glfwGetHMO
$LN4@glfwGetHMO:
; 333 : }
; 334 : }
; 335 : else
; 336 : {
; 337 : const HDC dc = GetDC(NULL);
0006b 33 c9 xor ecx, ecx
0006d ff 15 00 00 00
00 call QWORD PTR __imp_GetDC
; 338 : xdpi = GetDeviceCaps(dc, LOGPIXELSX);
00073 48 8b c8 mov rcx, rax
00076 ba 58 00 00 00 mov edx, 88 ; 00000058H
0007b 48 8b d8 mov rbx, rax
0007e ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
; 339 : ydpi = GetDeviceCaps(dc, LOGPIXELSY);
00084 ba 5a 00 00 00 mov edx, 90 ; 0000005aH
00089 48 8b cb mov rcx, rbx
0008c 89 44 24 20 mov DWORD PTR xdpi$[rsp], eax
00090 ff 15 00 00 00
00 call QWORD PTR __imp_GetDeviceCaps
; 340 : ReleaseDC(NULL, dc);
00096 48 8b d3 mov rdx, rbx
00099 33 c9 xor ecx, ecx
0009b 89 44 24 24 mov DWORD PTR ydpi$[rsp], eax
0009f ff 15 00 00 00
00 call QWORD PTR __imp_ReleaseDC
$LN5@glfwGetHMO:
; 341 : }
; 342 :
; 343 : if (xscale)
000a5 f3 0f 10 0d 00
00 00 00 movss xmm1, DWORD PTR __real@42c00000
000ad 48 85 f6 test rsi, rsi
000b0 74 14 je SHORT $LN7@glfwGetHMO
; 344 : *xscale = xdpi / (float) USER_DEFAULT_SCREEN_DPI;
000b2 8b 44 24 20 mov eax, DWORD PTR xdpi$[rsp]
000b6 0f 57 c0 xorps xmm0, xmm0
000b9 f3 48 0f 2a c0 cvtsi2ss xmm0, rax
000be f3 0f 5e c1 divss xmm0, xmm1
000c2 f3 0f 11 06 movss DWORD PTR [rsi], xmm0
$LN7@glfwGetHMO:
; 345 : if (yscale)
000c6 48 85 ff test rdi, rdi
000c9 74 14 je SHORT $LN8@glfwGetHMO
; 346 : *yscale = ydpi / (float) USER_DEFAULT_SCREEN_DPI;
000cb 8b 44 24 24 mov eax, DWORD PTR ydpi$[rsp]
000cf 0f 57 c0 xorps xmm0, xmm0
000d2 f3 48 0f 2a c0 cvtsi2ss xmm0, rax
000d7 f3 0f 5e c1 divss xmm0, xmm1
000db f3 0f 11 07 movss DWORD PTR [rdi], xmm0
$LN8@glfwGetHMO:
; 347 : }
000df 48 8b 4c 24 28 mov rcx, QWORD PTR __$ArrayPad$[rsp]
000e4 48 33 cc xor rcx, rsp
000e7 e8 00 00 00 00 call __security_check_cookie
000ec 48 83 c4 30 add rsp, 48 ; 00000030H
000f0 5f pop rdi
000f1 5e pop rsi
000f2 5b pop rbx
000f3 c3 ret 0
_glfwGetHMONITORContentScaleWin32 ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT glfwGetWin32Adapter
_TEXT SEGMENT
handle$ = 48
glfwGetWin32Adapter PROC ; COMDAT
; 537 : {
$LN5:
00000 48 83 ec 28 sub rsp, 40 ; 00000028H
; 538 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle;
; 539 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL);
00004 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000b 75 13 jne SHORT $LN2@glfwGetWin
0000d 33 d2 xor edx, edx
0000f b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00014 e8 00 00 00 00 call _glfwInputError
00019 33 c0 xor eax, eax
; 541 : }
0001b 48 83 c4 28 add rsp, 40 ; 00000028H
0001f c3 ret 0
$LN2@glfwGetWin:
; 540 : return monitor->win32.publicAdapterName;
00020 48 8d 81 88 01
00 00 lea rax, QWORD PTR [rcx+392]
; 541 : }
00027 48 83 c4 28 add rsp, 40 ; 00000028H
0002b c3 ret 0
glfwGetWin32Adapter ENDP
_TEXT ENDS
; Function compile flags: /Ogtpy
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpGraphic\code\glfw\win32_monitor.c
; COMDAT glfwGetWin32Monitor
_TEXT SEGMENT
handle$ = 48
glfwGetWin32Monitor PROC ; COMDAT
; 544 : {
$LN5:
00000 48 83 ec 28 sub rsp, 40 ; 00000028H
; 545 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle;
; 546 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL);
00004 83 3d 00 00 00
00 00 cmp DWORD PTR _glfw, 0
0000b 75 13 jne SHORT $LN2@glfwGetWin
0000d 33 d2 xor edx, edx
0000f b9 01 00 01 00 mov ecx, 65537 ; 00010001H
00014 e8 00 00 00 00 call _glfwInputError
00019 33 c0 xor eax, eax
; 548 : }
0001b 48 83 c4 28 add rsp, 40 ; 00000028H
0001f c3 ret 0
$LN2@glfwGetWin:
; 547 : return monitor->win32.publicDisplayName;
00020 48 8d 81 a8 01
00 00 lea rax, QWORD PTR [rcx+424]
; 548 : }
00027 48 83 c4 28 add rsp, 40 ; 00000028H
0002b c3 ret 0
glfwGetWin32Monitor ENDP
_TEXT ENDS
END