; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0 include listing.inc INCLUDELIB OLDNAMES PUBLIC ??_C@_0BH@BAPIEFAH@Invalid?5gamma?5value?5?$CFf@ ; `string' PUBLIC ??_C@_0BL@OAABODH@Invalid?5gamma?5ramp?5size?5?$CFi@ ; `string' EXTRN __imp_qsort:PROC ; COMDAT ??_C@_0BL@OAABODH@Invalid?5gamma?5ramp?5size?5?$CFi@ CONST SEGMENT ??_C@_0BL@OAABODH@Invalid?5gamma?5ramp?5size?5?$CFi@ DB 'Invalid gamma ra' DB 'mp size %i', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BH@BAPIEFAH@Invalid?5gamma?5value?5?$CFf@ CONST SEGMENT ??_C@_0BH@BAPIEFAH@Invalid?5gamma?5value?5?$CFf@ DB 'Invalid gamma value ' DB '%f', 00H ; `string' PUBLIC glfwSetGammaRamp PUBLIC glfwGetGammaRamp PUBLIC glfwSetGamma PUBLIC glfwGetVideoMode PUBLIC glfwGetVideoModes PUBLIC glfwSetMonitorCallback PUBLIC glfwGetMonitorUserPointer PUBLIC glfwSetMonitorUserPointer PUBLIC glfwGetMonitorName PUBLIC glfwGetMonitorContentScale PUBLIC glfwGetMonitorPhysicalSize PUBLIC glfwGetMonitorWorkarea PUBLIC glfwGetMonitorPos PUBLIC glfwGetPrimaryMonitor PUBLIC glfwGetMonitors PUBLIC _glfwSplitBPP PUBLIC _glfwCompareVideoModes PUBLIC _glfwChooseVideoMode PUBLIC _glfwFreeGammaArrays PUBLIC _glfwAllocGammaArrays PUBLIC _glfwAllocMonitor PUBLIC _glfwInputMonitorWindow PUBLIC _glfwInputMonitor PUBLIC _glfwFreeMonitor ; COMDAT pdata pdata SEGMENT $pdata$glfwSetGammaRamp DD imagerel $LN11 DD imagerel $LN11+132 DD imagerel $unwind$glfwSetGammaRamp pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetGammaRamp DD imagerel $LN21 DD imagerel $LN21+159 DD imagerel $unwind$glfwGetGammaRamp pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwSetGamma DD imagerel $LN47 DD imagerel $LN47+95 DD imagerel $unwind$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$0$glfwSetGamma DD imagerel $LN47+95 DD imagerel $LN47+128 DD imagerel $chain$0$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$2$glfwSetGamma DD imagerel $LN47+128 DD imagerel $LN47+165 DD imagerel $chain$2$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$4$glfwSetGamma DD imagerel $LN47+165 DD imagerel $LN47+290 DD imagerel $chain$4$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$5$glfwSetGamma DD imagerel $LN47+290 DD imagerel $LN47+331 DD imagerel $chain$5$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$6$glfwSetGamma DD imagerel $LN47+331 DD imagerel $LN47+441 DD imagerel $chain$6$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$7$glfwSetGamma DD imagerel $LN47+441 DD imagerel $LN47+449 DD imagerel $chain$7$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$8$glfwSetGamma DD imagerel $LN47+449 DD imagerel $LN47+507 DD imagerel $chain$8$glfwSetGamma pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetVideoMode DD imagerel $LN6 DD imagerel $LN6+66 DD imagerel $unwind$glfwGetVideoMode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetVideoModes DD imagerel $LN9 DD imagerel $LN9+91 DD imagerel $unwind$glfwGetVideoModes pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwSetMonitorCallback DD imagerel $LN5 DD imagerel $LN5+51 DD imagerel $unwind$glfwSetMonitorCallback pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetMonitorUserPointer DD imagerel $LN5 DD imagerel $LN5+44 DD imagerel $unwind$glfwGetMonitorUserPointer pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetMonitorName DD imagerel $LN5 DD imagerel $LN5+40 DD imagerel $unwind$glfwGetMonitorName pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetPrimaryMonitor DD imagerel $LN7 DD imagerel $LN7+56 DD imagerel $unwind$glfwGetPrimaryMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$glfwGetMonitors DD imagerel $LN5 DD imagerel $LN5+58 DD imagerel $unwind$glfwGetMonitors pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwChooseVideoMode DD imagerel $LN52 DD imagerel $LN52+106 DD imagerel $unwind$_glfwChooseVideoMode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$0$_glfwChooseVideoMode DD imagerel $LN52+106 DD imagerel $LN52+496 DD imagerel $chain$0$_glfwChooseVideoMode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$1$_glfwChooseVideoMode DD imagerel $LN52+496 DD imagerel $LN52+514 DD imagerel $chain$1$_glfwChooseVideoMode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwFreeGammaArrays DD imagerel $LN16 DD imagerel $LN16+90 DD imagerel $unwind$_glfwFreeGammaArrays pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwAllocGammaArrays DD imagerel $LN32 DD imagerel $LN32+42 DD imagerel $unwind$_glfwAllocGammaArrays pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$0$_glfwAllocGammaArrays DD imagerel $LN32+42 DD imagerel $LN32+196 DD imagerel $chain$0$_glfwAllocGammaArrays pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$1$_glfwAllocGammaArrays DD imagerel $LN32+196 DD imagerel $LN32+276 DD imagerel $chain$1$_glfwAllocGammaArrays pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwAllocMonitor DD imagerel $LN12 DD imagerel $LN12+140 DD imagerel $unwind$_glfwAllocMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwInputMonitor DD imagerel $LN63 DD imagerel $LN63+21 DD imagerel $unwind$_glfwInputMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$2$_glfwInputMonitor DD imagerel $LN63+21 DD imagerel $LN63+547 DD imagerel $chain$2$_glfwInputMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$3$_glfwInputMonitor DD imagerel $LN63+547 DD imagerel $LN63+567 DD imagerel $chain$3$_glfwInputMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$4$_glfwInputMonitor DD imagerel $LN63+567 DD imagerel $LN63+594 DD imagerel $chain$4$_glfwInputMonitor pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$refreshVideoModes DD imagerel refreshVideoModes DD imagerel refreshVideoModes+180 DD imagerel $unwind$refreshVideoModes pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$compareVideoModes DD imagerel compareVideoModes DD imagerel compareVideoModes+113 DD imagerel $unwind$compareVideoModes pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwFreeMonitor DD imagerel $LN42 DD imagerel $LN42+254 DD imagerel $unwind$_glfwFreeMonitor ; COMDAT xdata xdata SEGMENT $unwind$_glfwFreeMonitor DD 020e01H DD 0300a320eH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$compareVideoModes DD 020501H DD 013405H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$refreshVideoModes DD 044419H DD 097444H DD 030025206H DD imagerel __GSHandlerCheck DD 028H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$4$_glfwInputMonitor DD 021H DD imagerel $LN63 DD imagerel $LN63+21 DD imagerel $unwind$_glfwInputMonitor xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$3$_glfwInputMonitor DD 020021H DD 0d5400H DD imagerel $LN63 DD imagerel $LN63+21 DD imagerel $unwind$_glfwInputMonitor xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$2$_glfwInputMonitor DD 061721H DD 0c7417H DD 0d5410H DD 0123408H DD imagerel $LN63 DD imagerel $LN63+21 DD imagerel $unwind$_glfwInputMonitor xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwInputMonitor DD 021519H DD 06002d206H DD imagerel __GSHandlerCheck DD 050H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwAllocMonitor DD 081401H DD 086414H DD 075414H DD 063414H DD 070103214H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$1$_glfwAllocGammaArrays DD 021H DD imagerel $LN32 DD imagerel $LN32+42 DD imagerel $unwind$_glfwAllocGammaArrays xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$0$_glfwAllocGammaArrays DD 020521H DD 06e405H DD imagerel $LN32 DD imagerel $LN32+42 DD imagerel $unwind$_glfwAllocGammaArrays xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwAllocGammaArrays DD 081401H DD 096414H DD 085414H DD 073414H DD 070103214H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwFreeGammaArrays DD 020601H DD 030023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$1$_glfwChooseVideoMode DD 021H DD imagerel $LN52 DD imagerel $LN52+106 DD imagerel $unwind$_glfwChooseVideoMode xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$0$_glfwChooseVideoMode DD 020521H DD 0ec405H DD imagerel $LN52 DD imagerel $LN52+106 DD imagerel $unwind$_glfwChooseVideoMode xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwChooseVideoMode DD 080f01H DD 0f00b520fH DD 0d007e009H DD 060047005H DD 030025003H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetMonitors DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetPrimaryMonitor DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetMonitorName DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetMonitorUserPointer DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwSetMonitorCallback DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetVideoModes DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetVideoMode DD 032501H DD 043425H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$8$glfwSetGamma DD 021H DD imagerel $LN47 DD imagerel $LN47+95 DD imagerel $unwind$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$7$glfwSetGamma DD 021H DD imagerel $LN47+95 DD imagerel $LN47+128 DD imagerel $chain$0$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$6$glfwSetGamma DD 020021H DD 0107400H DD imagerel $LN47+95 DD imagerel $LN47+128 DD imagerel $chain$0$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$5$glfwSetGamma DD 021H DD imagerel $LN47+128 DD imagerel $LN47+165 DD imagerel $chain$2$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$4$glfwSetGamma DD 041f21H DD 05881fH DD 067805H DD imagerel $LN47+128 DD imagerel $LN47+165 DD imagerel $chain$2$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$2$glfwSetGamma DD 041021H DD 0107410H DD 0163408H DD imagerel $LN47+95 DD imagerel $LN47+128 DD imagerel $chain$0$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$0$glfwSetGamma DD 020821H DD 0116408H DD imagerel $LN47 DD imagerel $LN47+95 DD imagerel $unwind$glfwSetGamma xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwSetGamma DD 051d19H DD 07680eH DD 0120109H DD 05002H DD imagerel __GSHandlerCheck DD 040H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwGetGammaRamp DD 042b01H DD 06342bH DD 070023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$glfwSetGammaRamp DD 040a01H DD 06340aH DD 07006320aH ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwFreeMonitor _TEXT SEGMENT monitor$ = 48 _glfwFreeMonitor PROC ; COMDAT ; 187 : { $LN42: ; 188 : if (monitor == NULL) 00000 48 85 c9 test rcx, rcx 00003 0f 84 f4 00 00 00 je $LN40@glfwFreeMo 00009 53 push rbx 0000a 48 83 ec 20 sub rsp, 32 ; 00000020H ; 187 : { 0000e 48 8b d9 mov rbx, rcx ; 189 : return; ; 190 : ; 191 : _glfw.platform.freeMonitor(monitor); 00011 ff 15 d0 00 00 00 call QWORD PTR _glfw+208 ; 214 : _glfw_free(ramp->red); 00017 48 8b 8b c0 00 00 00 mov rcx, QWORD PTR [rbx+192] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0001e 48 85 c9 test rcx, rcx 00021 74 0d je SHORT $LN7@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00023 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0002a ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN7@glfwFreeMo: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 215 : _glfw_free(ramp->green); 00030 48 8b 8b c8 00 00 00 mov rcx, QWORD PTR [rbx+200] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00037 48 85 c9 test rcx, rcx 0003a 74 0d je SHORT $LN10@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0003c 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00043 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN10@glfwFreeMo: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 216 : _glfw_free(ramp->blue); 00049 48 8b 8b d0 00 00 00 mov rcx, QWORD PTR [rbx+208] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00050 48 85 c9 test rcx, rcx 00053 74 0d je SHORT $LN13@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00055 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0005c ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN13@glfwFreeMo: 00062 0f 57 c0 xorps xmm0, xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 218 : memset(ramp, 0, sizeof(GLFWgammaramp)); 00065 0f 11 83 c0 00 00 00 movups XMMWORD PTR [rbx+192], xmm0 0006c 0f 11 83 d0 00 00 00 movups XMMWORD PTR [rbx+208], xmm0 ; 214 : _glfw_free(ramp->red); 00073 48 8b 8b e0 00 00 00 mov rcx, QWORD PTR [rbx+224] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0007a 48 85 c9 test rcx, rcx 0007d 74 0d je SHORT $LN18@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0007f 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00086 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN18@glfwFreeMo: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 215 : _glfw_free(ramp->green); 0008c 48 8b 8b e8 00 00 00 mov rcx, QWORD PTR [rbx+232] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00093 48 85 c9 test rcx, rcx 00096 74 0d je SHORT $LN21@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00098 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0009f ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN21@glfwFreeMo: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 216 : _glfw_free(ramp->blue); 000a5 48 8b 8b f0 00 00 00 mov rcx, QWORD PTR [rbx+240] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000ac 48 85 c9 test rcx, rcx 000af 74 0d je SHORT $LN24@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000b1 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000b8 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN24@glfwFreeMo: 000be 0f 57 c0 xorps xmm0, xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 218 : memset(ramp, 0, sizeof(GLFWgammaramp)); 000c1 0f 11 83 e0 00 00 00 movups XMMWORD PTR [rbx+224], xmm0 000c8 0f 11 83 f0 00 00 00 movups XMMWORD PTR [rbx+240], xmm0 ; 192 : ; 193 : _glfwFreeGammaArrays(&monitor->originalRamp); ; 194 : _glfwFreeGammaArrays(&monitor->currentRamp); ; 195 : ; 196 : _glfw_free(monitor->modes); 000cf 48 8b 8b 98 00 00 00 mov rcx, QWORD PTR [rbx+152] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000d6 48 85 c9 test rcx, rcx 000d9 74 0d je SHORT $LN27@glfwFreeMo ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000db 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000e2 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN27@glfwFreeMo: 000e8 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000ef 48 8b cb mov rcx, rbx 000f2 ff 15 18 00 00 00 call QWORD PTR _glfw+24 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 198 : } 000f8 48 83 c4 20 add rsp, 32 ; 00000020H 000fc 5b pop rbx $LN40@glfwFreeMo: 000fd c3 ret 0 _glfwFreeMonitor ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT compareVideoModes _TEXT SEGMENT fp$ = 8 sp$ = 16 compareVideoModes PROC ; COMDAT ; 43 : { 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx ; 44 : const GLFWvidmode* fm = fp; ; 45 : const GLFWvidmode* sm = sp; ; 46 : const int fbpp = fm->redBits + fm->greenBits + fm->blueBits; 00005 44 8b 41 10 mov r8d, DWORD PTR [rcx+16] 00009 4c 8b da mov r11, rdx 0000c 44 03 41 0c add r8d, DWORD PTR [rcx+12] 00010 48 8b d9 mov rbx, rcx ; 47 : const int sbpp = sm->redBits + sm->greenBits + sm->blueBits; ; 48 : const int farea = fm->width * fm->height; 00013 44 8b 09 mov r9d, DWORD PTR [rcx] 00016 41 8b c1 mov eax, r9d 00019 44 03 41 08 add r8d, DWORD PTR [rcx+8] 0001d 0f af 41 04 imul eax, DWORD PTR [rcx+4] 00021 44 8b 52 10 mov r10d, DWORD PTR [rdx+16] 00025 44 03 52 0c add r10d, DWORD PTR [rdx+12] 00029 44 03 52 08 add r10d, DWORD PTR [rdx+8] ; 49 : const int sarea = sm->width * sm->height; 0002d 8b 12 mov edx, DWORD PTR [rdx] 0002f 8b ca mov ecx, edx 00031 41 0f af 4b 04 imul ecx, DWORD PTR [r11+4] ; 50 : ; 51 : // First sort on color bits per pixel ; 52 : if (fbpp != sbpp) 00036 45 3b c2 cmp r8d, r10d 00039 74 0c je SHORT $LN2@compareVid ; 53 : return fbpp - sbpp; 0003b 45 2b c2 sub r8d, r10d 0003e 41 8b c0 mov eax, r8d ; 65 : } 00041 48 8b 5c 24 08 mov rbx, QWORD PTR [rsp+8] 00046 c3 ret 0 $LN2@compareVid: ; 54 : ; 55 : // Then sort on screen area ; 56 : if (farea != sarea) 00047 3b c1 cmp eax, ecx 00049 74 08 je SHORT $LN3@compareVid ; 57 : return farea - sarea; 0004b 2b c1 sub eax, ecx ; 65 : } 0004d 48 8b 5c 24 08 mov rbx, QWORD PTR [rsp+8] 00052 c3 ret 0 $LN3@compareVid: ; 58 : ; 59 : // Then sort on width ; 60 : if (fm->width != sm->width) 00053 44 3b ca cmp r9d, edx 00056 74 0c je SHORT $LN4@compareVid ; 61 : return fm->width - sm->width; 00058 44 2b ca sub r9d, edx 0005b 41 8b c1 mov eax, r9d ; 65 : } 0005e 48 8b 5c 24 08 mov rbx, QWORD PTR [rsp+8] 00063 c3 ret 0 $LN4@compareVid: ; 62 : ; 63 : // Lastly sort on refresh rate ; 64 : return fm->refreshRate - sm->refreshRate; 00064 8b 43 14 mov eax, DWORD PTR [rbx+20] 00067 41 2b 43 14 sub eax, DWORD PTR [r11+20] ; 65 : } 0006b 48 8b 5c 24 08 mov rbx, QWORD PTR [rsp+8] 00070 c3 ret 0 compareVideoModes ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT refreshVideoModes _TEXT SEGMENT modeCount$ = 32 __$ArrayPad$ = 40 monitor$ = 64 refreshVideoModes PROC ; COMDAT ; 70 : { 00000 40 53 push rbx 00002 48 83 ec 30 sub rsp, 48 ; 00000030H 00006 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0000d 48 33 c4 xor rax, rsp 00010 48 89 44 24 28 mov QWORD PTR __$ArrayPad$[rsp], rax ; 71 : int modeCount; ; 72 : GLFWvidmode* modes; ; 73 : ; 74 : if (monitor->modes) 00015 48 83 b9 98 00 00 00 00 cmp QWORD PTR [rcx+152], 0 0001d 48 8b d9 mov rbx, rcx 00020 74 18 je SHORT $LN2@refreshVid ; 75 : return GLFW_TRUE; 00022 b8 01 00 00 00 mov eax, 1 ; 88 : } 00027 48 8b 4c 24 28 mov rcx, QWORD PTR __$ArrayPad$[rsp] 0002c 48 33 cc xor rcx, rsp 0002f e8 00 00 00 00 call __security_check_cookie 00034 48 83 c4 30 add rsp, 48 ; 00000030H 00038 5b pop rbx 00039 c3 ret 0 $LN2@refreshVid: ; 76 : ; 77 : modes = _glfw.platform.getVideoModes(monitor, &modeCount); 0003a 48 8d 54 24 20 lea rdx, QWORD PTR modeCount$[rsp] 0003f 48 89 7c 24 48 mov QWORD PTR [rsp+72], rdi 00044 ff 15 f0 00 00 00 call QWORD PTR _glfw+240 0004a 48 8b f8 mov rdi, rax ; 78 : if (!modes) 0004d 48 85 c0 test rax, rax 00050 74 4a je SHORT $LN11@refreshVid $LN3@refreshVid: ; 79 : return GLFW_FALSE; ; 80 : ; 81 : qsort(modes, modeCount, sizeof(GLFWvidmode), compareVideoModes); 00052 48 63 54 24 20 movsxd rdx, DWORD PTR modeCount$[rsp] 00057 4c 8d 0d 00 00 00 00 lea r9, OFFSET FLAT:compareVideoModes 0005e 41 b8 18 00 00 00 mov r8d, 24 00064 48 8b cf mov rcx, rdi 00067 ff 15 00 00 00 00 call QWORD PTR __imp_qsort ; 82 : ; 83 : _glfw_free(monitor->modes); 0006d 48 8b 8b 98 00 00 00 mov rcx, QWORD PTR [rbx+152] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00074 48 85 c9 test rcx, rcx 00077 74 0d je SHORT $LN6@refreshVid ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00079 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00080 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN6@refreshVid: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 85 : monitor->modeCount = modeCount; 00086 8b 44 24 20 mov eax, DWORD PTR modeCount$[rsp] 0008a 89 83 a0 00 00 00 mov DWORD PTR [rbx+160], eax ; 86 : ; 87 : return GLFW_TRUE; 00090 b8 01 00 00 00 mov eax, 1 00095 48 89 bb 98 00 00 00 mov QWORD PTR [rbx+152], rdi $LN11@refreshVid: 0009c 48 8b 7c 24 48 mov rdi, QWORD PTR [rsp+72] ; 88 : } 000a1 48 8b 4c 24 28 mov rcx, QWORD PTR __$ArrayPad$[rsp] 000a6 48 33 cc xor rcx, rsp 000a9 e8 00 00 00 00 call __security_check_cookie 000ae 48 83 c4 30 add rsp, 48 ; 00000030H 000b2 5b pop rbx 000b3 c3 ret 0 refreshVideoModes ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwInputMonitor _TEXT SEGMENT height$1 = 64 width$2 = 68 yoff$3 = 72 xoff$4 = 76 __$ArrayPad$ = 80 monitor$ = 128 action$ = 136 placement$ = 144 _glfwInputMonitor PROC ; COMDAT ; 98 : { $LN63: 00000 40 56 push rsi 00002 48 83 ec 70 sub rsp, 112 ; 00000070H 00006 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0000d 48 33 c4 xor rax, rsp 00010 48 89 44 24 50 mov QWORD PTR __$ArrayPad$[rsp], rax 00015 48 89 9c 24 90 00 00 00 mov QWORD PTR [rsp+144], rbx 0001d 48 8b f1 mov rsi, rcx 00020 48 89 6c 24 68 mov QWORD PTR [rsp+104], rbp 00025 8b ea mov ebp, edx 00027 48 89 7c 24 60 mov QWORD PTR [rsp+96], rdi 0002c 41 8b f8 mov edi, r8d ; 99 : assert(monitor != NULL); ; 100 : assert(action == GLFW_CONNECTED || action == GLFW_DISCONNECTED); ; 101 : assert(placement == _GLFW_INSERT_FIRST || placement == _GLFW_INSERT_LAST); ; 102 : ; 103 : if (action == GLFW_CONNECTED) 0002f 81 fa 01 00 04 00 cmp edx, 262145 ; 00040001H 00035 0f 85 fb 00 00 00 jne $LN8@glfwInputM ; 104 : { ; 105 : _glfw.monitorCount++; 0003b 8b 05 88 07 00 00 mov eax, DWORD PTR _glfw+1928 ; 106 : _glfw.monitors = 00041 48 8b 0d 80 07 00 00 mov rcx, QWORD PTR _glfw+1920 00048 ff c0 inc eax 0004a 48 63 d8 movsxd rbx, eax 0004d 48 c1 e3 03 shl rbx, 3 00051 89 05 88 07 00 00 mov DWORD PTR _glfw+1928, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 298 : if (block && size) 00057 48 85 c9 test rcx, rcx 0005a 74 73 je SHORT $LN23@glfwInputM 0005c 48 85 db test rbx, rbx 0005f 74 5f je SHORT $LN19@glfwInputM ; 299 : { ; 300 : void* resized = _glfw.allocator.reallocate(block, size, _glfw.allocator.user); 00061 4c 8b 05 20 00 00 00 mov r8, QWORD PTR _glfw+32 00068 48 8b d3 mov rdx, rbx 0006b ff 15 10 00 00 00 call QWORD PTR _glfw+16 00071 48 8b d8 mov rbx, rax ; 301 : if (resized) 00074 48 85 c0 test rax, rax 00077 75 0e jne SHORT $LN31@glfwInputM $LN33@glfwInputM: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 106 : _glfw.monitors = 00079 33 d2 xor edx, edx 0007b b9 05 00 01 00 mov ecx, 65541 ; 00010005H $LN61@glfwInputM: 00080 e8 00 00 00 00 call _glfwInputError $LN30@glfwInputM: 00085 33 db xor ebx, ebx $LN31@glfwInputM: 00087 48 89 1d 80 07 00 00 mov QWORD PTR _glfw+1920, rbx ; 107 : _glfw_realloc(_glfw.monitors, ; 108 : sizeof(_GLFWmonitor*) * _glfw.monitorCount); ; 109 : ; 110 : if (placement == _GLFW_INSERT_FIRST) 0008e 85 ff test edi, edi 00090 0f 85 8c 00 00 00 jne $LN10@glfwInputM ; 111 : { ; 112 : memmove(_glfw.monitors + 1, 00096 4c 63 05 88 07 00 00 movsxd r8, DWORD PTR _glfw+1928 0009d 48 8d 4b 08 lea rcx, QWORD PTR [rbx+8] 000a1 48 8b d3 mov rdx, rbx 000a4 4e 8d 04 c5 f8 ff ff ff lea r8, QWORD PTR [r8*8-8] 000ac e8 00 00 00 00 call memmove ; 113 : _glfw.monitors, ; 114 : ((size_t) _glfw.monitorCount - 1) * sizeof(_GLFWmonitor*)); ; 115 : _glfw.monitors[0] = monitor; 000b1 48 8b 05 80 07 00 00 mov rax, QWORD PTR _glfw+1920 000b8 48 89 30 mov QWORD PTR [rax], rsi ; 116 : } 000bb e9 4a 01 00 00 jmp $LN6@glfwInputM $LN19@glfwInputM: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000c0 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000c7 ff 15 18 00 00 00 call QWORD PTR _glfw+24 ; 312 : return NULL; 000cd eb b6 jmp SHORT $LN30@glfwInputM $LN23@glfwInputM: ; 273 : if (count && size) 000cf 48 85 db test rbx, rbx 000d2 74 b1 je SHORT $LN30@glfwInputM ; 274 : { ; 275 : void* block; ; 276 : ; 277 : if (count > SIZE_MAX / size) 000d4 33 d2 xor edx, edx 000d6 48 c7 c0 ff ff ff ff mov rax, -1 000dd 48 f7 f3 div rbx 000e0 48 83 f8 01 cmp rax, 1 000e4 73 0e jae SHORT $LN32@glfwInputM ; 278 : { ; 279 : _glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow"); 000e6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BJ@IHHANIOG@Allocation?5size?5overflow@ 000ed b9 04 00 01 00 mov ecx, 65540 ; 00010004H ; 280 : return NULL; 000f2 eb 8c jmp SHORT $LN61@glfwInputM $LN32@glfwInputM: ; 281 : } ; 282 : ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 000f4 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000fb 48 8b cb mov rcx, rbx 000fe ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 00104 48 85 c0 test rax, rax 00107 0f 84 6c ff ff ff je $LN33@glfwInputM ; 285 : return memset(block, 0, count * size); 0010d 4c 8b c3 mov r8, rbx 00110 33 d2 xor edx, edx 00112 48 8b c8 mov rcx, rax 00115 e8 00 00 00 00 call memset 0011a 48 8b d8 mov rbx, rax 0011d e9 65 ff ff ff jmp $LN31@glfwInputM $LN10@glfwInputM: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 118 : _glfw.monitors[_glfw.monitorCount - 1] = monitor; 00122 8b 05 88 07 00 00 mov eax, DWORD PTR _glfw+1928 00128 ff c8 dec eax 0012a 48 63 c8 movsxd rcx, eax 0012d 48 89 34 cb mov QWORD PTR [rbx+rcx*8], rsi ; 119 : } 00131 e9 d4 00 00 00 jmp $LN6@glfwInputM $LN8@glfwInputM: ; 120 : else if (action == GLFW_DISCONNECTED) 00136 81 fd 02 00 04 00 cmp ebp, 262146 ; 00040002H 0013c 0f 85 c8 00 00 00 jne $LN6@glfwInputM ; 121 : { ; 122 : int i; ; 123 : _GLFWwindow* window; ; 124 : ; 125 : for (window = _glfw.windowListHead; window; window = window->next) 00142 48 8b 3d 78 07 00 00 mov rdi, QWORD PTR _glfw+1912 00149 33 db xor ebx, ebx 0014b 48 85 ff test rdi, rdi 0014e 74 73 je SHORT $LN3@glfwInputM $LL4@glfwInputM: ; 126 : { ; 127 : if (window->monitor == monitor) 00150 48 39 77 50 cmp QWORD PTR [rdi+80], rsi 00154 75 65 jne SHORT $LN2@glfwInputM ; 128 : { ; 129 : int width, height, xoff, yoff; ; 130 : _glfw.platform.getWindowSize(window, &width, &height); 00156 4c 8d 44 24 40 lea r8, QWORD PTR height$1[rsp] 0015b 48 8b cf mov rcx, rdi 0015e 48 8d 54 24 44 lea rdx, QWORD PTR width$2[rsp] 00163 ff 15 40 01 00 00 call QWORD PTR _glfw+320 ; 131 : _glfw.platform.setWindowMonitor(window, NULL, 0, 0, width, height, 0); 00169 8b 44 24 40 mov eax, DWORD PTR height$1[rsp] 0016d 45 33 c9 xor r9d, r9d 00170 89 5c 24 30 mov DWORD PTR [rsp+48], ebx 00174 45 33 c0 xor r8d, r8d 00177 89 44 24 28 mov DWORD PTR [rsp+40], eax 0017b 33 d2 xor edx, edx 0017d 8b 44 24 44 mov eax, DWORD PTR width$2[rsp] 00181 48 8b cf mov rcx, rdi 00184 89 44 24 20 mov DWORD PTR [rsp+32], eax 00188 ff 15 b0 01 00 00 call QWORD PTR _glfw+432 ; 132 : _glfw.platform.getWindowFrameSize(window, &xoff, &yoff, NULL, NULL); 0018e 45 33 c9 xor r9d, r9d 00191 48 89 5c 24 20 mov QWORD PTR [rsp+32], rbx 00196 4c 8d 44 24 48 lea r8, QWORD PTR yoff$3[rsp] 0019b 48 8b cf mov rcx, rdi 0019e 48 8d 54 24 4c lea rdx, QWORD PTR xoff$4[rsp] 001a3 ff 15 68 01 00 00 call QWORD PTR _glfw+360 ; 133 : _glfw.platform.setWindowPos(window, xoff, yoff); 001a9 44 8b 44 24 48 mov r8d, DWORD PTR yoff$3[rsp] 001ae 48 8b cf mov rcx, rdi 001b1 8b 54 24 4c mov edx, DWORD PTR xoff$4[rsp] 001b5 ff 15 38 01 00 00 call QWORD PTR _glfw+312 $LN2@glfwInputM: ; 121 : { ; 122 : int i; ; 123 : _GLFWwindow* window; ; 124 : ; 125 : for (window = _glfw.windowListHead; window; window = window->next) 001bb 48 8b 3f mov rdi, QWORD PTR [rdi] 001be 48 85 ff test rdi, rdi 001c1 75 8d jne SHORT $LL4@glfwInputM $LN3@glfwInputM: ; 134 : } ; 135 : } ; 136 : ; 137 : for (i = 0; i < _glfw.monitorCount; i++) 001c3 8b 15 88 07 00 00 mov edx, DWORD PTR _glfw+1928 001c9 85 d2 test edx, edx 001cb 7e 3d jle SHORT $LN6@glfwInputM 001cd 48 8b 0d 80 07 00 00 mov rcx, QWORD PTR _glfw+1920 001d4 48 8b c1 mov rax, rcx $LL7@glfwInputM: ; 138 : { ; 139 : if (_glfw.monitors[i] == monitor) 001d7 48 39 30 cmp QWORD PTR [rax], rsi 001da 74 0c je SHORT $LN38@glfwInputM ; 134 : } ; 135 : } ; 136 : ; 137 : for (i = 0; i < _glfw.monitorCount; i++) 001dc ff c3 inc ebx 001de 48 83 c0 08 add rax, 8 001e2 3b da cmp ebx, edx 001e4 7c f1 jl SHORT $LL7@glfwInputM ; 138 : { ; 139 : if (_glfw.monitors[i] == monitor) 001e6 eb 22 jmp SHORT $LN6@glfwInputM $LN38@glfwInputM: ; 140 : { ; 141 : _glfw.monitorCount--; 001e8 ff ca dec edx ; 142 : memmove(_glfw.monitors + i, 001ea 48 63 c3 movsxd rax, ebx 001ed 4c 63 c2 movsxd r8, edx 001f0 4c 2b c0 sub r8, rax 001f3 89 15 88 07 00 00 mov DWORD PTR _glfw+1928, edx 001f9 49 c1 e0 03 shl r8, 3 001fd 48 8d 0c c1 lea rcx, QWORD PTR [rcx+rax*8] 00201 48 8d 51 08 lea rdx, QWORD PTR [rcx+8] 00205 e8 00 00 00 00 call memmove $LN6@glfwInputM: ; 143 : _glfw.monitors + i + 1, ; 144 : ((size_t) _glfw.monitorCount - i) * sizeof(_GLFWmonitor*)); ; 145 : break; ; 146 : } ; 147 : } ; 148 : } ; 149 : ; 150 : if (_glfw.callbacks.monitor) 0020a 48 8b 05 68 1b 00 00 mov rax, QWORD PTR _glfw+7016 00211 48 8b 7c 24 60 mov rdi, QWORD PTR [rsp+96] 00216 48 8b 9c 24 90 00 00 00 mov rbx, QWORD PTR [rsp+144] 0021e 48 85 c0 test rax, rax 00221 74 07 je SHORT $LN15@glfwInputM ; 151 : _glfw.callbacks.monitor((GLFWmonitor*) monitor, action); 00223 8b d5 mov edx, ebp 00225 48 8b ce mov rcx, rsi 00228 ff d0 call rax $LN15@glfwInputM: ; 152 : ; 153 : if (action == GLFW_DISCONNECTED) 0022a 81 fd 02 00 04 00 cmp ebp, 262146 ; 00040002H 00230 48 8b 6c 24 68 mov rbp, QWORD PTR [rsp+104] 00235 75 08 jne SHORT $LN16@glfwInputM ; 154 : _glfwFreeMonitor(monitor); 00237 48 8b ce mov rcx, rsi 0023a e8 00 00 00 00 call _glfwFreeMonitor $LN16@glfwInputM: ; 155 : } 0023f 48 8b 4c 24 50 mov rcx, QWORD PTR __$ArrayPad$[rsp] 00244 48 33 cc xor rcx, rsp 00247 e8 00 00 00 00 call __security_check_cookie 0024c 48 83 c4 70 add rsp, 112 ; 00000070H 00250 5e pop rsi 00251 c3 ret 0 _glfwInputMonitor ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwInputMonitorWindow _TEXT SEGMENT monitor$ = 8 window$ = 16 _glfwInputMonitorWindow PROC ; COMDAT ; 162 : assert(monitor != NULL); ; 163 : monitor->window = window; 00000 48 89 91 90 00 00 00 mov QWORD PTR [rcx+144], rdx ; 164 : } 00007 c3 ret 0 _glfwInputMonitorWindow ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwAllocMonitor _TEXT SEGMENT name$ = 48 widthMM$ = 56 heightMM$ = 64 _glfwAllocMonitor PROC ; COMDAT ; 174 : { $LN12: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 48 89 6c 24 10 mov QWORD PTR [rsp+16], rbp 0000a 48 89 74 24 18 mov QWORD PTR [rsp+24], rsi 0000f 57 push rdi 00010 48 83 ec 20 sub rsp, 32 ; 00000020H 00014 8b f2 mov esi, edx 00016 48 8b e9 mov rbp, rcx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 00019 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00020 b9 f0 01 00 00 mov ecx, 496 ; 000001f0H ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 174 : { 00025 41 8b f8 mov edi, r8d ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 00028 ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 0002e 48 85 c0 test rax, rax 00031 74 15 je SHORT $LN7@glfwAllocM ; 285 : return memset(block, 0, count * size); 00033 33 d2 xor edx, edx 00035 41 b8 f0 01 00 00 mov r8d, 496 ; 000001f0H 0003b 48 8b c8 mov rcx, rax 0003e e8 00 00 00 00 call memset 00043 48 8b d8 mov rbx, rax 00046 eb 0e jmp SHORT $LN5@glfwAllocM $LN7@glfwAllocM: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 00048 33 d2 xor edx, edx 0004a b9 05 00 01 00 mov ecx, 65541 ; 00010005H 0004f e8 00 00 00 00 call _glfwInputError ; 289 : return NULL; 00054 33 db xor ebx, ebx $LN5@glfwAllocM: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 179 : strncpy(monitor->name, name, sizeof(monitor->name) - 1); 00056 41 b8 7f 00 00 00 mov r8d, 127 ; 0000007fH 0005c 89 b3 88 00 00 00 mov DWORD PTR [rbx+136], esi 00062 48 8b d5 mov rdx, rbp 00065 89 bb 8c 00 00 00 mov DWORD PTR [rbx+140], edi 0006b 48 8b cb mov rcx, rbx 0006e ff 15 00 00 00 00 call QWORD PTR __imp_strncpy ; 180 : ; 181 : return monitor; ; 182 : } 00074 48 8b 6c 24 38 mov rbp, QWORD PTR [rsp+56] 00079 48 8b c3 mov rax, rbx 0007c 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00081 48 8b 74 24 40 mov rsi, QWORD PTR [rsp+64] 00086 48 83 c4 20 add rsp, 32 ; 00000020H 0008a 5f pop rdi 0008b c3 ret 0 _glfwAllocMonitor ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwAllocGammaArrays _TEXT SEGMENT ramp$ = 48 size$ = 56 _glfwAllocGammaArrays PROC ; COMDAT ; 203 : { $LN32: 00000 48 89 5c 24 10 mov QWORD PTR [rsp+16], rbx 00005 48 89 6c 24 18 mov QWORD PTR [rsp+24], rbp 0000a 48 89 74 24 20 mov QWORD PTR [rsp+32], rsi 0000f 57 push rdi 00010 48 83 ec 20 sub rsp, 32 ; 00000020H 00014 8b ea mov ebp, edx 00016 48 8b d9 mov rbx, rcx ; 204 : ramp->red = _glfw_calloc(size, sizeof(unsigned short)); 00019 8b f2 mov esi, edx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 273 : if (count && size) 0001b 85 d2 test edx, edx 0001d 0f 84 cc 00 00 00 je $LN4@glfwAllocG ; 274 : { ; 275 : void* block; ; 276 : ; 277 : if (count > SIZE_MAX / size) ; 278 : { ; 279 : _glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow"); ; 280 : return NULL; ; 281 : } ; 282 : ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 00023 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0002a 4c 89 74 24 30 mov QWORD PTR [rsp+48], r14 0002f 4c 8d 34 6d 00 00 00 00 lea r14, QWORD PTR [rbp*2] 00037 49 8b ce mov rcx, r14 0003a ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 00040 33 ff xor edi, edi 00042 48 85 c0 test rax, rax 00045 74 12 je SHORT $LN7@glfwAllocG ; 285 : return memset(block, 0, count * size); 00047 4d 8b c6 mov r8, r14 0004a 33 d2 xor edx, edx 0004c 48 8b c8 mov rcx, rax 0004f e8 00 00 00 00 call memset 00054 48 89 03 mov QWORD PTR [rbx], rax 00057 eb 0f jmp SHORT $LN30@glfwAllocG $LN7@glfwAllocG: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 00059 33 d2 xor edx, edx 0005b b9 05 00 01 00 mov ecx, 65541 ; 00010005H 00060 e8 00 00 00 00 call _glfwInputError ; 289 : return NULL; 00065 48 89 3b mov QWORD PTR [rbx], rdi $LN30@glfwAllocG: ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 00068 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0006f 48 8b c6 mov rax, rsi 00072 4c 8d 34 00 lea r14, QWORD PTR [rax+rax] 00076 49 8b ce mov rcx, r14 00079 ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 0007f 48 85 c0 test rax, rax 00082 74 13 je SHORT $LN14@glfwAllocG ; 285 : return memset(block, 0, count * size); 00084 4d 8b c6 mov r8, r14 00087 33 d2 xor edx, edx 00089 48 8b c8 mov rcx, rax 0008c e8 00 00 00 00 call memset 00091 48 89 43 08 mov QWORD PTR [rbx+8], rax 00095 eb 10 jmp SHORT $LN24@glfwAllocG $LN14@glfwAllocG: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 00097 33 d2 xor edx, edx 00099 b9 05 00 01 00 mov ecx, 65541 ; 00010005H 0009e e8 00 00 00 00 call _glfwInputError ; 289 : return NULL; 000a3 48 89 7b 08 mov QWORD PTR [rbx+8], rdi $LN24@glfwAllocG: ; 283 : block = _glfw.allocator.allocate(count * size, _glfw.allocator.user); 000a7 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000ae 48 03 f6 add rsi, rsi 000b1 48 8b ce mov rcx, rsi 000b4 ff 15 08 00 00 00 call QWORD PTR _glfw+8 000ba 4c 8b 74 24 30 mov r14, QWORD PTR [rsp+48] ; 284 : if (block) 000bf 48 85 c0 test rax, rax 000c2 74 16 je SHORT $LN21@glfwAllocG ; 285 : return memset(block, 0, count * size); 000c4 4c 8b c6 mov r8, rsi 000c7 33 d2 xor edx, edx 000c9 48 8b c8 mov rcx, rax 000cc e8 00 00 00 00 call memset ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 206 : ramp->blue = _glfw_calloc(size, sizeof(unsigned short)); 000d1 48 89 43 10 mov QWORD PTR [rbx+16], rax ; 207 : ramp->size = size; 000d5 89 6b 18 mov DWORD PTR [rbx+24], ebp ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 285 : return memset(block, 0, count * size); 000d8 eb 25 jmp SHORT $LN19@glfwAllocG $LN21@glfwAllocG: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 000da 33 d2 xor edx, edx 000dc b9 05 00 01 00 mov ecx, 65541 ; 00010005H 000e1 e8 00 00 00 00 call _glfwInputError ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 206 : ramp->blue = _glfw_calloc(size, sizeof(unsigned short)); 000e6 48 89 7b 10 mov QWORD PTR [rbx+16], rdi ; 207 : ramp->size = size; 000ea 89 6b 18 mov DWORD PTR [rbx+24], ebp ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 289 : return NULL; 000ed eb 10 jmp SHORT $LN19@glfwAllocG $LN4@glfwAllocG: ; 293 : return NULL; 000ef 33 ff xor edi, edi ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 207 : ramp->size = size; 000f1 89 69 18 mov DWORD PTR [rcx+24], ebp ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 293 : return NULL; 000f4 48 89 39 mov QWORD PTR [rcx], rdi 000f7 48 89 79 08 mov QWORD PTR [rcx+8], rdi ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 206 : ramp->blue = _glfw_calloc(size, sizeof(unsigned short)); 000fb 48 89 79 10 mov QWORD PTR [rcx+16], rdi $LN19@glfwAllocG: ; 208 : } 000ff 48 8b 5c 24 38 mov rbx, QWORD PTR [rsp+56] 00104 48 8b 6c 24 40 mov rbp, QWORD PTR [rsp+64] 00109 48 8b 74 24 48 mov rsi, QWORD PTR [rsp+72] 0010e 48 83 c4 20 add rsp, 32 ; 00000020H 00112 5f pop rdi 00113 c3 ret 0 _glfwAllocGammaArrays ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwFreeGammaArrays _TEXT SEGMENT ramp$ = 48 _glfwFreeGammaArrays PROC ; COMDAT ; 213 : { $LN16: 00000 40 53 push rbx 00002 48 83 ec 20 sub rsp, 32 ; 00000020H 00006 48 8b d9 mov rbx, rcx ; 214 : _glfw_free(ramp->red); 00009 48 8b 09 mov rcx, QWORD PTR [rcx] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0000c 48 85 c9 test rcx, rcx 0000f 74 0d je SHORT $LN4@glfwFreeGa ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00011 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00018 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN4@glfwFreeGa: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 215 : _glfw_free(ramp->green); 0001e 48 8b 4b 08 mov rcx, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00022 48 85 c9 test rcx, rcx 00025 74 0d je SHORT $LN7@glfwFreeGa ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00027 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0002e ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN7@glfwFreeGa: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 216 : _glfw_free(ramp->blue); 00034 48 8b 4b 10 mov rcx, QWORD PTR [rbx+16] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00038 48 85 c9 test rcx, rcx 0003b 74 0d je SHORT $LN10@glfwFreeGa ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0003d 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00044 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN10@glfwFreeGa: 0004a 0f 57 c0 xorps xmm0, xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 218 : memset(ramp, 0, sizeof(GLFWgammaramp)); 0004d 0f 11 03 movups XMMWORD PTR [rbx], xmm0 00050 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0 ; 219 : } 00054 48 83 c4 20 add rsp, 32 ; 00000020H 00058 5b pop rbx 00059 c3 ret 0 _glfwFreeGammaArrays ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwChooseVideoMode _TEXT SEGMENT tv527 = 32 monitor$ = 112 desired$ = 120 $T1 = 128 $T2 = 136 _glfwChooseVideoMode PROC ; COMDAT ; 225 : { $LN52: 00000 40 53 push rbx 00002 55 push rbp 00003 56 push rsi 00004 57 push rdi 00005 41 55 push r13 00007 41 56 push r14 00009 41 57 push r15 0000b 48 83 ec 30 sub rsp, 48 ; 00000030H ; 226 : int i; ; 227 : unsigned int sizeDiff, leastSizeDiff = UINT_MAX; 0000f bb ff ff ff ff mov ebx, -1 ; ffffffffH ; 228 : unsigned int rateDiff, leastRateDiff = UINT_MAX; ; 229 : unsigned int colorDiff, leastColorDiff = UINT_MAX; ; 230 : const GLFWvidmode* current; ; 231 : const GLFWvidmode* closest = NULL; 00014 33 f6 xor esi, esi 00016 44 8b fb mov r15d, ebx 00019 8b fb mov edi, ebx 0001b 44 8b ee mov r13d, esi 0001e 4c 8b f2 mov r14, rdx 00021 48 8b e9 mov rbp, rcx ; 232 : ; 233 : if (!refreshVideoModes(monitor)) 00024 e8 00 00 00 00 call refreshVideoModes 00029 85 c0 test eax, eax 0002b 75 11 jne SHORT $LN5@glfwChoose ; 234 : return NULL; 0002d 33 c0 xor eax, eax ; 271 : } 0002f 48 83 c4 30 add rsp, 48 ; 00000030H 00033 41 5f pop r15 00035 41 5e pop r14 00037 41 5d pop r13 00039 5f pop rdi 0003a 5e pop rsi 0003b 5d pop rbp 0003c 5b pop rbx 0003d c3 ret 0 $LN5@glfwChoose: ; 235 : ; 236 : for (i = 0; i < monitor->modeCount; i++) 0003e 48 63 85 a0 00 00 00 movsxd rax, DWORD PTR [rbp+160] 00045 85 c0 test eax, eax 00047 0f 8e a3 01 00 00 jle $LN27@glfwChoose ; 248 : ; 249 : sizeDiff = abs((current->width - desired->width) * 0004d 41 8b 56 04 mov edx, DWORD PTR [r14+4] 00051 48 8b 8d 98 00 00 00 mov rcx, QWORD PTR [rbp+152] 00058 45 8b 5e 08 mov r11d, DWORD PTR [r14+8] 0005c 41 8b 6e 10 mov ebp, DWORD PTR [r14+16] 00060 89 94 24 80 00 00 00 mov DWORD PTR $T1[rsp], edx 00067 41 8b 16 mov edx, DWORD PTR [r14] 0006a 4c 89 64 24 70 mov QWORD PTR [rsp+112], r12 0006f 45 8b 66 0c mov r12d, DWORD PTR [r14+12] ; 250 : (current->width - desired->width) + ; 251 : (current->height - desired->height) * ; 252 : (current->height - desired->height)); ; 253 : ; 254 : if (desired->refreshRate != GLFW_DONT_CARE) 00073 45 8b 76 14 mov r14d, DWORD PTR [r14+20] 00077 89 94 24 88 00 00 00 mov DWORD PTR $T2[rsp], edx 0007e 48 89 4c 24 20 mov QWORD PTR tv527[rsp], rcx 00083 41 83 fb ff cmp r11d, -1 00087 0f 84 af 00 00 00 je $LN17@glfwChoose 0008d 44 8b d0 mov r10d, eax $LL4@glfwChoose: ; 241 : ; 242 : if (desired->redBits != GLFW_DONT_CARE) ; 243 : colorDiff += abs(current->redBits - desired->redBits); 00090 8b 44 0e 08 mov eax, DWORD PTR [rsi+rcx+8] 00094 4c 8d 0c 0e lea r9, QWORD PTR [rsi+rcx] 00098 41 2b c3 sub eax, r11d 0009b 99 cdq 0009c 44 8b c0 mov r8d, eax 0009f 44 33 c2 xor r8d, edx 000a2 44 2b c2 sub r8d, edx ; 244 : if (desired->greenBits != GLFW_DONT_CARE) 000a5 41 83 fc ff cmp r12d, -1 000a9 74 0f je SHORT $LN7@glfwChoose ; 245 : colorDiff += abs(current->greenBits - desired->greenBits); 000ab 41 8b 41 0c mov eax, DWORD PTR [r9+12] 000af 41 2b c4 sub eax, r12d 000b2 99 cdq 000b3 33 c2 xor eax, edx 000b5 2b c2 sub eax, edx 000b7 44 03 c0 add r8d, eax $LN7@glfwChoose: ; 246 : if (desired->blueBits != GLFW_DONT_CARE) 000ba 83 fd ff cmp ebp, -1 000bd 74 0e je SHORT $LN8@glfwChoose ; 247 : colorDiff += abs(current->blueBits - desired->blueBits); 000bf 41 8b 41 10 mov eax, DWORD PTR [r9+16] 000c3 2b c5 sub eax, ebp 000c5 99 cdq 000c6 33 c2 xor eax, edx 000c8 2b c2 sub eax, edx 000ca 44 03 c0 add r8d, eax $LN8@glfwChoose: ; 248 : ; 249 : sizeDiff = abs((current->width - desired->width) * 000cd 41 8b 49 04 mov ecx, DWORD PTR [r9+4] 000d1 2b 8c 24 80 00 00 00 sub ecx, DWORD PTR $T1[rsp] 000d8 41 8b 01 mov eax, DWORD PTR [r9] 000db 2b 84 24 88 00 00 00 sub eax, DWORD PTR $T2[rsp] 000e2 0f af c9 imul ecx, ecx 000e5 0f af c0 imul eax, eax 000e8 03 c1 add eax, ecx 000ea 99 cdq 000eb 8b c8 mov ecx, eax ; 250 : (current->width - desired->width) + ; 251 : (current->height - desired->height) * ; 252 : (current->height - desired->height)); ; 253 : ; 254 : if (desired->refreshRate != GLFW_DONT_CARE) 000ed 41 8b 41 14 mov eax, DWORD PTR [r9+20] 000f1 33 ca xor ecx, edx 000f3 2b ca sub ecx, edx 000f5 41 83 fe ff cmp r14d, -1 000f9 74 0a je SHORT $LN9@glfwChoose ; 255 : rateDiff = abs(current->refreshRate - desired->refreshRate); 000fb 41 2b c6 sub eax, r14d 000fe 99 cdq 000ff 33 c2 xor eax, edx 00101 2b c2 sub eax, edx 00103 eb 02 jmp SHORT $LN10@glfwChoose $LN9@glfwChoose: ; 256 : else ; 257 : rateDiff = UINT_MAX - current->refreshRate; 00105 f7 d0 not eax $LN10@glfwChoose: ; 258 : ; 259 : if ((colorDiff < leastColorDiff) || ; 260 : (colorDiff == leastColorDiff && sizeDiff < leastSizeDiff) || 00107 44 3b c7 cmp r8d, edi 0010a 72 0d jb SHORT $LN12@glfwChoose 0010c 75 16 jne SHORT $LN2@glfwChoose 0010e 3b cb cmp ecx, ebx 00110 72 07 jb SHORT $LN12@glfwChoose 00112 75 10 jne SHORT $LN2@glfwChoose 00114 41 3b c7 cmp eax, r15d 00117 73 0b jae SHORT $LN2@glfwChoose $LN12@glfwChoose: ; 261 : (colorDiff == leastColorDiff && sizeDiff == leastSizeDiff && rateDiff < leastRateDiff)) ; 262 : { ; 263 : closest = current; 00119 4d 8b e9 mov r13, r9 ; 264 : leastSizeDiff = sizeDiff; 0011c 8b d9 mov ebx, ecx ; 265 : leastRateDiff = rateDiff; 0011e 44 8b f8 mov r15d, eax ; 266 : leastColorDiff = colorDiff; 00121 41 8b f8 mov edi, r8d $LN2@glfwChoose: ; 235 : ; 236 : for (i = 0; i < monitor->modeCount; i++) 00124 48 8b 4c 24 20 mov rcx, QWORD PTR tv527[rsp] 00129 48 83 c6 18 add rsi, 24 0012d 49 83 ea 01 sub r10, 1 00131 0f 85 59 ff ff ff jne $LL4@glfwChoose 00137 e9 af 00 00 00 jmp $LN50@glfwChoose $LN17@glfwChoose: 0013c 4c 8b d8 mov r11, rax 0013f 85 c0 test eax, eax 00141 0f 8e a4 00 00 00 jle $LN50@glfwChoose ; 244 : if (desired->greenBits != GLFW_DONT_CARE) 00147 4c 8b d6 mov r10, rsi 0014a 66 0f 1f 44 00 00 npad 6 $LL18@glfwChoose: ; 237 : { ; 238 : current = monitor->modes + i; 00150 4d 8d 0c 0a lea r9, QWORD PTR [r10+rcx] ; 239 : ; 240 : colorDiff = 0; 00154 44 8b c6 mov r8d, esi ; 244 : if (desired->greenBits != GLFW_DONT_CARE) 00157 41 83 fc ff cmp r12d, -1 0015b 74 11 je SHORT $LN19@glfwChoose ; 245 : colorDiff += abs(current->greenBits - desired->greenBits); 0015d 41 8b 41 0c mov eax, DWORD PTR [r9+12] 00161 41 2b c4 sub eax, r12d 00164 99 cdq 00165 44 8b c0 mov r8d, eax 00168 44 33 c2 xor r8d, edx 0016b 44 2b c2 sub r8d, edx $LN19@glfwChoose: ; 246 : if (desired->blueBits != GLFW_DONT_CARE) 0016e 83 fd ff cmp ebp, -1 00171 74 0e je SHORT $LN20@glfwChoose ; 247 : colorDiff += abs(current->blueBits - desired->blueBits); 00173 41 8b 41 10 mov eax, DWORD PTR [r9+16] 00177 2b c5 sub eax, ebp 00179 99 cdq 0017a 33 c2 xor eax, edx 0017c 2b c2 sub eax, edx 0017e 44 03 c0 add r8d, eax $LN20@glfwChoose: ; 248 : ; 249 : sizeDiff = abs((current->width - desired->width) * 00181 41 8b 49 04 mov ecx, DWORD PTR [r9+4] 00185 2b 8c 24 80 00 00 00 sub ecx, DWORD PTR $T1[rsp] 0018c 41 8b 01 mov eax, DWORD PTR [r9] 0018f 2b 84 24 88 00 00 00 sub eax, DWORD PTR $T2[rsp] 00196 0f af c9 imul ecx, ecx 00199 0f af c0 imul eax, eax 0019c 03 c1 add eax, ecx 0019e 99 cdq 0019f 8b c8 mov ecx, eax ; 250 : (current->width - desired->width) + ; 251 : (current->height - desired->height) * ; 252 : (current->height - desired->height)); ; 253 : ; 254 : if (desired->refreshRate != GLFW_DONT_CARE) 001a1 41 8b 41 14 mov eax, DWORD PTR [r9+20] 001a5 33 ca xor ecx, edx 001a7 2b ca sub ecx, edx 001a9 41 83 fe ff cmp r14d, -1 001ad 74 0a je SHORT $LN21@glfwChoose ; 255 : rateDiff = abs(current->refreshRate - desired->refreshRate); 001af 41 2b c6 sub eax, r14d 001b2 99 cdq 001b3 33 c2 xor eax, edx 001b5 2b c2 sub eax, edx 001b7 eb 02 jmp SHORT $LN22@glfwChoose $LN21@glfwChoose: ; 256 : else ; 257 : rateDiff = UINT_MAX - current->refreshRate; 001b9 f7 d0 not eax $LN22@glfwChoose: ; 258 : ; 259 : if ((colorDiff < leastColorDiff) || ; 260 : (colorDiff == leastColorDiff && sizeDiff < leastSizeDiff) || 001bb 44 3b c7 cmp r8d, edi 001be 72 0d jb SHORT $LN24@glfwChoose 001c0 75 16 jne SHORT $LN25@glfwChoose 001c2 3b cb cmp ecx, ebx 001c4 72 07 jb SHORT $LN24@glfwChoose 001c6 75 10 jne SHORT $LN25@glfwChoose 001c8 41 3b c7 cmp eax, r15d 001cb 73 0b jae SHORT $LN25@glfwChoose $LN24@glfwChoose: ; 261 : (colorDiff == leastColorDiff && sizeDiff == leastSizeDiff && rateDiff < leastRateDiff)) ; 262 : { ; 263 : closest = current; 001cd 4d 8b e9 mov r13, r9 ; 264 : leastSizeDiff = sizeDiff; 001d0 8b d9 mov ebx, ecx ; 265 : leastRateDiff = rateDiff; 001d2 44 8b f8 mov r15d, eax ; 266 : leastColorDiff = colorDiff; 001d5 41 8b f8 mov edi, r8d $LN25@glfwChoose: ; 235 : ; 236 : for (i = 0; i < monitor->modeCount; i++) 001d8 48 8b 4c 24 20 mov rcx, QWORD PTR tv527[rsp] 001dd 49 83 c2 18 add r10, 24 001e1 49 83 eb 01 sub r11, 1 001e5 0f 85 65 ff ff ff jne $LL18@glfwChoose $LN50@glfwChoose: 001eb 4c 8b 64 24 70 mov r12, QWORD PTR [rsp+112] $LN27@glfwChoose: ; 267 : } ; 268 : } ; 269 : ; 270 : return closest; 001f0 49 8b c5 mov rax, r13 ; 271 : } 001f3 48 83 c4 30 add rsp, 48 ; 00000030H 001f7 41 5f pop r15 001f9 41 5e pop r14 001fb 41 5d pop r13 001fd 5f pop rdi 001fe 5e pop rsi 001ff 5d pop rbp 00200 5b pop rbx 00201 c3 ret 0 _glfwChooseVideoMode ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwCompareVideoModes _TEXT SEGMENT fm$ = 8 sm$ = 16 _glfwCompareVideoModes PROC ; COMDAT ; 46 : const int fbpp = fm->redBits + fm->greenBits + fm->blueBits; 00000 8b 41 10 mov eax, DWORD PTR [rcx+16] ; 276 : { 00003 4c 8b c9 mov r9, rcx ; 46 : const int fbpp = fm->redBits + fm->greenBits + fm->blueBits; 00006 03 41 0c add eax, DWORD PTR [rcx+12] 00009 03 41 08 add eax, DWORD PTR [rcx+8] ; 47 : const int sbpp = sm->redBits + sm->greenBits + sm->blueBits; 0000c 8b 4a 10 mov ecx, DWORD PTR [rdx+16] 0000f 03 4a 0c add ecx, DWORD PTR [rdx+12] 00012 03 4a 08 add ecx, DWORD PTR [rdx+8] ; 48 : const int farea = fm->width * fm->height; 00015 45 8b 01 mov r8d, DWORD PTR [r9] ; 49 : const int sarea = sm->width * sm->height; 00018 44 8b 12 mov r10d, DWORD PTR [rdx] ; 50 : ; 51 : // First sort on color bits per pixel ; 52 : if (fbpp != sbpp) 0001b 3b c1 cmp eax, ecx 0001d 74 03 je SHORT $LN4@glfwCompar $LN8@glfwCompar: ; 278 : } 0001f 2b c1 sub eax, ecx 00021 c3 ret 0 $LN4@glfwCompar: ; 49 : const int sarea = sm->width * sm->height; 00022 41 8b ca mov ecx, r10d 00025 41 8b c0 mov eax, r8d 00028 0f af 4a 04 imul ecx, DWORD PTR [rdx+4] 0002c 41 0f af 41 04 imul eax, DWORD PTR [r9+4] ; 53 : return fbpp - sbpp; ; 54 : ; 55 : // Then sort on screen area ; 56 : if (farea != sarea) 00031 3b c1 cmp eax, ecx 00033 75 ea jne SHORT $LN8@glfwCompar ; 57 : return farea - sarea; ; 58 : ; 59 : // Then sort on width ; 60 : if (fm->width != sm->width) 00035 45 3b c2 cmp r8d, r10d 00038 74 07 je SHORT $LN6@glfwCompar ; 61 : return fm->width - sm->width; 0003a 45 2b c2 sub r8d, r10d ; 277 : return compareVideoModes(fm, sm); 0003d 41 8b c0 mov eax, r8d ; 278 : } 00040 c3 ret 0 $LN6@glfwCompar: ; 64 : return fm->refreshRate - sm->refreshRate; 00041 41 8b 41 14 mov eax, DWORD PTR [r9+20] 00045 2b 42 14 sub eax, DWORD PTR [rdx+20] ; 278 : } 00048 c3 ret 0 _glfwCompareVideoModes ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT _glfwSplitBPP _TEXT SEGMENT bpp$ = 8 red$ = 16 green$ = 24 blue$ = 32 _glfwSplitBPP PROC ; COMDAT ; 283 : { 00000 4c 8b d2 mov r10, rdx ; 284 : int delta; ; 285 : ; 286 : // We assume that by 32 the user really meant 24 ; 287 : if (bpp == 32) ; 288 : bpp = 24; ; 289 : ; 290 : // Convert "bits per pixel" to red, green & blue sizes ; 291 : ; 292 : *red = *green = *blue = bpp / 3; 00003 83 f9 20 cmp ecx, 32 ; 00000020H 00006 41 bb 18 00 00 00 mov r11d, 24 0000c b8 56 55 55 55 mov eax, 1431655766 ; 55555556H 00011 44 0f 45 d9 cmovne r11d, ecx 00015 41 f7 eb imul r11d 00018 8b c2 mov eax, edx 0001a c1 e8 1f shr eax, 31 0001d 03 d0 add edx, eax 0001f 41 89 11 mov DWORD PTR [r9], edx 00022 41 89 10 mov DWORD PTR [r8], edx 00025 41 89 12 mov DWORD PTR [r10], edx ; 293 : delta = bpp - (*red * 3); 00028 8d 04 52 lea eax, DWORD PTR [rdx+rdx*2] 0002b 44 2b d8 sub r11d, eax ; 294 : if (delta >= 1) 0002e 41 83 fb 01 cmp r11d, 1 00032 7c 03 jl SHORT $LN3@glfwSplitB ; 295 : *green = *green + 1; 00034 41 ff 00 inc DWORD PTR [r8] $LN3@glfwSplitB: ; 296 : ; 297 : if (delta == 2) 00037 41 83 fb 02 cmp r11d, 2 0003b 75 03 jne SHORT $LN4@glfwSplitB ; 298 : *red = *red + 1; 0003d 41 ff 02 inc DWORD PTR [r10] $LN4@glfwSplitB: ; 299 : } 00040 c3 ret 0 _glfwSplitBPP ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitors _TEXT SEGMENT count$ = 48 glfwGetMonitors PROC ; COMDAT ; 307 : { $LN5: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 308 : assert(count != NULL); ; 309 : ; 310 : *count = 0; 00004 c7 01 00 00 00 00 mov DWORD PTR [rcx], 0 ; 311 : ; 312 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 0000a 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00011 75 13 jne SHORT $LN2@glfwGetMon 00013 33 d2 xor edx, edx 00015 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 0001a e8 00 00 00 00 call _glfwInputError 0001f 33 c0 xor eax, eax ; 316 : } 00021 48 83 c4 28 add rsp, 40 ; 00000028H 00025 c3 ret 0 $LN2@glfwGetMon: ; 313 : ; 314 : *count = _glfw.monitorCount; 00026 8b 05 88 07 00 00 mov eax, DWORD PTR _glfw+1928 0002c 89 01 mov DWORD PTR [rcx], eax ; 315 : return (GLFWmonitor**) _glfw.monitors; 0002e 48 8b 05 80 07 00 00 mov rax, QWORD PTR _glfw+1920 ; 316 : } 00035 48 83 c4 28 add rsp, 40 ; 00000028H 00039 c3 ret 0 glfwGetMonitors ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetPrimaryMonitor _TEXT SEGMENT glfwGetPrimaryMonitor PROC ; COMDAT ; 319 : { $LN7: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 320 : _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@glfwGetPri 0000d 33 d2 xor edx, edx 0000f b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00014 e8 00 00 00 00 call _glfwInputError $LN5@glfwGetPri: ; 326 : } 00019 33 c0 xor eax, eax 0001b 48 83 c4 28 add rsp, 40 ; 00000028H 0001f c3 ret 0 $LN2@glfwGetPri: ; 321 : ; 322 : if (!_glfw.monitorCount) 00020 83 3d 88 07 00 00 00 cmp DWORD PTR _glfw+1928, 0 00027 74 f0 je SHORT $LN5@glfwGetPri ; 323 : return NULL; ; 324 : ; 325 : return (GLFWmonitor*) _glfw.monitors[0]; 00029 48 8b 05 80 07 00 00 mov rax, QWORD PTR _glfw+1920 00030 48 8b 00 mov rax, QWORD PTR [rax] ; 326 : } 00033 48 83 c4 28 add rsp, 40 ; 00000028H 00037 c3 ret 0 glfwGetPrimaryMonitor ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorPos _TEXT SEGMENT handle$ = 8 xpos$ = 16 ypos$ = 24 glfwGetMonitorPos PROC ; COMDAT ; 330 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 331 : assert(monitor != NULL); ; 332 : ; 333 : if (xpos) 00000 33 c0 xor eax, eax 00002 48 85 d2 test rdx, rdx 00005 74 02 je SHORT $LN2@glfwGetMon ; 334 : *xpos = 0; 00007 89 02 mov DWORD PTR [rdx], eax $LN2@glfwGetMon: ; 335 : if (ypos) 00009 4d 85 c0 test r8, r8 0000c 74 03 je SHORT $LN3@glfwGetMon ; 336 : *ypos = 0; 0000e 41 89 00 mov DWORD PTR [r8], eax $LN3@glfwGetMon: ; 337 : ; 338 : _GLFW_REQUIRE_INIT(); 00011 39 05 00 00 00 00 cmp DWORD PTR _glfw, eax 00017 75 0c jne SHORT $LN4@glfwGetMon 00019 33 d2 xor edx, edx 0001b b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00020 e9 00 00 00 00 jmp _glfwInputError $LN4@glfwGetMon: ; 339 : ; 340 : _glfw.platform.getMonitorPos(monitor, xpos, ypos); 00025 48 ff 25 d8 00 00 00 rex_jmp QWORD PTR _glfw+216 glfwGetMonitorPos ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorWorkarea _TEXT SEGMENT handle$ = 8 xpos$ = 16 ypos$ = 24 width$ = 32 height$ = 40 glfwGetMonitorWorkarea PROC ; COMDAT ; 347 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 348 : assert(monitor != NULL); ; 349 : ; 350 : if (xpos) 00000 45 33 d2 xor r10d, r10d 00003 48 85 d2 test rdx, rdx 00006 74 03 je SHORT $LN2@glfwGetMon ; 351 : *xpos = 0; 00008 44 89 12 mov DWORD PTR [rdx], r10d $LN2@glfwGetMon: ; 352 : if (ypos) 0000b 4d 85 c0 test r8, r8 0000e 74 03 je SHORT $LN3@glfwGetMon ; 353 : *ypos = 0; 00010 45 89 10 mov DWORD PTR [r8], r10d $LN3@glfwGetMon: ; 354 : if (width) 00013 4d 85 c9 test r9, r9 00016 74 03 je SHORT $LN4@glfwGetMon ; 355 : *width = 0; 00018 45 89 11 mov DWORD PTR [r9], r10d $LN4@glfwGetMon: ; 356 : if (height) 0001b 48 8b 44 24 28 mov rax, QWORD PTR height$[rsp] 00020 48 85 c0 test rax, rax 00023 74 03 je SHORT $LN5@glfwGetMon ; 357 : *height = 0; 00025 44 89 10 mov DWORD PTR [rax], r10d $LN5@glfwGetMon: ; 358 : ; 359 : _GLFW_REQUIRE_INIT(); 00028 44 39 15 00 00 00 00 cmp DWORD PTR _glfw, r10d 0002f 75 0c jne SHORT $LN6@glfwGetMon 00031 33 d2 xor edx, edx 00033 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00038 e9 00 00 00 00 jmp _glfwInputError $LN6@glfwGetMon: ; 360 : ; 361 : _glfw.platform.getMonitorWorkarea(monitor, xpos, ypos, width, height); 0003d 48 89 44 24 28 mov QWORD PTR height$[rsp], rax 00042 48 ff 25 e8 00 00 00 rex_jmp QWORD PTR _glfw+232 glfwGetMonitorWorkarea ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorPhysicalSize _TEXT SEGMENT handle$ = 8 widthMM$ = 16 heightMM$ = 24 glfwGetMonitorPhysicalSize PROC ; COMDAT ; 366 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 367 : assert(monitor != NULL); ; 368 : ; 369 : if (widthMM) 00000 33 c0 xor eax, eax 00002 48 85 d2 test rdx, rdx 00005 74 02 je SHORT $LN2@glfwGetMon ; 370 : *widthMM = 0; 00007 89 02 mov DWORD PTR [rdx], eax $LN2@glfwGetMon: ; 371 : if (heightMM) 00009 4d 85 c0 test r8, r8 0000c 74 03 je SHORT $LN3@glfwGetMon ; 372 : *heightMM = 0; 0000e 41 89 00 mov DWORD PTR [r8], eax $LN3@glfwGetMon: ; 373 : ; 374 : _GLFW_REQUIRE_INIT(); 00011 39 05 00 00 00 00 cmp DWORD PTR _glfw, eax 00017 75 0c jne SHORT $LN4@glfwGetMon 00019 33 d2 xor edx, edx 0001b b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00020 e9 00 00 00 00 jmp _glfwInputError $LN4@glfwGetMon: ; 375 : ; 376 : if (widthMM) 00025 48 85 d2 test rdx, rdx 00028 74 08 je SHORT $LN5@glfwGetMon ; 377 : *widthMM = monitor->widthMM; 0002a 8b 81 88 00 00 00 mov eax, DWORD PTR [rcx+136] 00030 89 02 mov DWORD PTR [rdx], eax $LN5@glfwGetMon: ; 378 : if (heightMM) 00032 4d 85 c0 test r8, r8 00035 74 09 je SHORT $LN6@glfwGetMon ; 379 : *heightMM = monitor->heightMM; 00037 8b 81 8c 00 00 00 mov eax, DWORD PTR [rcx+140] 0003d 41 89 00 mov DWORD PTR [r8], eax $LN6@glfwGetMon: ; 380 : } 00040 c3 ret 0 glfwGetMonitorPhysicalSize ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorContentScale _TEXT SEGMENT handle$ = 8 xscale$ = 16 yscale$ = 24 glfwGetMonitorContentScale PROC ; COMDAT ; 385 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 386 : assert(monitor != NULL); ; 387 : ; 388 : if (xscale) 00000 33 c0 xor eax, eax 00002 48 85 d2 test rdx, rdx 00005 74 02 je SHORT $LN2@glfwGetMon ; 389 : *xscale = 0.f; 00007 89 02 mov DWORD PTR [rdx], eax $LN2@glfwGetMon: ; 390 : if (yscale) 00009 4d 85 c0 test r8, r8 0000c 74 03 je SHORT $LN3@glfwGetMon ; 391 : *yscale = 0.f; 0000e 41 89 00 mov DWORD PTR [r8], eax $LN3@glfwGetMon: ; 392 : ; 393 : _GLFW_REQUIRE_INIT(); 00011 39 05 00 00 00 00 cmp DWORD PTR _glfw, eax 00017 75 0c jne SHORT $LN4@glfwGetMon 00019 33 d2 xor edx, edx 0001b b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00020 e9 00 00 00 00 jmp _glfwInputError $LN4@glfwGetMon: ; 394 : _glfw.platform.getMonitorContentScale(monitor, xscale, yscale); 00025 48 ff 25 e0 00 00 00 rex_jmp QWORD PTR _glfw+224 glfwGetMonitorContentScale ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorName _TEXT SEGMENT handle$ = 48 glfwGetMonitorName PROC ; COMDAT ; 398 : { $LN5: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 399 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 400 : assert(monitor != NULL); ; 401 : ; 402 : _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@glfwGetMon 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 ; 404 : } 0001b 48 83 c4 28 add rsp, 40 ; 00000028H 0001f c3 ret 0 $LN2@glfwGetMon: ; 403 : return monitor->name; 00020 48 8b c1 mov rax, rcx ; 404 : } 00023 48 83 c4 28 add rsp, 40 ; 00000028H 00027 c3 ret 0 glfwGetMonitorName ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwSetMonitorUserPointer _TEXT SEGMENT handle$ = 8 pointer$ = 16 glfwSetMonitorUserPointer PROC ; COMDAT ; 408 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 409 : assert(monitor != NULL); ; 410 : ; 411 : _GLFW_REQUIRE_INIT(); 00000 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00007 75 0c jne SHORT $LN2@glfwSetMon 00009 33 d2 xor edx, edx 0000b b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00010 e9 00 00 00 00 jmp _glfwInputError $LN2@glfwSetMon: ; 412 : monitor->userPointer = pointer; 00015 48 89 91 80 00 00 00 mov QWORD PTR [rcx+128], rdx ; 413 : } 0001c c3 ret 0 glfwSetMonitorUserPointer ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetMonitorUserPointer _TEXT SEGMENT handle$ = 48 glfwGetMonitorUserPointer PROC ; COMDAT ; 416 : { $LN5: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 417 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 418 : assert(monitor != NULL); ; 419 : ; 420 : _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@glfwGetMon 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 ; 422 : } 0001b 48 83 c4 28 add rsp, 40 ; 00000028H 0001f c3 ret 0 $LN2@glfwGetMon: ; 421 : return monitor->userPointer; 00020 48 8b 81 80 00 00 00 mov rax, QWORD PTR [rcx+128] ; 422 : } 00027 48 83 c4 28 add rsp, 40 ; 00000028H 0002b c3 ret 0 glfwGetMonitorUserPointer ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwSetMonitorCallback _TEXT SEGMENT cbfun$ = 48 glfwSetMonitorCallback PROC ; COMDAT ; 425 : { $LN5: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 426 : _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@glfwSetMon 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 ; 428 : return cbfun; ; 429 : } 0001b 48 83 c4 28 add rsp, 40 ; 00000028H 0001f c3 ret 0 $LN2@glfwSetMon: ; 427 : _GLFW_SWAP(GLFWmonitorfun, _glfw.callbacks.monitor, cbfun); 00020 48 8b 05 68 1b 00 00 mov rax, QWORD PTR _glfw+7016 00027 48 89 0d 68 1b 00 00 mov QWORD PTR _glfw+7016, rcx ; 428 : return cbfun; ; 429 : } 0002e 48 83 c4 28 add rsp, 40 ; 00000028H 00032 c3 ret 0 glfwSetMonitorCallback ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetVideoModes _TEXT SEGMENT handle$ = 48 count$ = 56 glfwGetVideoModes PROC ; COMDAT ; 432 : { $LN9: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 20 sub rsp, 32 ; 00000020H ; 433 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 434 : assert(monitor != NULL); ; 435 : assert(count != NULL); ; 436 : ; 437 : *count = 0; 0000a c7 02 00 00 00 00 mov DWORD PTR [rdx], 0 00010 48 8b fa mov rdi, rdx ; 438 : ; 439 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 00013 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 0001a 48 8b d9 mov rbx, rcx 0001d 75 19 jne SHORT $LN2@glfwGetVid 0001f 33 d2 xor edx, edx 00021 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00026 e8 00 00 00 00 call _glfwInputError $LN7@glfwGetVid: ; 446 : } 0002b 33 c0 xor eax, eax 0002d 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00032 48 83 c4 20 add rsp, 32 ; 00000020H 00036 5f pop rdi 00037 c3 ret 0 $LN2@glfwGetVid: ; 440 : ; 441 : if (!refreshVideoModes(monitor)) 00038 e8 00 00 00 00 call refreshVideoModes 0003d 85 c0 test eax, eax 0003f 74 ea je SHORT $LN7@glfwGetVid ; 442 : return NULL; ; 443 : ; 444 : *count = monitor->modeCount; 00041 8b 83 a0 00 00 00 mov eax, DWORD PTR [rbx+160] 00047 89 07 mov DWORD PTR [rdi], eax ; 445 : return monitor->modes; 00049 48 8b 83 98 00 00 00 mov rax, QWORD PTR [rbx+152] ; 446 : } 00050 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00055 48 83 c4 20 add rsp, 32 ; 00000020H 00059 5f pop rdi 0005a c3 ret 0 glfwGetVideoModes ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetVideoMode _TEXT SEGMENT handle$ = 48 glfwGetVideoMode PROC ; COMDAT ; 449 : { $LN6: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H ; 450 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 451 : assert(monitor != NULL); ; 452 : ; 453 : _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@glfwGetVid 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 ; 457 : } 0001b 48 83 c4 28 add rsp, 40 ; 00000028H 0001f c3 ret 0 $LN2@glfwGetVid: 00020 48 89 5c 24 20 mov QWORD PTR [rsp+32], rbx ; 454 : ; 455 : _glfw.platform.getVideoMode(monitor, &monitor->currentMode); 00025 48 8d 99 a4 00 00 00 lea rbx, QWORD PTR [rcx+164] 0002c 48 8b d3 mov rdx, rbx 0002f ff 15 f8 00 00 00 call QWORD PTR _glfw+248 ; 456 : return &monitor->currentMode; 00035 48 8b c3 mov rax, rbx 00038 48 8b 5c 24 20 mov rbx, QWORD PTR [rsp+32] ; 457 : } 0003d 48 83 c4 28 add rsp, 40 ; 00000028H 00041 c3 ret 0 glfwGetVideoMode ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwSetGamma _TEXT SEGMENT ramp$ = 32 __$ArrayPad$ = 64 handle$ = 160 gamma$ = 168 glfwSetGamma PROC ; COMDAT ; 460 : { $LN47: 00000 40 55 push rbp 00002 48 81 ec 90 00 00 00 sub rsp, 144 ; 00000090H 00009 0f 29 74 24 70 movaps XMMWORD PTR [rsp+112], xmm6 0000e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00015 48 33 c4 xor rax, rsp 00018 48 89 44 24 40 mov QWORD PTR __$ArrayPad$[rsp], rax ; 461 : unsigned int i; ; 462 : unsigned short* values; ; 463 : GLFWgammaramp ramp; ; 464 : const GLFWgammaramp* original; ; 465 : assert(handle != NULL); ; 466 : assert(gamma > 0.f); ; 467 : assert(gamma <= FLT_MAX); ; 468 : ; 469 : _GLFW_REQUIRE_INIT(); 0001d 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00024 0f 28 f1 movaps xmm6, xmm1 00027 48 8b e9 mov rbp, rcx 0002a 75 11 jne SHORT $LN5@glfwSetGam 0002c 33 d2 xor edx, edx 0002e b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00033 e8 00 00 00 00 call _glfwInputError 00038 e9 84 01 00 00 jmp $LN25@glfwSetGam $LN5@glfwSetGam: ; 470 : ; 471 : if (gamma != gamma || gamma <= 0.f || gamma > FLT_MAX) 0003d 0f 2e f6 ucomiss xmm6, xmm6 00040 0f 8a 96 01 00 00 jp $LN7@glfwSetGam 00046 0f 57 c0 xorps xmm0, xmm0 00049 0f 2f c6 comiss xmm0, xmm6 0004c 0f 83 8a 01 00 00 jae $LN7@glfwSetGam 00052 0f 2f 35 00 00 00 00 comiss xmm6, DWORD PTR __real@7f7fffff 00059 0f 87 7d 01 00 00 ja $LN7@glfwSetGam 0005f 48 89 b4 24 88 00 00 00 mov QWORD PTR [rsp+136], rsi ; 474 : return; ; 475 : } ; 476 : ; 477 : original = glfwGetGammaRamp(handle); 00067 e8 00 00 00 00 call glfwGetGammaRamp 0006c 48 8b f0 mov rsi, rax ; 478 : if (!original) 0006f 48 85 c0 test rax, rax 00072 0f 84 41 01 00 00 je $LN43@glfwSetGam ; 479 : return; ; 480 : ; 481 : values = _glfw_calloc(original->size, sizeof(unsigned short)); 00078 8b 48 18 mov ecx, DWORD PTR [rax+24] 0007b ba 02 00 00 00 mov edx, 2 00080 48 89 9c 24 b0 00 00 00 mov QWORD PTR [rsp+176], rbx 00088 48 89 bc 24 80 00 00 00 mov QWORD PTR [rsp+128], rdi 00090 e8 00 00 00 00 call _glfw_calloc ; 482 : ; 483 : for (i = 0; i < original->size; i++) 00095 8b 4e 18 mov ecx, DWORD PTR [rsi+24] 00098 33 db xor ebx, ebx 0009a 48 8b f8 mov rdi, rax 0009d 85 c9 test ecx, ecx 0009f 0f 84 7d 00 00 00 je $LN3@glfwSetGam 000a5 0f 29 7c 24 60 movaps XMMWORD PTR [rsp+96], xmm7 000aa f3 0f 10 3d 00 00 00 00 movss xmm7, DWORD PTR __real@3f800000 000b2 f3 0f 5e fe divss xmm7, xmm6 000b6 f3 0f 10 35 00 00 00 00 movss xmm6, DWORD PTR __real@477fff00 000be 44 0f 29 44 24 50 movaps XMMWORD PTR [rsp+80], xmm8 000c4 f3 44 0f 10 05 00 00 00 00 movss xmm8, DWORD PTR __real@3f000000 000cd 0f 1f 00 npad 3 $LL4@glfwSetGam: ; 484 : { ; 485 : float value; ; 486 : ; 487 : // Calculate intensity ; 488 : value = i / (float) (original->size - 1); 000d0 0f 57 c0 xorps xmm0, xmm0 000d3 8b c3 mov eax, ebx 000d5 0f 57 c9 xorps xmm1, xmm1 000d8 ff c9 dec ecx 000da f3 48 0f 2a c0 cvtsi2ss xmm0, rax 000df f3 48 0f 2a c9 cvtsi2ss xmm1, rcx 000e4 f3 0f 5e c1 divss xmm0, xmm1 ; 489 : // Apply gamma curve ; 490 : value = powf(value, 1.f / gamma) * 65535.f + 0.5f; 000e8 0f 28 cf movaps xmm1, xmm7 000eb e8 00 00 00 00 call powf 000f0 f3 0f 59 c6 mulss xmm0, xmm6 000f4 f3 41 0f 58 c0 addss xmm0, xmm8 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 249 : if (a != a) 000f9 0f 2e c0 ucomiss xmm0, xmm0 000fc 7a 05 jp SHORT $LN45@glfwSetGam ; 250 : return b; ; 251 : else if (b != b) ; 252 : return a; ; 253 : else if (a < b) 000fe 0f 2f f0 comiss xmm6, xmm0 00101 77 03 ja SHORT $LN16@glfwSetGam $LN45@glfwSetGam: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 494 : values[i] = (unsigned short) value; 00103 0f 28 c6 movaps xmm0, xmm6 $LN16@glfwSetGam: 00106 f3 0f 2c c8 cvttss2si ecx, xmm0 0010a 66 89 0c 5f mov WORD PTR [rdi+rbx*2], cx 0010e ff c3 inc ebx 00110 8b 4e 18 mov ecx, DWORD PTR [rsi+24] 00113 3b d9 cmp ebx, ecx 00115 72 b9 jb SHORT $LL4@glfwSetGam ; 482 : ; 483 : for (i = 0; i < original->size; i++) 00117 44 0f 28 44 24 50 movaps xmm8, XMMWORD PTR [rsp+80] 0011d 0f 28 7c 24 60 movaps xmm7, XMMWORD PTR [rsp+96] $LN3@glfwSetGam: ; 530 : _GLFW_REQUIRE_INIT(); 00122 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 ; 495 : } ; 496 : ; 497 : ramp.red = values; ; 498 : ramp.green = values; ; 499 : ramp.blue = values; ; 500 : ramp.size = original->size; 00129 48 8b 9c 24 b0 00 00 00 mov rbx, QWORD PTR [rsp+176] 00131 48 89 7c 24 20 mov QWORD PTR ramp$[rsp], rdi 00136 48 89 7c 24 28 mov QWORD PTR ramp$[rsp+8], rdi 0013b 48 89 7c 24 30 mov QWORD PTR ramp$[rsp+16], rdi 00140 44 8b 46 18 mov r8d, DWORD PTR [rsi+24] 00144 44 89 44 24 38 mov DWORD PTR ramp$[rsp+24], r8d ; 530 : _GLFW_REQUIRE_INIT(); 00149 75 0e jne SHORT $LN19@glfwSetGam 0014b 33 d2 xor edx, edx 0014d b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00152 e8 00 00 00 00 call _glfwInputError 00157 eb 43 jmp SHORT $LN18@glfwSetGam $LN19@glfwSetGam: ; 531 : ; 532 : if (ramp->size <= 0) 00159 45 85 c0 test r8d, r8d 0015c 75 13 jne SHORT $LN20@glfwSetGam ; 533 : { ; 534 : _glfwInputError(GLFW_INVALID_VALUE, 0015e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BL@OAABODH@Invalid?5gamma?5ramp?5size?5?$CFi@ 00165 b9 04 00 01 00 mov ecx, 65540 ; 00010004H 0016a e8 00 00 00 00 call _glfwInputError ; 535 : "Invalid gamma ramp size %i", ; 536 : ramp->size); ; 537 : return; 0016f eb 2b jmp SHORT $LN18@glfwSetGam $LN20@glfwSetGam: ; 538 : } ; 539 : ; 540 : if (!monitor->originalRamp.size) 00171 83 bd d8 00 00 00 00 cmp DWORD PTR [rbp+216], 0 00178 75 14 jne SHORT $LN22@glfwSetGam ; 541 : { ; 542 : if (!_glfw.platform.getGammaRamp(monitor, &monitor->originalRamp)) 0017a 48 8d 95 c0 00 00 00 lea rdx, QWORD PTR [rbp+192] 00181 48 8b cd mov rcx, rbp 00184 ff 15 00 01 00 00 call QWORD PTR _glfw+256 0018a 85 c0 test eax, eax 0018c 74 0e je SHORT $LN18@glfwSetGam $LN22@glfwSetGam: ; 543 : return; ; 544 : } ; 545 : ; 546 : _glfw.platform.setGammaRamp(monitor, ramp); 0018e 48 8d 54 24 20 lea rdx, QWORD PTR ramp$[rsp] 00193 48 8b cd mov rcx, rbp 00196 ff 15 08 01 00 00 call QWORD PTR _glfw+264 $LN18@glfwSetGam: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0019c 48 85 ff test rdi, rdi 0019f 74 10 je SHORT $LN44@glfwSetGam ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 001a1 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 001a8 48 8b cf mov rcx, rdi 001ab ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN44@glfwSetGam: 001b1 48 8b bc 24 80 00 00 00 mov rdi, QWORD PTR [rsp+128] $LN43@glfwSetGam: 001b9 48 8b b4 24 88 00 00 00 mov rsi, QWORD PTR [rsp+136] $LN25@glfwSetGam: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 504 : } 001c1 48 8b 4c 24 40 mov rcx, QWORD PTR __$ArrayPad$[rsp] 001c6 48 33 cc xor rcx, rsp 001c9 e8 00 00 00 00 call __security_check_cookie 001ce 0f 28 74 24 70 movaps xmm6, XMMWORD PTR [rsp+112] 001d3 48 81 c4 90 00 00 00 add rsp, 144 ; 00000090H 001da 5d pop rbp 001db c3 ret 0 $LN7@glfwSetGam: ; 472 : { ; 473 : _glfwInputError(GLFW_INVALID_VALUE, "Invalid gamma value %f", gamma); 001dc 0f 57 d2 xorps xmm2, xmm2 001df 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BH@BAPIEFAH@Invalid?5gamma?5value?5?$CFf@ 001e6 f3 0f 5a d6 cvtss2sd xmm2, xmm6 001ea b9 04 00 01 00 mov ecx, 65540 ; 00010004H 001ef 66 49 0f 7e d0 movq r8, xmm2 001f4 e8 00 00 00 00 call _glfwInputError 001f9 eb c6 jmp SHORT $LN25@glfwSetGam glfwSetGamma ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwGetGammaRamp _TEXT SEGMENT handle$ = 48 glfwGetGammaRamp PROC ; COMDAT ; 507 : { $LN21: 00000 40 57 push rdi 00002 48 83 ec 20 sub rsp, 32 ; 00000020H ; 508 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 509 : assert(monitor != NULL); ; 510 : ; 511 : _GLFW_REQUIRE_INIT_OR_RETURN(NULL); 00006 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 0000d 48 8b f9 mov rdi, rcx 00010 75 14 jne SHORT $LN2@glfwGetGam 00012 33 d2 xor edx, edx 00014 b9 01 00 01 00 mov ecx, 65537 ; 00010001H 00019 e8 00 00 00 00 call _glfwInputError 0001e 33 c0 xor eax, eax ; 515 : return NULL; ; 516 : ; 517 : return &monitor->currentRamp; ; 518 : } 00020 48 83 c4 20 add rsp, 32 ; 00000020H 00024 5f pop rdi 00025 c3 ret 0 $LN2@glfwGetGam: 00026 48 89 5c 24 30 mov QWORD PTR [rsp+48], rbx ; 512 : ; 513 : _glfwFreeGammaArrays(&monitor->currentRamp); 0002b 48 8d 99 e0 00 00 00 lea rbx, QWORD PTR [rcx+224] ; 214 : _glfw_free(ramp->red); 00032 48 8b 0b mov rcx, QWORD PTR [rbx] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00035 48 85 c9 test rcx, rcx 00038 74 0d je SHORT $LN8@glfwGetGam ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0003a 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00041 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN8@glfwGetGam: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 215 : _glfw_free(ramp->green); 00047 48 8b 4b 08 mov rcx, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0004b 48 85 c9 test rcx, rcx 0004e 74 0d je SHORT $LN11@glfwGetGam ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00050 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00057 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN11@glfwGetGam: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 216 : _glfw_free(ramp->blue); 0005d 48 8b 4b 10 mov rcx, QWORD PTR [rbx+16] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00061 48 85 c9 test rcx, rcx 00064 74 0d je SHORT $LN14@glfwGetGam ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00066 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0006d ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN14@glfwGetGam: 00073 0f 57 c0 xorps xmm0, xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; 514 : if (!_glfw.platform.getGammaRamp(monitor, &monitor->currentRamp)) 00076 48 8b d3 mov rdx, rbx ; 218 : memset(ramp, 0, sizeof(GLFWgammaramp)); 00079 0f 11 03 movups XMMWORD PTR [rbx], xmm0 ; 514 : if (!_glfw.platform.getGammaRamp(monitor, &monitor->currentRamp)) 0007c 48 8b cf mov rcx, rdi ; 218 : memset(ramp, 0, sizeof(GLFWgammaramp)); 0007f 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0 ; 514 : if (!_glfw.platform.getGammaRamp(monitor, &monitor->currentRamp)) 00083 ff 15 00 01 00 00 call QWORD PTR _glfw+256 00089 33 c9 xor ecx, ecx 0008b 85 c0 test eax, eax 0008d 48 0f 44 d9 cmove rbx, rcx 00091 48 8b c3 mov rax, rbx 00094 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] ; 515 : return NULL; ; 516 : ; 517 : return &monitor->currentRamp; ; 518 : } 00099 48 83 c4 20 add rsp, 32 ; 00000020H 0009d 5f pop rdi 0009e c3 ret 0 glfwGetGammaRamp ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\monitor.c ; COMDAT glfwSetGammaRamp _TEXT SEGMENT handle$ = 48 ramp$ = 56 glfwSetGammaRamp PROC ; COMDAT ; 521 : { $LN11: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 20 sub rsp, 32 ; 00000020H ; 522 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 523 : assert(monitor != NULL); ; 524 : assert(ramp != NULL); ; 525 : assert(ramp->size > 0); ; 526 : assert(ramp->red != NULL); ; 527 : assert(ramp->green != NULL); ; 528 : assert(ramp->blue != NULL); ; 529 : ; 530 : _GLFW_REQUIRE_INIT(); 0000a 83 3d 00 00 00 00 00 cmp DWORD PTR _glfw, 0 00011 48 8b fa mov rdi, rdx 00014 48 8b d9 mov rbx, rcx 00017 75 16 jne SHORT $LN2@glfwSetGam 00019 33 d2 xor edx, edx 0001b b9 01 00 01 00 mov ecx, 65537 ; 00010001H ; 547 : } 00020 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00025 48 83 c4 20 add rsp, 32 ; 00000020H 00029 5f pop rdi ; 522 : _GLFWmonitor* monitor = (_GLFWmonitor*) handle; ; 523 : assert(monitor != NULL); ; 524 : assert(ramp != NULL); ; 525 : assert(ramp->size > 0); ; 526 : assert(ramp->red != NULL); ; 527 : assert(ramp->green != NULL); ; 528 : assert(ramp->blue != NULL); ; 529 : ; 530 : _GLFW_REQUIRE_INIT(); 0002a e9 00 00 00 00 jmp _glfwInputError $LN2@glfwSetGam: ; 531 : ; 532 : if (ramp->size <= 0) 0002f 44 8b 42 18 mov r8d, DWORD PTR [rdx+24] 00033 45 85 c0 test r8d, r8d 00036 75 1b jne SHORT $LN3@glfwSetGam ; 533 : { ; 534 : _glfwInputError(GLFW_INVALID_VALUE, 00038 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BL@OAABODH@Invalid?5gamma?5ramp?5size?5?$CFi@ 0003f b9 04 00 01 00 mov ecx, 65540 ; 00010004H ; 547 : } 00044 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00049 48 83 c4 20 add rsp, 32 ; 00000020H 0004d 5f pop rdi ; 533 : { ; 534 : _glfwInputError(GLFW_INVALID_VALUE, 0004e e9 00 00 00 00 jmp _glfwInputError $LN3@glfwSetGam: ; 535 : "Invalid gamma ramp size %i", ; 536 : ramp->size); ; 537 : return; ; 538 : } ; 539 : ; 540 : if (!monitor->originalRamp.size) 00053 83 b9 d8 00 00 00 00 cmp DWORD PTR [rcx+216], 0 0005a 75 11 jne SHORT $LN5@glfwSetGam ; 541 : { ; 542 : if (!_glfw.platform.getGammaRamp(monitor, &monitor->originalRamp)) 0005c 48 8d 91 c0 00 00 00 lea rdx, QWORD PTR [rcx+192] 00063 ff 15 00 01 00 00 call QWORD PTR _glfw+256 00069 85 c0 test eax, eax 0006b 74 0c je SHORT $LN1@glfwSetGam $LN5@glfwSetGam: ; 543 : return; ; 544 : } ; 545 : ; 546 : _glfw.platform.setGammaRamp(monitor, ramp); 0006d 48 8b d7 mov rdx, rdi 00070 48 8b cb mov rcx, rbx 00073 ff 15 08 01 00 00 call QWORD PTR _glfw+264 $LN1@glfwSetGam: ; 547 : } 00079 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0007e 48 83 c4 20 add rsp, 32 ; 00000020H 00082 5f pop rdi 00083 c3 ret 0 glfwSetGammaRamp ENDP _TEXT ENDS END