; Listing generated by Microsoft (R) Optimizing Compiler Version 19.37.32824.0 include listing.inc INCLUDELIB OLDNAMES PUBLIC ??_C@_0N@JENFOGFI@XInput?5Wheel@ ; `string' PUBLIC ??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@ ; `string' PUBLIC ??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@ ; `string' PUBLIC ??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@ ; `string' PUBLIC ??_C@_0O@IFDGNEHH@XInput?5Guitar@ ; `string' PUBLIC ??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@ ; `string' PUBLIC ??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@ ; `string' PUBLIC ??_C@_0BA@EPLGABLH@Xbox?5Controller@ ; `string' PUBLIC ??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@ ; `string' PUBLIC ??_C@_03HAFBONIK@IG_@ ; `string' PUBLIC ??_C@_0BP@OHJGLFIP@Win32?3?5Failed?5to?5create?5device@ ; `string' PUBLIC ??_C@_0CI@MMBFOOEA@Win32?3?5Failed?5to?5set?5device?5dat@ ; `string' PUBLIC ??_C@_0CL@JHIPHFAC@Win32?3?5Failed?5to?5query?5device?5c@ ; `string' PUBLIC ??_C@_0CG@JJEBGGIE@Win32?3?5Failed?5to?5set?5device?5axi@ ; `string' PUBLIC ??_C@_0CK@FKJPIIOF@Win32?3?5Failed?5to?5enumerate?5devi@ ; `string' PUBLIC ??_C@_0DA@IIGLKABA@Win32?3?5Failed?5to?5convert?5joysti@ ; `string' PUBLIC ??_C@_06MBFKAACL@PIDVID@ ; `string' PUBLIC ??_C@_0CJ@NMCAPCBP@03000000?$CF02x?$CF02x0000?$CF02x?$CF02x000@ ; `string' PUBLIC ??_C@_0DH@LCNJGHOP@05000000?$CF02x?$CF02x?$CF02x?$CF02x?$CF02x?$CF02@ ; `string' PUBLIC ??_C@_0CD@CBFNHKPK@78696e707574?$CF02x000000000000000@ ; `string' PUBLIC ??_C@_0CJ@HDJDHLNO@Failed?5to?5enumerate?5DirectInput@ ; `string' PUBLIC ??_C@_0CC@MGDCJJKB@Win32?3?5Failed?5to?5create?5interfa@ ; `string' PUBLIC ??_C@_07LDLFNPGN@Windows@ ; `string' PUBLIC ??_C@_0N@OJEJPFOD@504944564944@ ; `string' PUBLIC ??_C@_0CB@BIHPPBFK@03000000?$CF?44s0000?$CF?44s00000000000@ ; `string' EXTRN __imp_GetRawInputDeviceInfoA:PROC EXTRN __imp_GetRawInputDeviceList:PROC _glfwObjectDataFormats DQ FLAT:_glfw_GUID_XAxis DD 00H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_YAxis DD 04H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_ZAxis DD 08H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_RxAxis DD 0cH DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_RyAxis DD 010H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_RzAxis DD 014H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_Slider DD 018H DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_Slider DD 01cH DD 080ffff03H DD 0100H ORG $+4 DQ FLAT:_glfw_GUID_POV DD 020H DD 080ffff10H DD 00H ORG $+4 DQ FLAT:_glfw_GUID_POV DD 024H DD 080ffff10H DD 00H ORG $+4 DQ FLAT:_glfw_GUID_POV DD 028H DD 080ffff10H DD 00H ORG $+4 DQ FLAT:_glfw_GUID_POV DD 02cH DD 080ffff10H DD 00H ORG $+4 DQ 0000000000000000H DD 030H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 031H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 032H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 033H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 034H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 035H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 036H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 037H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 038H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 039H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03aH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03bH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03cH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03dH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03eH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 03fH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 040H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 041H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 042H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 043H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 044H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 045H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 046H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 047H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 048H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 049H DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04aH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04bH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04cH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04dH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04eH DD 080ffff0cH DD 00H ORG $+4 DQ 0000000000000000H DD 04fH DD 080ffff0cH DD 00H ORG $+4 _DATA ENDS ; COMDAT ??_C@_0CB@BIHPPBFK@03000000?$CF?44s0000?$CF?44s00000000000@ CONST SEGMENT ??_C@_0CB@BIHPPBFK@03000000?$CF?44s0000?$CF?44s00000000000@ DB '03000000%' DB '.4s0000%.4s000000000000', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@OJEJPFOD@504944564944@ CONST SEGMENT ??_C@_0N@OJEJPFOD@504944564944@ DB '504944564944', 00H ; `string' CONST ENDS ; COMDAT ??_C@_07LDLFNPGN@Windows@ CONST SEGMENT ??_C@_07LDLFNPGN@Windows@ DB 'Windows', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CC@MGDCJJKB@Win32?3?5Failed?5to?5create?5interfa@ CONST SEGMENT ??_C@_0CC@MGDCJJKB@Win32?3?5Failed?5to?5create?5interfa@ DB 'Win32: Faile' DB 'd to create interface', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CJ@HDJDHLNO@Failed?5to?5enumerate?5DirectInput@ CONST SEGMENT ??_C@_0CJ@HDJDHLNO@Failed?5to?5enumerate?5DirectInput@ DB 'Failed to enum' DB 'erate DirectInput8 devices', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CD@CBFNHKPK@78696e707574?$CF02x000000000000000@ CONST SEGMENT ??_C@_0CD@CBFNHKPK@78696e707574?$CF02x000000000000000@ DB '78696e707574%0' DB '2x000000000000000000', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0DH@LCNJGHOP@05000000?$CF02x?$CF02x?$CF02x?$CF02x?$CF02x?$CF02@ CONST SEGMENT ??_C@_0DH@LCNJGHOP@05000000?$CF02x?$CF02x?$CF02x?$CF02x?$CF02x?$CF02@ DB '0' DB '5000000%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x00', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CJ@NMCAPCBP@03000000?$CF02x?$CF02x0000?$CF02x?$CF02x000@ CONST SEGMENT ??_C@_0CJ@NMCAPCBP@03000000?$CF02x?$CF02x0000?$CF02x?$CF02x000@ DB '03000' DB '000%02x%02x0000%02x%02x000000000000', 00H ; `string' CONST ENDS ; COMDAT ??_C@_06MBFKAACL@PIDVID@ CONST SEGMENT ??_C@_06MBFKAACL@PIDVID@ DB 'PIDVID', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0DA@IIGLKABA@Win32?3?5Failed?5to?5convert?5joysti@ CONST SEGMENT ??_C@_0DA@IIGLKABA@Win32?3?5Failed?5to?5convert?5joysti@ DB 'Win32: Faile' DB 'd to convert joystick name to UTF-8', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CK@FKJPIIOF@Win32?3?5Failed?5to?5enumerate?5devi@ CONST SEGMENT ??_C@_0CK@FKJPIIOF@Win32?3?5Failed?5to?5enumerate?5devi@ DB 'Win32: Faile' DB 'd to enumerate device objects', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CG@JJEBGGIE@Win32?3?5Failed?5to?5set?5device?5axi@ CONST SEGMENT ??_C@_0CG@JJEBGGIE@Win32?3?5Failed?5to?5set?5device?5axi@ DB 'Win32: Fail' DB 'ed to set device axis mode', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CL@JHIPHFAC@Win32?3?5Failed?5to?5query?5device?5c@ CONST SEGMENT ??_C@_0CL@JHIPHFAC@Win32?3?5Failed?5to?5query?5device?5c@ DB 'Win32: Fail' DB 'ed to query device capabilities', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0CI@MMBFOOEA@Win32?3?5Failed?5to?5set?5device?5dat@ CONST SEGMENT ??_C@_0CI@MMBFOOEA@Win32?3?5Failed?5to?5set?5device?5dat@ DB 'Win32: Fail' DB 'ed to set device data format', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BP@OHJGLFIP@Win32?3?5Failed?5to?5create?5device@ CONST SEGMENT ??_C@_0BP@OHJGLFIP@Win32?3?5Failed?5to?5create?5device@ DB 'Win32: Failed' DB ' to create device', 00H ; `string' CONST ENDS ; COMDAT ??_C@_03HAFBONIK@IG_@ CONST SEGMENT ??_C@_03HAFBONIK@IG_@ DB 'IG_', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@ CONST SEGMENT ??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@ DB 'Unknown XInput Device', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@EPLGABLH@Xbox?5Controller@ CONST SEGMENT ??_C@_0BA@EPLGABLH@Xbox?5Controller@ DB 'Xbox Controller', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@ CONST SEGMENT ??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@ DB 'Wireless Xbox Controll' DB 'er', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@ CONST SEGMENT ??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@ DB 'XInput Drum Kit', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0O@IFDGNEHH@XInput?5Guitar@ CONST SEGMENT ??_C@_0O@IFDGNEHH@XInput?5Guitar@ DB 'XInput Guitar', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@ CONST SEGMENT ??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@ DB 'XInput Dance Pad', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@ CONST SEGMENT ??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@ DB 'XInput Flight Stick', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@ CONST SEGMENT ??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@ DB 'XInput Arcade Stick', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0N@JENFOGFI@XInput?5Wheel@ CONST SEGMENT ??_C@_0N@JENFOGFI@XInput?5Wheel@ DB 'XInput Wheel', 00H ; `string' _glfw_GUID_XAxis DD 0a36d02e0H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_GUID_RxAxis DD 0a36d02f4H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_GUID_YAxis DD 0a36d02e1H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfwDataFormat DD 020H DD 018H DD 02H DD 050H DD 02cH ORG $+4 DQ FLAT:_glfwObjectDataFormats _glfw_GUID_RzAxis DD 0a36d02e3H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_GUID_ZAxis DD 0a36d02e2H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_GUID_Slider DD 0a36d02e4H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_IID_IDirectInput8W DD 0bf798031H DW 0483aH DW 04da2H DB 0aaH DB 099H DB 05dH DB 064H DB 0edH DB 036H DB 097H DB 00H _glfw_GUID_POV DD 0a36d02f2H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H _glfw_GUID_RyAxis DD 0a36d02f5H DW 0c9f3H DW 011cfH DB 0bfH DB 0c7H DB 044H DB 045H DB 053H DB 054H DB 00H DB 00H PUBLIC sprintf PUBLIC _vsprintf_l PUBLIC _vsnprintf_l PUBLIC _glfwPollJoystickWin32 PUBLIC _glfwInitJoysticksWin32 PUBLIC _glfwDetectJoystickConnectionWin32 PUBLIC _glfwTerminateJoysticksWin32 PUBLIC _glfwDetectJoystickDisconnectionWin32 PUBLIC _glfwGetMappingNameWin32 PUBLIC _glfwUpdateGamepadGUIDWin32 ; COMDAT pdata pdata SEGMENT $pdata$deviceCallback DD imagerel deviceCallback DD imagerel deviceCallback+1128 DD imagerel $unwind$deviceCallback pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$deviceObjectCallback DD imagerel deviceObjectCallback DD imagerel deviceObjectCallback+517 DD imagerel $unwind$deviceObjectCallback pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$closeJoystick DD imagerel closeJoystick DD imagerel closeJoystick+222 DD imagerel $unwind$closeJoystick pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$supportsXInput DD imagerel supportsXInput DD imagerel supportsXInput+243 DD imagerel $unwind$supportsXInput pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$0$supportsXInput DD imagerel supportsXInput+243 DD imagerel supportsXInput+467 DD imagerel $chain$0$supportsXInput pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$1$supportsXInput DD imagerel supportsXInput+467 DD imagerel supportsXInput+495 DD imagerel $chain$1$supportsXInput pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$sprintf DD imagerel $LN8 DD imagerel $LN8+94 DD imagerel $unwind$sprintf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vsprintf_l DD imagerel $LN6 DD imagerel $LN6+93 DD imagerel $unwind$_vsprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vsnprintf_l DD imagerel $LN4 DD imagerel $LN4+85 DD imagerel $unwind$_vsnprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwPollJoystickWin32 DD imagerel $LN86 DD imagerel $LN86+229 DD imagerel $unwind$_glfwPollJoystickWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$3$_glfwPollJoystickWin32 DD imagerel $LN86+229 DD imagerel $LN86+600 DD imagerel $chain$3$_glfwPollJoystickWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$4$_glfwPollJoystickWin32 DD imagerel $LN86+600 DD imagerel $LN86+1201 DD imagerel $chain$4$_glfwPollJoystickWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwInitJoysticksWin32 DD imagerel $LN6 DD imagerel $LN6+98 DD imagerel $unwind$_glfwInitJoysticksWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwDetectJoystickConnectionWin32 DD imagerel $LN56 DD imagerel $LN56+39 DD imagerel $unwind$_glfwDetectJoystickConnectionWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$6$_glfwDetectJoystickConnectionWin32 DD imagerel $LN56+39 DD imagerel $LN56+474 DD imagerel $chain$6$_glfwDetectJoystickConnectionWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$7$_glfwDetectJoystickConnectionWin32 DD imagerel $LN56+474 DD imagerel $LN56+588 DD imagerel $chain$7$_glfwDetectJoystickConnectionWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwTerminateJoysticksWin32 DD imagerel $LN43 DD imagerel $LN43+306 DD imagerel $unwind$_glfwTerminateJoysticksWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwDetectJoystickDisconnectionWin32 DD imagerel $LN71 DD imagerel $LN71+267 DD imagerel $unwind$_glfwDetectJoystickDisconnectionWin32 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_glfwUpdateGamepadGUIDWin32 DD imagerel $LN6 DD imagerel $LN6+106 DD imagerel $unwind$_glfwUpdateGamepadGUIDWin32 ; COMDAT xdata xdata SEGMENT $unwind$_glfwUpdateGamepadGUIDWin32 DD 021519H DD 030029206H DD imagerel __GSHandlerCheck DD 048H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwDetectJoystickDisconnectionWin32 DD 051f19H DD 014340dH DD 012010dH DD 07006H DD imagerel __GSHandlerCheck DD 080H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwTerminateJoysticksWin32 DD 081401H DD 086414H DD 075414H DD 063414H DD 070103214H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$7$_glfwDetectJoystickConnectionWin32 DD 021H DD imagerel $LN56 DD imagerel $LN56+39 DD imagerel $unwind$_glfwDetectJoystickConnectionWin32 xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$6$_glfwDetectJoystickConnectionWin32 DD 0e4421H DD 010f444H DD 011e436H DD 012c42bH DD 0177420H DD 0166415H DD 015540aH DD 0143404H DD imagerel $LN56 DD imagerel $LN56+39 DD imagerel $unwind$_glfwDetectJoystickConnectionWin32 xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwDetectJoystickConnectionWin32 DD 021919H DD 013010aH DD imagerel __GSHandlerCheck DD 070H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwInitJoysticksWin32 DD 010401H DD 06204H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$4$_glfwPollJoystickWin32 DD 021H DD imagerel $LN86 DD imagerel $LN86+229 DD imagerel $unwind$_glfwPollJoystickWin32 xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$3$_glfwPollJoystickWin32 DD 082b21H DD 018f42bH DD 021e420H DD 020d413H DD 01f6408H DD imagerel $LN86 DD imagerel $LN86+229 DD imagerel $unwind$_glfwPollJoystickWin32 xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_glfwPollJoystickWin32 DD 062019H DD 0190112H DD 07004c006H DD 050023003H DD imagerel __GSHandlerCheck DD 0b0H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_vsnprintf_l DD 040a01H DD 08340aH DD 07006520aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$_vsprintf_l DD 060f01H DD 09640fH DD 08340fH DD 0700b520fH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$sprintf DD 041601H DD 070125216H DD 030106011H xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$1$supportsXInput DD 021H DD imagerel supportsXInput DD imagerel supportsXInput+243 DD imagerel $unwind$supportsXInput xdata ENDS ; COMDAT xdata xdata SEGMENT $chain$0$supportsXInput DD 020821H DD 02e6408H DD imagerel supportsXInput DD imagerel supportsXInput+243 DD imagerel $unwind$supportsXInput xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$supportsXInput DD 092a19H DD 0317418H DD 0305418H DD 02f3418H DD 02c0118H DD 0e011H DD imagerel __GSHandlerCheck DD 0150H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$closeJoystick DD 020601H DD 030023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$deviceObjectCallback DD 061e19H DD 0d640fH DD 0c340fH DD 0700b720fH DD imagerel __GSHandlerCheck DD 038H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$deviceCallback DD 0b3919H DD 04a7439H DD 0496432H DD 04b341aH DD 044011aH DD 0e00af00cH DD 05008H DD imagerel __GSHandlerCheck DD 0210H ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwUpdateGamepadGUIDWin32 _TEXT SEGMENT original$1 = 32 __$ArrayPad$ = 72 guid$ = 96 _glfwUpdateGamepadGUIDWin32 PROC ; COMDAT ; 751 : { $LN6: 00000 40 53 push rbx 00002 48 83 ec 50 sub rsp, 80 ; 00000050H 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 48 mov QWORD PTR __$ArrayPad$[rsp], rax 00015 48 8b d9 mov rbx, rcx ; 752 : if (strcmp(guid + 20, "504944564944") == 0) 00018 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0N@OJEJPFOD@504944564944@ 0001f 48 83 c1 14 add rcx, 20 00023 e8 00 00 00 00 call strcmp 00028 85 c0 test eax, eax 0002a 75 2b jne SHORT $LN2@glfwUpdate ; 753 : { ; 754 : char original[33]; ; 755 : strncpy(original, guid, sizeof(original) - 1); 0002c 44 8d 40 20 lea r8d, QWORD PTR [rax+32] 00030 48 8b d3 mov rdx, rbx 00033 48 8d 4c 24 20 lea rcx, QWORD PTR original$1[rsp] 00038 ff 15 00 00 00 00 call QWORD PTR __imp_strncpy ; 756 : sprintf(guid, "03000000%.4s0000%.4s000000000000", 0003e 4c 8d 4c 24 24 lea r9, QWORD PTR original$1[rsp+4] 00043 48 8b cb mov rcx, rbx 00046 4c 8d 44 24 20 lea r8, QWORD PTR original$1[rsp] 0004b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CB@BIHPPBFK@03000000?$CF?44s0000?$CF?44s00000000000@ 00052 e8 00 00 00 00 call sprintf $LN2@glfwUpdate: ; 757 : original, original + 4); ; 758 : } ; 759 : } 00057 48 8b 4c 24 48 mov rcx, QWORD PTR __$ArrayPad$[rsp] 0005c 48 33 cc xor rcx, rsp 0005f e8 00 00 00 00 call __security_check_cookie 00064 48 83 c4 50 add rsp, 80 ; 00000050H 00068 5b pop rbx 00069 c3 ret 0 _glfwUpdateGamepadGUIDWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwGetMappingNameWin32 _TEXT SEGMENT _glfwGetMappingNameWin32 PROC ; COMDAT ; 747 : return "Windows"; 00000 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_07LDLFNPGN@Windows@ ; 748 : } 00007 c3 ret 0 _glfwGetMappingNameWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwDetectJoystickDisconnectionWin32 _TEXT SEGMENT state$1 = 32 xis$2 = 112 __$ArrayPad$ = 128 _glfwDetectJoystickDisconnectionWin32 PROC ; COMDAT ; 559 : { $LN71: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 81 ec 90 00 00 00 sub rsp, 144 ; 00000090H 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 80 00 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax 0001f 48 8d 1d 90 08 00 00 lea rbx, OFFSET FLAT:_glfw+2192 00026 48 8d 3d 70 19 00 00 lea rdi, OFFSET FLAT:_glfw+6512 0002d 0f 1f 00 npad 3 $LL4@glfwDetect: ; 563 : { ; 564 : _GLFWjoystick* js = _glfw.joysticks + jid; ; 565 : if (js->connected) 00030 83 bb 04 ff ff ff 00 cmp DWORD PTR [rbx-252], 0 00037 0f 84 9d 00 00 00 je $LN2@glfwDetect ; 608 : if (js->win32.device) 0003d 48 8b 0b mov rcx, QWORD PTR [rbx] 00040 48 85 c9 test rcx, rcx 00043 74 74 je SHORT $LN16@glfwDetect 00045 0f 57 c0 xorps xmm0, xmm0 ; 609 : { ; 610 : int i, ai = 0, bi = 0, pi = 0; ; 611 : HRESULT result; ; 612 : DIJOYSTATE state = {0}; 00048 0f 11 44 24 20 movups XMMWORD PTR state$1[rsp], xmm0 0004d 0f 11 44 24 30 movups XMMWORD PTR state$1[rsp+16], xmm0 00052 0f 11 44 24 40 movups XMMWORD PTR state$1[rsp+32], xmm0 00057 0f 11 44 24 50 movups XMMWORD PTR state$1[rsp+48], xmm0 0005c 0f 11 44 24 60 movups XMMWORD PTR state$1[rsp+64], xmm0 ; 613 : ; 614 : IDirectInputDevice8_Poll(js->win32.device); 00061 48 8b 01 mov rax, QWORD PTR [rcx] 00064 ff 90 c8 00 00 00 call QWORD PTR [rax+200] ; 615 : result = IDirectInputDevice8_GetDeviceState(js->win32.device, 0006a 48 8b 0b mov rcx, QWORD PTR [rbx] 0006d 4c 8d 44 24 20 lea r8, QWORD PTR state$1[rsp] 00072 ba 50 00 00 00 mov edx, 80 ; 00000050H 00077 48 8b 01 mov rax, QWORD PTR [rcx] 0007a ff 50 48 call QWORD PTR [rax+72] ; 616 : sizeof(state), ; 617 : &state); ; 618 : if (result == DIERR_NOTACQUIRED || result == DIERR_INPUTLOST) 0007d 3d 0c 00 07 80 cmp eax, -2147024884 ; ffffffff8007000cH 00082 74 07 je SHORT $LN19@glfwDetect 00084 3d 1e 00 07 80 cmp eax, -2147024866 ; ffffffff8007001eH 00089 75 28 jne SHORT $LN18@glfwDetect $LN19@glfwDetect: ; 619 : { ; 620 : IDirectInputDevice8_Acquire(js->win32.device); 0008b 48 8b 0b mov rcx, QWORD PTR [rbx] 0008e 48 8b 01 mov rax, QWORD PTR [rcx] 00091 ff 50 38 call QWORD PTR [rax+56] ; 621 : IDirectInputDevice8_Poll(js->win32.device); 00094 48 8b 0b mov rcx, QWORD PTR [rbx] 00097 48 8b 01 mov rax, QWORD PTR [rcx] 0009a ff 90 c8 00 00 00 call QWORD PTR [rax+200] ; 622 : result = IDirectInputDevice8_GetDeviceState(js->win32.device, 000a0 48 8b 0b mov rcx, QWORD PTR [rbx] 000a3 4c 8d 44 24 20 lea r8, QWORD PTR state$1[rsp] 000a8 ba 50 00 00 00 mov edx, 80 ; 00000050H 000ad 48 8b 01 mov rax, QWORD PTR [rcx] 000b0 ff 50 48 call QWORD PTR [rax+72] $LN18@glfwDetect: ; 623 : sizeof(state), ; 624 : &state); ; 625 : } ; 626 : ; 627 : if (FAILED(result)) 000b3 85 c0 test eax, eax 000b5 79 23 jns SHORT $LN2@glfwDetect ; 628 : { ; 629 : closeJoystick(js); ; 630 : return GLFW_FALSE; 000b7 eb 15 jmp SHORT $LN69@glfwDetect $LN16@glfwDetect: ; 631 : } ; 632 : ; 633 : if (mode == _GLFW_POLL_PRESENCE) ; 634 : return GLFW_TRUE; ; 635 : ; 636 : for (i = 0; i < js->win32.objectCount; i++) ; 637 : { ; 638 : const void* data = (char*) &state + js->win32.objects[i].offset; ; 639 : ; 640 : switch (js->win32.objects[i].type) ; 641 : { ; 642 : case _GLFW_TYPE_AXIS: ; 643 : case _GLFW_TYPE_SLIDER: ; 644 : { ; 645 : const float value = (*((LONG*) data) + 0.5f) / 32767.5f; ; 646 : _glfwInputJoystickAxis(js, ai, value); ; 647 : ai++; ; 648 : break; ; 649 : } ; 650 : ; 651 : case _GLFW_TYPE_BUTTON: ; 652 : { ; 653 : const char value = (*((BYTE*) data) & 0x80) != 0; ; 654 : _glfwInputJoystickButton(js, bi, value); ; 655 : bi++; ; 656 : break; ; 657 : } ; 658 : ; 659 : case _GLFW_TYPE_POV: ; 660 : { ; 661 : const int states[9] = ; 662 : { ; 663 : GLFW_HAT_UP, ; 664 : GLFW_HAT_RIGHT_UP, ; 665 : GLFW_HAT_RIGHT, ; 666 : GLFW_HAT_RIGHT_DOWN, ; 667 : GLFW_HAT_DOWN, ; 668 : GLFW_HAT_LEFT_DOWN, ; 669 : GLFW_HAT_LEFT, ; 670 : GLFW_HAT_LEFT_UP, ; 671 : GLFW_HAT_CENTERED ; 672 : }; ; 673 : ; 674 : // Screams of horror are appropriate at this point ; 675 : int stateIndex = LOWORD(*(DWORD*) data) / (45 * DI_DEGREES); ; 676 : if (stateIndex < 0 || stateIndex > 8) ; 677 : stateIndex = 8; ; 678 : ; 679 : _glfwInputJoystickHat(js, pi, states[stateIndex]); ; 680 : pi++; ; 681 : break; ; 682 : } ; 683 : } ; 684 : } ; 685 : } ; 686 : else ; 687 : { ; 688 : int i, dpad = 0; ; 689 : DWORD result; ; 690 : XINPUT_STATE xis; ; 691 : const WORD buttons[10] = ; 692 : { ; 693 : XINPUT_GAMEPAD_A, ; 694 : XINPUT_GAMEPAD_B, ; 695 : XINPUT_GAMEPAD_X, ; 696 : XINPUT_GAMEPAD_Y, ; 697 : XINPUT_GAMEPAD_LEFT_SHOULDER, ; 698 : XINPUT_GAMEPAD_RIGHT_SHOULDER, ; 699 : XINPUT_GAMEPAD_BACK, ; 700 : XINPUT_GAMEPAD_START, ; 701 : XINPUT_GAMEPAD_LEFT_THUMB, ; 702 : XINPUT_GAMEPAD_RIGHT_THUMB ; 703 : }; ; 704 : ; 705 : result = XInputGetState(js->win32.index, &xis); 000b9 8b 4b 08 mov ecx, DWORD PTR [rbx+8] 000bc 48 8d 54 24 70 lea rdx, QWORD PTR xis$2[rsp] 000c1 ff 15 90 29 00 00 call QWORD PTR _glfw+10640 ; 706 : if (result != ERROR_SUCCESS) 000c7 3d 8f 04 00 00 cmp eax, 1167 ; 0000048fH 000cc 75 0c jne SHORT $LN2@glfwDetect $LN69@glfwDetect: ; 560 : int jid; ; 561 : ; 562 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++) 000ce 48 8d 8b 00 ff ff ff lea rcx, QWORD PTR [rbx-256] 000d5 e8 00 00 00 00 call closeJoystick $LN2@glfwDetect: 000da 48 81 c3 20 01 00 00 add rbx, 288 ; 00000120H 000e1 48 3b df cmp rbx, rdi 000e4 0f 8e 46 ff ff ff jle $LL4@glfwDetect ; 566 : _glfwPollJoystickWin32(js, _GLFW_POLL_PRESENCE); ; 567 : } ; 568 : } 000ea 48 8b 8c 24 80 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp] 000f2 48 33 cc xor rcx, rsp 000f5 e8 00 00 00 00 call __security_check_cookie 000fa 48 8b 9c 24 a0 00 00 00 mov rbx, QWORD PTR [rsp+160] 00102 48 81 c4 90 00 00 00 add rsp, 144 ; 00000090H 00109 5f pop rdi 0010a c3 ret 0 _glfwDetectJoystickDisconnectionWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwTerminateJoysticksWin32 _TEXT SEGMENT _glfwTerminateJoysticksWin32 PROC ; COMDAT ; 596 : { $LN43: 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 33 ff xor edi, edi 00016 48 8d 35 90 08 00 00 lea rsi, OFFSET FLAT:_glfw+2192 0001d 8b df mov ebx, edi 0001f 48 bd 39 8e e3 38 8e e3 38 0e mov rbp, 1024819115206086201 ; 0e38e38e38e38e39H 00029 0f 1f 80 00 00 00 00 npad 7 $LL4@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 426 : js->connected = GLFW_FALSE; 00030 89 bc 33 04 ff ff ff mov DWORD PTR [rbx+rsi-252], edi ; 427 : ; 428 : if (_glfw.callbacks.joystick) 00037 4c 8b 05 70 1b 00 00 mov r8, QWORD PTR _glfw+7024 0003e 4d 85 c0 test r8, r8 00041 74 1f je SHORT $LN14@glfwTermin ; 429 : _glfw.callbacks.joystick((int)(js - _glfw.joysticks), event); 00043 48 8b c5 mov rax, rbp 00046 48 f7 eb imul rbx 00049 48 8b ca mov rcx, rdx 0004c ba 02 00 04 00 mov edx, 262146 ; 00040002H 00051 48 c1 f9 04 sar rcx, 4 00055 48 8b c1 mov rax, rcx 00058 48 c1 e8 3f shr rax, 63 ; 0000003fH 0005c 48 03 c8 add rcx, rax 0005f 41 ff d0 call r8 $LN14@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 263 : if (js->win32.device) 00062 48 8b 0c 33 mov rcx, QWORD PTR [rbx+rsi] 00066 48 85 c9 test rcx, rcx 00069 74 10 je SHORT $LN8@glfwTermin ; 264 : { ; 265 : IDirectInputDevice8_Unacquire(js->win32.device); 0006b 48 8b 01 mov rax, QWORD PTR [rcx] 0006e ff 50 40 call QWORD PTR [rax+64] ; 266 : IDirectInputDevice8_Release(js->win32.device); 00071 48 8b 0c 33 mov rcx, QWORD PTR [rbx+rsi] 00075 48 8b 01 mov rax, QWORD PTR [rcx] 00078 ff 50 10 call QWORD PTR [rax+16] $LN8@glfwTermin: ; 267 : } ; 268 : ; 269 : _glfw_free(js->win32.objects); 0007b 48 8b 4c 33 f0 mov rcx, QWORD PTR [rbx+rsi-16] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 00080 48 85 c9 test rcx, rcx 00083 74 0d je SHORT $LN17@glfwTermin ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00085 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 0008c ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN17@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 540 : _glfw_free(js->axes); 00092 48 8b 8c 33 08 ff ff ff mov rcx, QWORD PTR [rbx+rsi-248] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0009a 48 85 c9 test rcx, rcx 0009d 74 0d je SHORT $LN22@glfwTermin ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0009f 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000a6 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN22@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 541 : _glfw_free(js->buttons); 000ac 48 8b 8c 33 18 ff ff ff mov rcx, QWORD PTR [rbx+rsi-232] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000b4 48 85 c9 test rcx, rcx 000b7 74 0d je SHORT $LN25@glfwTermin ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000b9 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000c0 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN25@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 542 : _glfw_free(js->hats); 000c6 48 8b 8c 33 28 ff ff ff mov rcx, QWORD PTR [rbx+rsi-216] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000ce 48 85 c9 test rcx, rcx 000d1 74 0d je SHORT $LN28@glfwTermin ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000d3 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000da ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN28@glfwTermin: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 543 : memset(js, 0, sizeof(_GLFWjoystick)); 000e0 48 8d 8e 00 ff ff ff lea rcx, QWORD PTR [rsi-256] 000e7 33 d2 xor edx, edx 000e9 48 03 cb add rcx, rbx 000ec 41 b8 20 01 00 00 mov r8d, 288 ; 00000120H 000f2 e8 00 00 00 00 call memset ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 599 : for (jid = GLFW_JOYSTICK_1; jid <= GLFW_JOYSTICK_LAST; jid++) 000f7 48 81 c3 20 01 00 00 add rbx, 288 ; 00000120H 000fe 48 81 fb e0 10 00 00 cmp rbx, 4320 ; 000010e0H 00105 0f 8e 25 ff ff ff jle $LL4@glfwTermin ; 600 : closeJoystick(_glfw.joysticks + jid); ; 601 : ; 602 : if (_glfw.win32.dinput8.api) 0010b 48 8b 0d 78 29 00 00 mov rcx, QWORD PTR _glfw+10616 00112 48 85 c9 test rcx, rcx 00115 74 06 je SHORT $LN5@glfwTermin ; 603 : IDirectInput8_Release(_glfw.win32.dinput8.api); 00117 48 8b 01 mov rax, QWORD PTR [rcx] 0011a ff 50 10 call QWORD PTR [rax+16] $LN5@glfwTermin: ; 604 : } 0011d 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00122 48 8b 6c 24 38 mov rbp, QWORD PTR [rsp+56] 00127 48 8b 74 24 40 mov rsi, QWORD PTR [rsp+64] 0012c 48 83 c4 20 add rsp, 32 ; 00000020H 00130 5f pop rdi 00131 c3 ret 0 _glfwTerminateJoysticksWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwDetectJoystickConnectionWin32 _TEXT SEGMENT xic$1 = 48 guid$2 = 72 __$ArrayPad$ = 112 _glfwDetectJoystickConnectionWin32 PROC ; COMDAT ; 499 : { $LN56: 00000 4c 8b dc mov r11, rsp 00003 48 81 ec 98 00 00 00 sub rsp, 152 ; 00000098H 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 70 mov QWORD PTR __$ArrayPad$[rsp], rax ; 500 : if (_glfw.win32.xinput.instance) 00019 48 83 3d 80 29 00 00 00 cmp QWORD PTR _glfw+10624, 0 00021 0f 84 b3 01 00 00 je $LN3@glfwDetect 00027 49 89 5b 08 mov QWORD PTR [r11+8], rbx ; 504 : for (index = 0; index < XUSER_MAX_COUNT; index++) 0002b 33 db xor ebx, ebx 0002d 49 89 6b 10 mov QWORD PTR [r11+16], rbp ; 505 : { 00031 48 8d 2d 90 08 00 00 lea rbp, OFFSET FLAT:_glfw+2192 00038 49 89 73 18 mov QWORD PTR [r11+24], rsi 0003c 48 8d 35 00 00 00 00 lea rsi, OFFSET FLAT:__ImageBase 00043 49 89 7b 20 mov QWORD PTR [r11+32], rdi 00047 48 8d 3d 70 19 00 00 lea rdi, OFFSET FLAT:_glfw+6512 0004e 4d 89 63 f8 mov QWORD PTR [r11-8], r12 00052 4c 8d 25 00 00 00 00 lea r12, OFFSET FLAT:??_C@_0BA@EPLGABLH@Xbox?5Controller@ 00059 4d 89 73 f0 mov QWORD PTR [r11-16], r14 0005d 49 be 39 8e e3 38 8e e3 38 0e mov r14, 1024819115206086201 ; 0e38e38e38e38e39H 00067 4d 89 7b e8 mov QWORD PTR [r11-24], r15 0006b 4c 8d 3d 90 07 00 00 lea r15, OFFSET FLAT:_glfw+1936 $LL4@glfwDetect: ; 506 : int jid; ; 507 : char guid[33]; ; 508 : XINPUT_CAPABILITIES xic; ; 509 : _GLFWjoystick* js; ; 510 : ; 511 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++) 00072 33 c9 xor ecx, ecx 00074 48 8b c5 mov rax, rbp $LL7@glfwDetect: ; 512 : { ; 513 : if (_glfw.joysticks[jid].connected && ; 514 : _glfw.joysticks[jid].win32.device == NULL && 00077 83 b8 04 ff ff ff 00 cmp DWORD PTR [rax-252], 0 0007e 74 0b je SHORT $LN5@glfwDetect 00080 48 83 38 00 cmp QWORD PTR [rax], 0 00084 75 05 jne SHORT $LN5@glfwDetect 00086 39 58 08 cmp DWORD PTR [rax+8], ebx 00089 74 0d je SHORT $LN37@glfwDetect $LN5@glfwDetect: ; 506 : int jid; ; 507 : char guid[33]; ; 508 : XINPUT_CAPABILITIES xic; ; 509 : _GLFWjoystick* js; ; 510 : ; 511 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++) 0008b ff c1 inc ecx 0008d 48 05 20 01 00 00 add rax, 288 ; 00000120H 00093 48 3b c7 cmp rax, rdi 00096 7e df jle SHORT $LL7@glfwDetect $LN37@glfwDetect: ; 515 : _glfw.joysticks[jid].win32.index == index) ; 516 : { ; 517 : break; ; 518 : } ; 519 : } ; 520 : ; 521 : if (jid <= GLFW_JOYSTICK_LAST) 00098 83 f9 0f cmp ecx, 15 0009b 0f 8e f6 00 00 00 jle $LN2@glfwDetect ; 522 : continue; ; 523 : ; 524 : if (XInputGetCapabilities(index, 0, &xic) != ERROR_SUCCESS) 000a1 4c 8d 44 24 30 lea r8, QWORD PTR xic$1[rsp] 000a6 33 d2 xor edx, edx 000a8 8b cb mov ecx, ebx 000aa ff 15 88 29 00 00 call QWORD PTR _glfw+10632 000b0 85 c0 test eax, eax 000b2 0f 85 df 00 00 00 jne $LN2@glfwDetect ; 525 : continue; ; 526 : ; 527 : // Generate a joystick GUID that matches the SDL 2.0.5+ one ; 528 : sprintf(guid, "78696e707574%02x000000000000000000", 000b8 44 0f b6 44 24 31 movzx r8d, BYTE PTR xic$1[rsp+1] 000be 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CD@CBFNHKPK@78696e707574?$CF02x000000000000000@ 000c5 48 8d 4c 24 48 lea rcx, QWORD PTR guid$2[rsp] 000ca e8 00 00 00 00 call sprintf ; 153 : switch (xic->SubType) 000cf 0f b6 44 24 31 movzx eax, BYTE PTR xic$1[rsp+1] 000d4 ff c8 dec eax 000d6 83 f8 07 cmp eax, 7 000d9 77 56 ja SHORT $LN27@glfwDetect 000db 48 98 cdqe 000dd 8b 8c 86 00 00 00 00 mov ecx, DWORD PTR $LN44@glfwDetect[rsi+rax*4] 000e4 48 03 ce add rcx, rsi 000e7 ff e1 jmp rcx $LN19@glfwDetect: ; 154 : { ; 155 : case XINPUT_DEVSUBTYPE_WHEEL: ; 156 : return "XInput Wheel"; 000e9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0N@JENFOGFI@XInput?5Wheel@ 000f0 eb 46 jmp SHORT $LN16@glfwDetect $LN20@glfwDetect: ; 157 : case XINPUT_DEVSUBTYPE_ARCADE_STICK: ; 158 : return "XInput Arcade Stick"; 000f2 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@ 000f9 eb 3d jmp SHORT $LN16@glfwDetect $LN21@glfwDetect: ; 159 : case XINPUT_DEVSUBTYPE_FLIGHT_STICK: ; 160 : return "XInput Flight Stick"; 000fb 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@ 00102 eb 34 jmp SHORT $LN16@glfwDetect $LN22@glfwDetect: ; 161 : case XINPUT_DEVSUBTYPE_DANCE_PAD: ; 162 : return "XInput Dance Pad"; 00104 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@ 0010b eb 2b jmp SHORT $LN16@glfwDetect $LN23@glfwDetect: ; 163 : case XINPUT_DEVSUBTYPE_GUITAR: ; 164 : return "XInput Guitar"; 0010d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0O@IFDGNEHH@XInput?5Guitar@ 00114 eb 22 jmp SHORT $LN16@glfwDetect $LN24@glfwDetect: ; 165 : case XINPUT_DEVSUBTYPE_DRUM_KIT: ; 166 : return "XInput Drum Kit"; 00116 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@ 0011d eb 19 jmp SHORT $LN16@glfwDetect $LN25@glfwDetect: ; 167 : case XINPUT_DEVSUBTYPE_GAMEPAD: ; 168 : { ; 169 : if (xic->Flags & XINPUT_CAPS_WIRELESS) 0011f f6 44 24 32 02 test BYTE PTR xic$1[rsp+2], 2 00124 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@ 0012b 49 0f 44 cc cmove rcx, r12 ; 170 : return "Wireless Xbox Controller"; ; 171 : else ; 172 : return "Xbox Controller"; 0012f eb 07 jmp SHORT $LN16@glfwDetect $LN27@glfwDetect: ; 173 : } ; 174 : } ; 175 : ; 176 : return "Unknown XInput Device"; 00131 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@ $LN16@glfwDetect: ; 529 : xic.SubType & 0xff); ; 530 : ; 531 : js = _glfwAllocJoystick(getDeviceDescription(&xic), guid, 6, 10, 1); 00138 41 b9 0a 00 00 00 mov r9d, 10 0013e c7 44 24 20 01 00 00 00 mov DWORD PTR [rsp+32], 1 00146 48 8d 54 24 48 lea rdx, QWORD PTR guid$2[rsp] 0014b 45 8d 41 fc lea r8d, QWORD PTR [r9-4] 0014f e8 00 00 00 00 call _glfwAllocJoystick 00154 48 8b c8 mov rcx, rax ; 532 : if (!js) 00157 48 85 c0 test rax, rax 0015a 74 3b je SHORT $LN2@glfwDetect ; 533 : continue; ; 534 : ; 535 : js->win32.index = index; 0015c 89 98 08 01 00 00 mov DWORD PTR [rax+264], ebx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 424 : js->connected = GLFW_TRUE; 00162 c7 40 04 01 00 00 00 mov DWORD PTR [rax+4], 1 ; 425 : else if (event == GLFW_DISCONNECTED) ; 426 : js->connected = GLFW_FALSE; ; 427 : ; 428 : if (_glfw.callbacks.joystick) 00169 4c 8b 05 70 1b 00 00 mov r8, QWORD PTR _glfw+7024 00170 4d 85 c0 test r8, r8 00173 74 22 je SHORT $LN2@glfwDetect ; 429 : _glfw.callbacks.joystick((int)(js - _glfw.joysticks), event); 00175 49 2b cf sub rcx, r15 00178 49 8b c6 mov rax, r14 0017b 48 f7 e9 imul rcx 0017e 48 8b ca mov rcx, rdx 00181 ba 01 00 04 00 mov edx, 262145 ; 00040001H 00186 48 c1 f9 04 sar rcx, 4 0018a 48 8b c1 mov rax, rcx 0018d 48 c1 e8 3f shr rax, 63 ; 0000003fH 00191 48 03 c8 add rcx, rax 00194 41 ff d0 call r8 $LN2@glfwDetect: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 504 : for (index = 0; index < XUSER_MAX_COUNT; index++) 00197 ff c3 inc ebx 00199 83 fb 04 cmp ebx, 4 0019c 0f 82 d0 fe ff ff jb $LL4@glfwDetect 001a2 4c 8b bc 24 80 00 00 00 mov r15, QWORD PTR [rsp+128] 001aa 4c 8b b4 24 88 00 00 00 mov r14, QWORD PTR [rsp+136] 001b2 4c 8b a4 24 90 00 00 00 mov r12, QWORD PTR [rsp+144] 001ba 48 8b bc 24 b8 00 00 00 mov rdi, QWORD PTR [rsp+184] 001c2 48 8b b4 24 b0 00 00 00 mov rsi, QWORD PTR [rsp+176] 001ca 48 8b ac 24 a8 00 00 00 mov rbp, QWORD PTR [rsp+168] 001d2 48 8b 9c 24 a0 00 00 00 mov rbx, QWORD PTR [rsp+160] $LN3@glfwDetect: ; 536 : ; 537 : _glfwInputJoystick(js, GLFW_CONNECTED); ; 538 : } ; 539 : } ; 540 : ; 541 : if (_glfw.win32.dinput8.api) 001da 48 8b 0d 78 29 00 00 mov rcx, QWORD PTR _glfw+10616 001e1 48 85 c9 test rcx, rcx 001e4 74 31 je SHORT $LN14@glfwDetect ; 542 : { ; 543 : if (FAILED(IDirectInput8_EnumDevices(_glfw.win32.dinput8.api, 001e6 48 8b 01 mov rax, QWORD PTR [rcx] 001e9 4c 8d 05 00 00 00 00 lea r8, OFFSET FLAT:deviceCallback 001f0 45 33 c9 xor r9d, r9d 001f3 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 001fb 41 8d 51 04 lea edx, QWORD PTR [r9+4] 001ff ff 50 20 call QWORD PTR [rax+32] 00202 85 c0 test eax, eax 00204 79 11 jns SHORT $LN14@glfwDetect ; 544 : DI8DEVCLASS_GAMECTRL, ; 545 : deviceCallback, ; 546 : NULL, ; 547 : DIEDFL_ALLDEVICES))) ; 548 : { ; 549 : _glfwInputError(GLFW_PLATFORM_ERROR, 00206 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@HDJDHLNO@Failed?5to?5enumerate?5DirectInput@ 0020d b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00212 e8 00 00 00 00 call _glfwInputError $LN14@glfwDetect: ; 550 : "Failed to enumerate DirectInput8 devices"); ; 551 : return; ; 552 : } ; 553 : } ; 554 : } 00217 48 8b 4c 24 70 mov rcx, QWORD PTR __$ArrayPad$[rsp] 0021c 48 33 cc xor rcx, rsp 0021f e8 00 00 00 00 call __security_check_cookie 00224 48 81 c4 98 00 00 00 add rsp, 152 ; 00000098H 0022b c3 ret 0 $LN44@glfwDetect: 0022c 00 00 00 00 DD $LN25@glfwDetect 00230 00 00 00 00 DD $LN19@glfwDetect 00234 00 00 00 00 DD $LN20@glfwDetect 00238 00 00 00 00 DD $LN21@glfwDetect 0023c 00 00 00 00 DD $LN22@glfwDetect 00240 00 00 00 00 DD $LN23@glfwDetect 00244 00 00 00 00 DD $LN27@glfwDetect 00248 00 00 00 00 DD $LN24@glfwDetect _glfwDetectJoystickConnectionWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwInitJoysticksWin32 _TEXT SEGMENT _glfwInitJoysticksWin32 PROC ; COMDAT ; 576 : { $LN6: 00000 48 83 ec 38 sub rsp, 56 ; 00000038H ; 577 : if (_glfw.win32.dinput8.instance) 00004 48 83 3d 68 29 00 00 00 cmp QWORD PTR _glfw+10600, 0 0000c 74 45 je SHORT $LN3@glfwInitJo ; 578 : { ; 579 : if (FAILED(DirectInput8Create(_glfw.win32.instance, 0000e 48 8b 0d 78 1b 00 00 mov rcx, QWORD PTR _glfw+7032 00015 4c 8d 0d 78 29 00 00 lea r9, OFFSET FLAT:_glfw+10616 0001c 4c 8d 05 00 00 00 00 lea r8, OFFSET FLAT:_glfw_IID_IDirectInput8W 00023 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 0002c ba 00 08 00 00 mov edx, 2048 ; 00000800H 00031 ff 15 70 29 00 00 call QWORD PTR _glfw+10608 00037 85 c0 test eax, eax 00039 79 18 jns SHORT $LN3@glfwInitJo ; 580 : DIRECTINPUT_VERSION, ; 581 : &IID_IDirectInput8W, ; 582 : (void**) &_glfw.win32.dinput8.api, ; 583 : NULL))) ; 584 : { ; 585 : _glfwInputError(GLFW_PLATFORM_ERROR, 0003b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CC@MGDCJJKB@Win32?3?5Failed?5to?5create?5interfa@ 00042 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00047 e8 00 00 00 00 call _glfwInputError ; 586 : "Win32: Failed to create interface"); ; 587 : return GLFW_FALSE; 0004c 33 c0 xor eax, eax ; 593 : } 0004e 48 83 c4 38 add rsp, 56 ; 00000038H 00052 c3 ret 0 $LN3@glfwInitJo: ; 588 : } ; 589 : } ; 590 : ; 591 : _glfwDetectJoystickConnectionWin32(); 00053 e8 00 00 00 00 call _glfwDetectJoystickConnectionWin32 ; 592 : return GLFW_TRUE; 00058 b8 01 00 00 00 mov eax, 1 ; 593 : } 0005d 48 83 c4 38 add rsp, 56 ; 00000038H 00061 c3 ret 0 _glfwInitJoysticksWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT _glfwPollJoystickWin32 _TEXT SEGMENT states$1 = 32 xis$2 = 72 state$3 = 96 __$ArrayPad$ = 176 js$ = 240 mode$ = 248 _glfwPollJoystickWin32 PROC ; COMDAT ; 607 : { $LN86: 00000 40 55 push rbp 00002 53 push rbx 00003 57 push rdi 00004 41 54 push r12 00006 48 8d 6c 24 c1 lea rbp, QWORD PTR [rsp-63] 0000b 48 81 ec c8 00 00 00 sub rsp, 200 ; 000000c8H 00012 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00019 48 33 c4 xor rax, rsp 0001c 48 89 45 27 mov QWORD PTR __$ArrayPad$[rbp-137], rax 00020 48 8b d9 mov rbx, rcx 00023 8b fa mov edi, edx ; 608 : if (js->win32.device) 00025 48 8b 89 00 01 00 00 mov rcx, QWORD PTR [rcx+256] 0002c 48 85 c9 test rcx, rcx 0002f 0f 84 23 02 00 00 je $LN10@glfwPollJo ; 609 : { ; 610 : int i, ai = 0, bi = 0, pi = 0; ; 611 : HRESULT result; ; 612 : DIJOYSTATE state = {0}; 00035 0f 57 c0 xorps xmm0, xmm0 00038 0f 11 45 d7 movups XMMWORD PTR state$3[rbp-137], xmm0 0003c 0f 11 45 e7 movups XMMWORD PTR state$3[rbp-121], xmm0 00040 0f 11 45 f7 movups XMMWORD PTR state$3[rbp-105], xmm0 00044 0f 11 45 07 movups XMMWORD PTR state$3[rbp-89], xmm0 00048 0f 11 45 17 movups XMMWORD PTR state$3[rbp-73], xmm0 ; 613 : ; 614 : IDirectInputDevice8_Poll(js->win32.device); 0004c 48 8b 01 mov rax, QWORD PTR [rcx] 0004f ff 90 c8 00 00 00 call QWORD PTR [rax+200] ; 615 : result = IDirectInputDevice8_GetDeviceState(js->win32.device, 00055 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 0005c 4c 8d 45 d7 lea r8, QWORD PTR state$3[rbp-137] 00060 ba 50 00 00 00 mov edx, 80 ; 00000050H 00065 48 8b 01 mov rax, QWORD PTR [rcx] 00068 ff 50 48 call QWORD PTR [rax+72] ; 616 : sizeof(state), ; 617 : &state); ; 618 : if (result == DIERR_NOTACQUIRED || result == DIERR_INPUTLOST) 0006b 3d 0c 00 07 80 cmp eax, -2147024884 ; ffffffff8007000cH 00070 74 07 je SHORT $LN13@glfwPollJo 00072 3d 1e 00 07 80 cmp eax, -2147024866 ; ffffffff8007001eH 00077 75 33 jne SHORT $LN12@glfwPollJo $LN13@glfwPollJo: ; 619 : { ; 620 : IDirectInputDevice8_Acquire(js->win32.device); 00079 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 00080 48 8b 01 mov rax, QWORD PTR [rcx] 00083 ff 50 38 call QWORD PTR [rax+56] ; 621 : IDirectInputDevice8_Poll(js->win32.device); 00086 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 0008d 48 8b 01 mov rax, QWORD PTR [rcx] 00090 ff 90 c8 00 00 00 call QWORD PTR [rax+200] ; 622 : result = IDirectInputDevice8_GetDeviceState(js->win32.device, 00096 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 0009d 4c 8d 45 d7 lea r8, QWORD PTR state$3[rbp-137] 000a1 ba 50 00 00 00 mov edx, 80 ; 00000050H 000a6 48 8b 01 mov rax, QWORD PTR [rcx] 000a9 ff 50 48 call QWORD PTR [rax+72] $LN12@glfwPollJo: ; 623 : sizeof(state), ; 624 : &state); ; 625 : } ; 626 : ; 627 : if (FAILED(result)) 000ac 85 c0 test eax, eax 000ae 0f 88 bf 01 00 00 js $LN84@glfwPollJo ; 628 : { ; 629 : closeJoystick(js); ; 630 : return GLFW_FALSE; ; 631 : } ; 632 : ; 633 : if (mode == _GLFW_POLL_PRESENCE) 000b4 85 ff test edi, edi 000b6 0f 84 d7 03 00 00 je $LN32@glfwPollJo ; 634 : return GLFW_TRUE; ; 635 : ; 636 : for (i = 0; i < js->win32.objectCount; i++) 000bc 45 33 e4 xor r12d, r12d 000bf 45 8b dc mov r11d, r12d 000c2 44 39 a3 f8 00 00 00 cmp DWORD PTR [rbx+248], r12d 000c9 0f 8e c4 03 00 00 jle $LN32@glfwPollJo 000cf f3 0f 10 15 00 00 00 00 movss xmm2, DWORD PTR __real@3f000000 000d7 41 8b fc mov edi, r12d 000da f3 0f 10 1d 00 00 00 00 movss xmm3, DWORD PTR __real@46ffff00 000e2 45 8b d4 mov r10d, r12d 000e5 48 89 b4 24 f8 00 00 00 mov QWORD PTR [rsp+248], rsi 000ed 41 8b f4 mov esi, r12d 000f0 4c 89 ac 24 00 01 00 00 mov QWORD PTR [rsp+256], r13 000f8 45 8d 6c 24 08 lea r13d, QWORD PTR [r12+8] 000fd 4c 89 b4 24 08 01 00 00 mov QWORD PTR [rsp+264], r14 00105 45 8b f4 mov r14d, r12d 00108 4c 89 bc 24 c0 00 00 00 mov QWORD PTR [rsp+192], r15 00110 45 8b fc mov r15d, r12d 00113 0f 1f 40 00 66 0f 1f 84 00 00 00 00 00 npad 13 $LL4@glfwPollJo: ; 637 : { ; 638 : const void* data = (char*) &state + js->win32.objects[i].offset; 00120 48 8b 8b f0 00 00 00 mov rcx, QWORD PTR [rbx+240] ; 639 : ; 640 : switch (js->win32.objects[i].type) 00127 41 8b 54 0a 04 mov edx, DWORD PTR [r10+rcx+4] 0012c 4d 63 04 0a movsxd r8, DWORD PTR [r10+rcx] 00130 85 d2 test edx, edx 00132 0f 84 c9 00 00 00 je $LN16@glfwPollJo 00138 83 ea 01 sub edx, 1 0013b 0f 84 c0 00 00 00 je $LN16@glfwPollJo 00141 83 ea 01 sub edx, 1 00144 0f 84 a2 00 00 00 je $LN18@glfwPollJo 0014a 83 fa 01 cmp edx, 1 0014d 0f 85 cd 00 00 00 jne $LN2@glfwPollJo ; 675 : int stateIndex = LOWORD(*(DWORD*) data) / (45 * DI_DEGREES); 00153 42 0f b7 4c 05 d7 movzx ecx, WORD PTR state$3[rbp+r8-137] 00159 b8 d5 52 04 e9 mov eax, -385592619 ; e90452d5H 0015e 66 0f 6f 05 00 00 00 00 movdqa xmm0, XMMWORD PTR __xmm@00000006000000020000000300000001 00166 66 0f 6f 0d 00 00 00 00 movdqa xmm1, XMMWORD PTR __xmm@00000009000000080000000c00000004 0016e f7 e1 mul ecx 00170 f3 0f 7f 45 97 movdqu XMMWORD PTR states$1[rbp-137], xmm0 00175 f3 0f 7f 4d a7 movdqu XMMWORD PTR states$1[rbp-121], xmm1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 470 : base = js->buttonCount + hat * 4; 0017a 8b 43 20 mov eax, DWORD PTR [rbx+32] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 675 : int stateIndex = LOWORD(*(DWORD*) data) / (45 * DI_DEGREES); 0017d c1 ea 0c shr edx, 12 ; 676 : if (stateIndex < 0 || stateIndex > 8) 00180 41 3b d5 cmp edx, r13d 00183 44 89 65 b7 mov DWORD PTR states$1[rbp-105], r12d 00187 41 0f 47 d5 cmova edx, r13d ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 470 : base = js->buttonCount + hat * 4; 0018b 41 03 c7 add eax, r15d ; 472 : js->buttons[base + 0] = (value & 0x01) ? GLFW_PRESS : GLFW_RELEASE; 0018e 4c 63 c0 movsxd r8, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 680 : pi++; 00191 41 83 c7 04 add r15d, 4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 472 : js->buttons[base + 0] = (value & 0x01) ? GLFW_PRESS : GLFW_RELEASE; 00195 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 679 : _glfwInputJoystickHat(js, pi, states[stateIndex]); 00199 44 0f be 4c 95 97 movsx r9d, BYTE PTR states$1[rbp+rdx*4-137] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 472 : js->buttons[base + 0] = (value & 0x01) ? GLFW_PRESS : GLFW_RELEASE; 0019f 41 0f b6 c9 movzx ecx, r9b ; 473 : js->buttons[base + 1] = (value & 0x02) ? GLFW_PRESS : GLFW_RELEASE; 001a3 41 8b d1 mov edx, r9d 001a6 80 e1 01 and cl, 1 ; 475 : js->buttons[base + 3] = (value & 0x08) ? GLFW_PRESS : GLFW_RELEASE; 001a9 c1 ea 03 shr edx, 3 001ac 41 88 0c 00 mov BYTE PTR [r8+rax], cl 001b0 80 e2 01 and dl, 1 001b3 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 001b7 41 8b c9 mov ecx, r9d 001ba d1 e9 shr ecx, 1 001bc 80 e1 01 and cl, 1 001bf 41 88 4c 00 01 mov BYTE PTR [r8+rax+1], cl 001c4 41 8b c9 mov ecx, r9d 001c7 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 001cb c1 e9 02 shr ecx, 2 001ce 80 e1 01 and cl, 1 001d1 41 88 4c 00 02 mov BYTE PTR [r8+rax+2], cl 001d6 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 001da 41 88 54 00 03 mov BYTE PTR [r8+rax+3], dl ; 476 : ; 477 : js->hats[hat] = value; 001df 48 8b 43 28 mov rax, QWORD PTR [rbx+40] 001e3 45 88 0c 06 mov BYTE PTR [r14+rax], r9b ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 680 : pi++; 001e7 49 ff c6 inc r14 001ea eb 34 jmp SHORT $LN2@glfwPollJo $LN18@glfwPollJo: ; 653 : const char value = (*((BYTE*) data) & 0x80) != 0; 001ec 42 0f b6 4c 05 d7 movzx ecx, BYTE PTR state$3[rbp+r8-137] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 001f2 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 653 : const char value = (*((BYTE*) data) & 0x80) != 0; 001f6 c0 e9 07 shr cl, 7 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 001f9 88 0c 07 mov BYTE PTR [rdi+rax], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 655 : bi++; 001fc 48 ff c7 inc rdi ; 656 : break; 001ff eb 1f jmp SHORT $LN2@glfwPollJo $LN16@glfwPollJo: 00201 66 42 0f 6e 44 05 d7 movd xmm0, DWORD PTR state$3[rbp+r8-137] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 00208 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 645 : const float value = (*((LONG*) data) + 0.5f) / 32767.5f; 0020c 0f 5b c0 cvtdq2ps xmm0, xmm0 0020f f3 0f 58 c2 addss xmm0, xmm2 00213 f3 0f 5e c3 divss xmm0, xmm3 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 00217 f3 0f 11 04 06 movss DWORD PTR [rsi+rax], xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 647 : ai++; 0021c 48 83 c6 04 add rsi, 4 $LN2@glfwPollJo: ; 634 : return GLFW_TRUE; ; 635 : ; 636 : for (i = 0; i < js->win32.objectCount; i++) 00220 41 ff c3 inc r11d 00223 4d 03 d5 add r10, r13 00226 44 3b 9b f8 00 00 00 cmp r11d, DWORD PTR [rbx+248] 0022d 0f 8c ed fe ff ff jl $LL4@glfwPollJo ; 681 : break; ; 682 : } ; 683 : } ; 684 : } ; 685 : } 00233 4c 8b bc 24 c0 00 00 00 mov r15, QWORD PTR [rsp+192] 0023b 4c 8b b4 24 08 01 00 00 mov r14, QWORD PTR [rsp+264] 00243 4c 8b ac 24 00 01 00 00 mov r13, QWORD PTR [rsp+256] 0024b 48 8b b4 24 f8 00 00 00 mov rsi, QWORD PTR [rsp+248] 00253 e9 3b 02 00 00 jmp $LN32@glfwPollJo $LN10@glfwPollJo: ; 686 : else ; 687 : { ; 688 : int i, dpad = 0; ; 689 : DWORD result; ; 690 : XINPUT_STATE xis; ; 691 : const WORD buttons[10] = ; 692 : { ; 693 : XINPUT_GAMEPAD_A, ; 694 : XINPUT_GAMEPAD_B, ; 695 : XINPUT_GAMEPAD_X, ; 696 : XINPUT_GAMEPAD_Y, ; 697 : XINPUT_GAMEPAD_LEFT_SHOULDER, ; 698 : XINPUT_GAMEPAD_RIGHT_SHOULDER, ; 699 : XINPUT_GAMEPAD_BACK, ; 700 : XINPUT_GAMEPAD_START, ; 701 : XINPUT_GAMEPAD_LEFT_THUMB, ; 702 : XINPUT_GAMEPAD_RIGHT_THUMB ; 703 : }; ; 704 : ; 705 : result = XInputGetState(js->win32.index, &xis); 00258 8b 8b 08 01 00 00 mov ecx, DWORD PTR [rbx+264] 0025e 48 8d 55 bf lea rdx, QWORD PTR xis$2[rbp-137] 00262 ff 15 90 29 00 00 call QWORD PTR _glfw+10640 ; 706 : if (result != ERROR_SUCCESS) 00268 85 c0 test eax, eax 0026a 74 16 je SHORT $LN22@glfwPollJo ; 707 : { ; 708 : if (result == ERROR_DEVICE_NOT_CONNECTED) 0026c 3d 8f 04 00 00 cmp eax, 1167 ; 0000048fH 00271 75 08 jne SHORT $LN23@glfwPollJo $LN84@glfwPollJo: ; 743 : } 00273 48 8b cb mov rcx, rbx 00276 e8 00 00 00 00 call closeJoystick $LN23@glfwPollJo: 0027b 33 c0 xor eax, eax 0027d e9 16 02 00 00 jmp $LN1@glfwPollJo $LN22@glfwPollJo: ; 709 : closeJoystick(js); ; 710 : ; 711 : return GLFW_FALSE; ; 712 : } ; 713 : ; 714 : if (mode == _GLFW_POLL_PRESENCE) 00282 85 ff test edi, edi 00284 0f 84 09 02 00 00 je $LN32@glfwPollJo ; 717 : _glfwInputJoystickAxis(js, 0, (xis.Gamepad.sThumbLX + 0.5f) / 32767.5f); 0028a 0f bf 45 c7 movsx eax, WORD PTR xis$2[rbp-129] 0028e f3 0f 10 1d 00 00 00 00 movss xmm3, DWORD PTR __real@3f000000 00296 f3 0f 10 25 00 00 00 00 movss xmm4, DWORD PTR __real@46ffff00 0029e 66 0f 6e c0 movd xmm0, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002a2 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 717 : _glfwInputJoystickAxis(js, 0, (xis.Gamepad.sThumbLX + 0.5f) / 32767.5f); 002a6 0f 5b c0 cvtdq2ps xmm0, xmm0 002a9 f3 0f 58 c3 addss xmm0, xmm3 002ad f3 0f 5e c4 divss xmm0, xmm4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002b1 f3 0f 11 00 movss DWORD PTR [rax], xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 718 : _glfwInputJoystickAxis(js, 1, -(xis.Gamepad.sThumbLY + 0.5f) / 32767.5f); 002b5 0f bf 45 c9 movsx eax, WORD PTR xis$2[rbp-127] 002b9 66 0f 6e c8 movd xmm1, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002bd 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 718 : _glfwInputJoystickAxis(js, 1, -(xis.Gamepad.sThumbLY + 0.5f) / 32767.5f); 002c1 0f 5b c9 cvtdq2ps xmm1, xmm1 002c4 f3 0f 58 cb addss xmm1, xmm3 002c8 0f 57 0d 00 00 00 00 xorps xmm1, DWORD PTR __xmm@80000000800000008000000080000000 002cf f3 0f 5e cc divss xmm1, xmm4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002d3 f3 0f 11 48 04 movss DWORD PTR [rax+4], xmm1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 719 : _glfwInputJoystickAxis(js, 2, (xis.Gamepad.sThumbRX + 0.5f) / 32767.5f); 002d8 0f bf 45 cb movsx eax, WORD PTR xis$2[rbp-125] 002dc 66 0f 6e c0 movd xmm0, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002e0 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 719 : _glfwInputJoystickAxis(js, 2, (xis.Gamepad.sThumbRX + 0.5f) / 32767.5f); 002e4 0f 5b c0 cvtdq2ps xmm0, xmm0 002e7 f3 0f 58 c3 addss xmm0, xmm3 002eb f3 0f 5e c4 divss xmm0, xmm4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002ef f3 0f 11 40 08 movss DWORD PTR [rax+8], xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 720 : _glfwInputJoystickAxis(js, 3, -(xis.Gamepad.sThumbRY + 0.5f) / 32767.5f); 002f4 0f bf 45 cd movsx eax, WORD PTR xis$2[rbp-123] 002f8 66 0f 6e c8 movd xmm1, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 002fc 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 720 : _glfwInputJoystickAxis(js, 3, -(xis.Gamepad.sThumbRY + 0.5f) / 32767.5f); 00300 0f 5b c9 cvtdq2ps xmm1, xmm1 00303 f3 0f 58 cb addss xmm1, xmm3 00307 0f 57 0d 00 00 00 00 xorps xmm1, DWORD PTR __xmm@80000000800000008000000080000000 0030e f3 0f 5e cc divss xmm1, xmm4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 00312 f3 0f 11 48 0c movss DWORD PTR [rax+12], xmm1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 721 : _glfwInputJoystickAxis(js, 4, xis.Gamepad.bLeftTrigger / 127.5f - 1.f); 00317 0f b6 45 c5 movzx eax, BYTE PTR xis$2[rbp-131] 0031b 66 0f 6e c0 movd xmm0, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 0031f 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 721 : _glfwInputJoystickAxis(js, 4, xis.Gamepad.bLeftTrigger / 127.5f - 1.f); 00323 0f 5b c0 cvtdq2ps xmm0, xmm0 00326 f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@42ff0000 0032e f3 0f 5c 05 00 00 00 00 subss xmm0, DWORD PTR __real@3f800000 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 00336 f3 0f 11 40 10 movss DWORD PTR [rax+16], xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 722 : _glfwInputJoystickAxis(js, 5, xis.Gamepad.bRightTrigger / 127.5f - 1.f); 0033b 0f b6 45 c6 movzx eax, BYTE PTR xis$2[rbp-130] 0033f 66 0f 6e c0 movd xmm0, eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 00343 48 8b 43 08 mov rax, QWORD PTR [rbx+8] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 722 : _glfwInputJoystickAxis(js, 5, xis.Gamepad.bRightTrigger / 127.5f - 1.f); 00347 0f 5b c0 cvtdq2ps xmm0, xmm0 0034a f3 0f 5e 05 00 00 00 00 divss xmm0, DWORD PTR __real@42ff0000 00352 f3 0f 5c 05 00 00 00 00 subss xmm0, DWORD PTR __real@3f800000 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 440 : js->axes[axis] = value; 0035a f3 0f 11 40 14 movss DWORD PTR [rax+20], xmm0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 0035f 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 00363 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00367 66 c1 e9 0c shr cx, 12 0036b 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 0036e 88 08 mov BYTE PTR [rax], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00370 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 00374 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00378 66 c1 e9 0d shr cx, 13 0037c 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 0037f 88 48 01 mov BYTE PTR [rax+1], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00382 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 00386 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 0038a 66 c1 e9 0e shr cx, 14 0038e 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 00391 88 48 02 mov BYTE PTR [rax+2], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00394 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 00398 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 0039c 66 c1 e9 0f shr cx, 15 003a0 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003a3 88 48 03 mov BYTE PTR [rax+3], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003a6 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003aa 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003ae 66 c1 e9 08 shr cx, 8 003b2 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003b5 88 48 04 mov BYTE PTR [rax+4], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003b8 0f b7 4d c3 movzx ecx, WORD PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003bc 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003c0 66 c1 e9 09 shr cx, 9 003c4 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003c7 88 48 05 mov BYTE PTR [rax+5], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003ca 0f b6 4d c3 movzx ecx, BYTE PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003ce 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003d2 c0 e9 05 shr cl, 5 003d5 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003d8 88 48 06 mov BYTE PTR [rax+6], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003db 0f b6 4d c3 movzx ecx, BYTE PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003df 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003e3 c0 e9 04 shr cl, 4 003e6 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003e9 88 48 07 mov BYTE PTR [rax+7], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003ec 0f b6 4d c3 movzx ecx, BYTE PTR xis$2[rbp-133] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003f0 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 003f4 c0 e9 06 shr cl, 6 003f7 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 003fa 88 48 08 mov BYTE PTR [rax+8], cl 003fd 48 8b 43 18 mov rax, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0; 00401 0f b6 4d c3 movzx ecx, BYTE PTR xis$2[rbp-133] 00405 c0 e9 07 shr cl, 7 00408 80 e1 01 and cl, 1 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 452 : js->buttons[button] = value; 0040b 88 48 09 mov BYTE PTR [rax+9], cl ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 730 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP) 0040e 44 8b 4d c3 mov r9d, DWORD PTR xis$2[rbp-133] 00412 41 8b c9 mov ecx, r9d 00415 83 e1 01 and ecx, 1 ; 731 : dpad |= GLFW_HAT_UP; ; 732 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT) ; 733 : dpad |= GLFW_HAT_RIGHT; ; 734 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN) 00418 44 8b c1 mov r8d, ecx 0041b 41 83 c8 02 or r8d, 2 0041f 41 f6 c1 08 test r9b, 8 00423 44 0f 44 c1 cmove r8d, ecx ; 736 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) 00427 41 8b d0 mov edx, r8d 0042a 83 ca 04 or edx, 4 0042d 41 f6 c1 02 test r9b, 2 00431 41 0f 44 d0 cmove edx, r8d ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 470 : base = js->buttonCount + hat * 4; 00435 0f b6 c2 movzx eax, dl 00438 0c 08 or al, 8 0043a 0f b6 c8 movzx ecx, al ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 736 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT) 0043d 41 f6 c1 04 test r9b, 4 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 470 : base = js->buttonCount + hat * 4; 00441 0f b6 c2 movzx eax, dl ; 472 : js->buttons[base + 0] = (value & 0x01) ? GLFW_PRESS : GLFW_RELEASE; 00444 48 63 53 20 movsxd rdx, DWORD PTR [rbx+32] 00448 0f 44 c8 cmove ecx, eax 0044b 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 0044f 44 0f b6 c1 movzx r8d, cl 00453 41 0f b6 c8 movzx ecx, r8b 00457 80 e1 01 and cl, 1 0045a 88 0c 02 mov BYTE PTR [rdx+rax], cl ; 473 : js->buttons[base + 1] = (value & 0x02) ? GLFW_PRESS : GLFW_RELEASE; 0045d 41 8b c8 mov ecx, r8d 00460 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 00464 d1 e9 shr ecx, 1 00466 80 e1 01 and cl, 1 00469 88 4c 02 01 mov BYTE PTR [rdx+rax+1], cl ; 474 : js->buttons[base + 2] = (value & 0x04) ? GLFW_PRESS : GLFW_RELEASE; 0046d 41 8b c8 mov ecx, r8d 00470 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 00474 c1 e9 02 shr ecx, 2 00477 80 e1 01 and cl, 1 0047a 88 4c 02 02 mov BYTE PTR [rdx+rax+2], cl ; 475 : js->buttons[base + 3] = (value & 0x08) ? GLFW_PRESS : GLFW_RELEASE; 0047e 41 8b c8 mov ecx, r8d 00481 48 8b 43 18 mov rax, QWORD PTR [rbx+24] 00485 c1 e9 03 shr ecx, 3 00488 88 4c 02 03 mov BYTE PTR [rdx+rax+3], cl ; 476 : ; 477 : js->hats[hat] = value; 0048c 48 8b 43 28 mov rax, QWORD PTR [rbx+40] 00490 44 88 00 mov BYTE PTR [rax], r8b $LN32@glfwPollJo: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 742 : return GLFW_TRUE; 00493 b8 01 00 00 00 mov eax, 1 $LN1@glfwPollJo: ; 743 : } 00498 48 8b 4d 27 mov rcx, QWORD PTR __$ArrayPad$[rbp-137] 0049c 48 33 cc xor rcx, rsp 0049f e8 00 00 00 00 call __security_check_cookie 004a4 48 81 c4 c8 00 00 00 add rsp, 200 ; 000000c8H 004ab 41 5c pop r12 004ad 5f pop rdi 004ae 5b pop rbx 004af 5d pop rbp 004b0 c3 ret 0 _glfwPollJoystickWin32 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h ; COMDAT _vsnprintf_l _TEXT SEGMENT _Buffer$ = 64 _BufferCount$dead$ = 72 _Format$ = 80 _Locale$dead$ = 88 _ArgList$ = 96 _vsnprintf_l PROC ; COMDAT ; 1391 : { $LN4: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 30 sub rsp, 48 ; 00000030H 0000a 49 8b d8 mov rbx, r8 0000d 48 8b f9 mov rdi, rcx ; 1392 : int const _Result = __stdio_common_vsprintf( 00010 e8 00 00 00 00 call __local_stdio_printf_options 00015 4c 8b cb mov r9, rbx 00018 48 8b d7 mov rdx, rdi 0001b 48 c7 c3 ff ff ff ff mov rbx, -1 00022 4c 8b c3 mov r8, rbx 00025 48 8b 08 mov rcx, QWORD PTR [rax] 00028 48 8b 44 24 60 mov rax, QWORD PTR _ArgList$[rsp] 0002d 48 83 c9 01 or rcx, 1 00031 48 89 44 24 28 mov QWORD PTR [rsp+40], rax 00036 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 0003f ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vsprintf ; 1393 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, ; 1394 : _Buffer, _BufferCount, _Format, _Locale, _ArgList); ; 1395 : ; 1396 : return _Result < 0 ? -1 : _Result; 00045 85 c0 test eax, eax 00047 0f 48 c3 cmovs eax, ebx ; 1397 : } 0004a 48 8b 5c 24 40 mov rbx, QWORD PTR [rsp+64] 0004f 48 83 c4 30 add rsp, 48 ; 00000030H 00053 5f pop rdi 00054 c3 ret 0 _vsnprintf_l ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h ; COMDAT _vsprintf_l _TEXT SEGMENT _Buffer$ = 64 _Format$ = 72 _Locale$dead$ = 80 _ArgList$ = 88 _vsprintf_l PROC ; COMDAT ; 1458 : { $LN6: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 48 89 74 24 10 mov QWORD PTR [rsp+16], rsi 0000a 57 push rdi 0000b 48 83 ec 30 sub rsp, 48 ; 00000030H 0000f 49 8b d9 mov rbx, r9 00012 48 8b fa mov rdi, rdx 00015 48 8b f1 mov rsi, rcx ; 1392 : int const _Result = __stdio_common_vsprintf( 00018 e8 00 00 00 00 call __local_stdio_printf_options 0001d 48 89 5c 24 28 mov QWORD PTR [rsp+40], rbx 00022 4c 8b cf mov r9, rdi 00025 48 c7 c3 ff ff ff ff mov rbx, -1 0002c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 00035 4c 8b c3 mov r8, rbx 00038 48 8b d6 mov rdx, rsi 0003b 48 8b 08 mov rcx, QWORD PTR [rax] 0003e 48 83 c9 01 or rcx, 1 00042 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vsprintf ; 1459 : return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); ; 1460 : } 00048 48 8b 74 24 48 mov rsi, QWORD PTR [rsp+72] ; 1396 : return _Result < 0 ? -1 : _Result; 0004d 85 c0 test eax, eax 0004f 0f 48 c3 cmovs eax, ebx ; 1459 : return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); ; 1460 : } 00052 48 8b 5c 24 40 mov rbx, QWORD PTR [rsp+64] 00057 48 83 c4 30 add rsp, 48 ; 00000030H 0005b 5f pop rdi 0005c c3 ret 0 _vsprintf_l ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h ; COMDAT sprintf _TEXT SEGMENT _Buffer$ = 80 _Format$ = 88 sprintf PROC ; COMDAT ; 1771 : { $LN8: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 0000a 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 0000f 53 push rbx 00010 56 push rsi 00011 57 push rdi 00012 48 83 ec 30 sub rsp, 48 ; 00000030H 00016 48 8b da mov rbx, rdx ; 1772 : int _Result; ; 1773 : va_list _ArgList; ; 1774 : __crt_va_start(_ArgList, _Format); 00019 48 8d 74 24 60 lea rsi, QWORD PTR _Format$[rsp+8] 0001e 48 8b f9 mov rdi, rcx ; 1392 : int const _Result = __stdio_common_vsprintf( 00021 e8 00 00 00 00 call __local_stdio_printf_options 00026 4c 8b cb mov r9, rbx 00029 48 89 74 24 28 mov QWORD PTR [rsp+40], rsi 0002e 48 c7 c3 ff ff ff ff mov rbx, -1 00035 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 0003e 4c 8b c3 mov r8, rbx 00041 48 8b d7 mov rdx, rdi 00044 48 8b 08 mov rcx, QWORD PTR [rax] 00047 48 83 c9 01 or rcx, 1 0004b ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vsprintf ; 1393 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, ; 1394 : _Buffer, _BufferCount, _Format, _Locale, _ArgList); ; 1395 : ; 1396 : return _Result < 0 ? -1 : _Result; 00051 85 c0 test eax, eax 00053 0f 48 c3 cmovs eax, ebx ; 1775 : ; 1776 : _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList); ; 1777 : ; 1778 : __crt_va_end(_ArgList); ; 1779 : return _Result; ; 1780 : } 00056 48 83 c4 30 add rsp, 48 ; 00000030H 0005a 5f pop rdi 0005b 5e pop rsi 0005c 5b pop rbx 0005d c3 ret 0 sprintf ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT getDeviceDescription _TEXT SEGMENT xic$ = 8 getDeviceDescription PROC ; COMDAT ; 153 : switch (xic->SubType) 00000 0f b6 41 01 movzx eax, BYTE PTR [rcx+1] 00004 ff c8 dec eax 00006 83 f8 07 cmp eax, 7 00009 77 5d ja SHORT $LN12@getDeviceD 0000b 4c 8d 05 00 00 00 00 lea r8, OFFSET FLAT:__ImageBase 00012 48 98 cdqe 00014 41 8b 94 80 00 00 00 00 mov edx, DWORD PTR $LN14@getDeviceD[r8+rax*4] 0001c 49 03 d0 add rdx, r8 0001f ff e2 jmp rdx $LN4@getDeviceD: ; 154 : { ; 155 : case XINPUT_DEVSUBTYPE_WHEEL: ; 156 : return "XInput Wheel"; 00021 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0N@JENFOGFI@XInput?5Wheel@ ; 177 : } 00028 c3 ret 0 $LN5@getDeviceD: ; 157 : case XINPUT_DEVSUBTYPE_ARCADE_STICK: ; 158 : return "XInput Arcade Stick"; 00029 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@ ; 177 : } 00030 c3 ret 0 $LN6@getDeviceD: ; 159 : case XINPUT_DEVSUBTYPE_FLIGHT_STICK: ; 160 : return "XInput Flight Stick"; 00031 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@ ; 177 : } 00038 c3 ret 0 $LN7@getDeviceD: ; 161 : case XINPUT_DEVSUBTYPE_DANCE_PAD: ; 162 : return "XInput Dance Pad"; 00039 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@ ; 177 : } 00040 c3 ret 0 $LN8@getDeviceD: ; 163 : case XINPUT_DEVSUBTYPE_GUITAR: ; 164 : return "XInput Guitar"; 00041 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0O@IFDGNEHH@XInput?5Guitar@ ; 177 : } 00048 c3 ret 0 $LN9@getDeviceD: ; 165 : case XINPUT_DEVSUBTYPE_DRUM_KIT: ; 166 : return "XInput Drum Kit"; 00049 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@ ; 177 : } 00050 c3 ret 0 $LN10@getDeviceD: ; 167 : case XINPUT_DEVSUBTYPE_GAMEPAD: ; 168 : { ; 169 : if (xic->Flags & XINPUT_CAPS_WIRELESS) 00051 f6 41 02 02 test BYTE PTR [rcx+2], 2 00055 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BA@EPLGABLH@Xbox?5Controller@ 0005c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@ 00063 48 0f 45 c1 cmovne rax, rcx ; 177 : } 00067 c3 ret 0 $LN12@getDeviceD: ; 170 : return "Wireless Xbox Controller"; ; 171 : else ; 172 : return "Xbox Controller"; ; 173 : } ; 174 : } ; 175 : ; 176 : return "Unknown XInput Device"; 00068 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@ ; 177 : } 0006f c3 ret 0 $LN14@getDeviceD: 00070 00 00 00 00 DD $LN10@getDeviceD 00074 00 00 00 00 DD $LN4@getDeviceD 00078 00 00 00 00 DD $LN5@getDeviceD 0007c 00 00 00 00 DD $LN6@getDeviceD 00080 00 00 00 00 DD $LN7@getDeviceD 00084 00 00 00 00 DD $LN8@getDeviceD 00088 00 00 00 00 DD $LN12@getDeviceD 0008c 00 00 00 00 DD $LN9@getDeviceD getDeviceDescription ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT compareJoystickObjects _TEXT SEGMENT first$ = 8 second$ = 16 compareJoystickObjects PROC ; COMDAT ; 183 : const _GLFWjoyobjectWin32* fo = first; ; 184 : const _GLFWjoyobjectWin32* so = second; ; 185 : ; 186 : if (fo->type != so->type) 00000 8b 41 04 mov eax, DWORD PTR [rcx+4] 00003 44 8b 42 04 mov r8d, DWORD PTR [rdx+4] 00007 41 3b c0 cmp eax, r8d 0000a 74 04 je SHORT $LN2@compareJoy ; 187 : return fo->type - so->type; 0000c 41 2b c0 sub eax, r8d ; 190 : } 0000f c3 ret 0 $LN2@compareJoy: ; 188 : ; 189 : return fo->offset - so->offset; 00010 8b 01 mov eax, DWORD PTR [rcx] 00012 2b 02 sub eax, DWORD PTR [rdx] ; 190 : } 00014 c3 ret 0 compareJoystickObjects ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT supportsXInput _TEXT SEGMENT count$ = 32 size$1 = 36 rdi$2 = 40 name$3 = 80 __$ArrayPad$ = 336 guid$ = 368 supportsXInput PROC ; COMDAT ; 196 : { 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 7c 24 20 mov QWORD PTR [rsp+32], rdi 0000f 41 56 push r14 00011 48 81 ec 60 01 00 00 sub rsp, 352 ; 00000160H 00018 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0001f 48 33 c4 xor rax, rsp 00022 48 89 84 24 50 01 00 00 mov QWORD PTR __$ArrayPad$[rsp], rax ; 197 : UINT i, count = 0; 0002a 33 ed xor ebp, ebp ; 198 : RAWINPUTDEVICELIST* ridl; ; 199 : GLFWbool result = GLFW_FALSE; ; 200 : ; 201 : if (GetRawInputDeviceList(NULL, &count, sizeof(RAWINPUTDEVICELIST)) != 0) 0002c 48 8d 54 24 20 lea rdx, QWORD PTR count$[rsp] 00031 4c 8b f1 mov r14, rcx 00034 89 6c 24 20 mov DWORD PTR count$[rsp], ebp 00038 33 c9 xor ecx, ecx 0003a 44 8d 45 10 lea r8d, QWORD PTR [rbp+16] 0003e ff 15 00 00 00 00 call QWORD PTR __imp_GetRawInputDeviceList 00044 85 c0 test eax, eax 00046 75 71 jne SHORT $LN23@supportsXI ; 202 : return GLFW_FALSE; ; 203 : ; 204 : ridl = _glfw_calloc(count, sizeof(RAWINPUTDEVICELIST)); 00048 8b 5c 24 20 mov ebx, DWORD PTR count$[rsp] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 273 : if (count && size) 0004c 48 85 db test rbx, rbx 0004f 74 37 je SHORT $LN16@supportsXI ; 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); 00051 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00058 48 c1 e3 04 shl rbx, 4 0005c 48 8b cb mov rcx, rbx 0005f ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 00065 48 85 c0 test rax, rax 00068 74 12 je SHORT $LN19@supportsXI ; 285 : return memset(block, 0, count * size); 0006a 4c 8b c3 mov r8, rbx 0006d 33 d2 xor edx, edx 0006f 48 8b c8 mov rcx, rax 00072 e8 00 00 00 00 call memset 00077 48 8b f8 mov rdi, rax 0007a eb 0f jmp SHORT $LN17@supportsXI $LN19@supportsXI: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 0007c 33 d2 xor edx, edx 0007e b9 05 00 01 00 mov ecx, 65541 ; 00010005H 00083 e8 00 00 00 00 call _glfwInputError $LN16@supportsXI: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 206 : if (GetRawInputDeviceList(ridl, &count, sizeof(RAWINPUTDEVICELIST)) == (UINT) -1) 00088 48 8b fd mov rdi, rbp $LN17@supportsXI: 0008b 41 b8 10 00 00 00 mov r8d, 16 00091 48 8d 54 24 20 lea rdx, QWORD PTR count$[rsp] 00096 48 8b cf mov rcx, rdi 00099 ff 15 00 00 00 00 call QWORD PTR __imp_GetRawInputDeviceList 0009f 83 f8 ff cmp eax, -1 ; ffffffffH 000a2 75 41 jne SHORT $LN6@supportsXI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000a4 48 85 ff test rdi, rdi 000a7 74 10 je SHORT $LN23@supportsXI ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000a9 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000b0 48 8b cf mov rcx, rdi 000b3 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN23@supportsXI: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 209 : return GLFW_FALSE; 000b9 33 c0 xor eax, eax $LN1@supportsXI: ; 255 : } 000bb 48 8b 8c 24 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp] 000c3 48 33 cc xor rcx, rsp 000c6 e8 00 00 00 00 call __security_check_cookie 000cb 4c 8d 9c 24 60 01 00 00 lea r11, QWORD PTR [rsp+352] 000d3 49 8b 5b 18 mov rbx, QWORD PTR [r11+24] 000d7 49 8b 6b 20 mov rbp, QWORD PTR [r11+32] 000db 49 8b 7b 28 mov rdi, QWORD PTR [r11+40] 000df 49 8b e3 mov rsp, r11 000e2 41 5e pop r14 000e4 c3 ret 0 $LN6@supportsXI: ; 210 : } ; 211 : ; 212 : for (i = 0; i < count; i++) 000e5 8b 4c 24 20 mov ecx, DWORD PTR count$[rsp] 000e9 8b dd mov ebx, ebp 000eb 85 c9 test ecx, ecx 000ed 0f 84 e0 00 00 00 je $LN35@supportsXI 000f3 48 89 b4 24 70 01 00 00 mov QWORD PTR [rsp+368], rsi 000fb 0f 1f 44 00 00 npad 5 $LL4@supportsXI: ; 213 : { ; 214 : RID_DEVICE_INFO rdi; ; 215 : char name[256]; ; 216 : UINT size; ; 217 : ; 218 : if (ridl[i].dwType != RIM_TYPEHID) 00100 8b f3 mov esi, ebx 00102 48 03 f6 add rsi, rsi 00105 83 7c f7 08 02 cmp DWORD PTR [rdi+rsi*8+8], 2 0010a 0f 85 aa 00 00 00 jne $LN2@supportsXI ; 219 : continue; ; 220 : ; 221 : ZeroMemory(&rdi, sizeof(rdi)); ; 222 : rdi.cbSize = sizeof(rdi); ; 223 : size = sizeof(rdi); ; 224 : ; 225 : if ((INT) GetRawInputDeviceInfoA(ridl[i].hDevice, ; 226 : RIDI_DEVICEINFO, ; 227 : &rdi, &size) == -1) 00110 48 8b 0c f7 mov rcx, QWORD PTR [rdi+rsi*8] 00114 4c 8d 4c 24 24 lea r9, QWORD PTR size$1[rsp] 00119 0f 57 c0 xorps xmm0, xmm0 0011c c7 44 24 24 20 00 00 00 mov DWORD PTR size$1[rsp], 32 ; 00000020H 00124 0f 11 44 24 28 movups XMMWORD PTR rdi$2[rsp], xmm0 00129 4c 8d 44 24 28 lea r8, QWORD PTR rdi$2[rsp] 0012e c7 44 24 28 20 00 00 00 mov DWORD PTR rdi$2[rsp], 32 ; 00000020H 00136 ba 0b 00 00 20 mov edx, 536870923 ; 2000000bH 0013b 0f 11 44 24 38 movups XMMWORD PTR rdi$2[rsp+16], xmm0 00140 ff 15 00 00 00 00 call QWORD PTR __imp_GetRawInputDeviceInfoA 00146 83 f8 ff cmp eax, -1 00149 74 6b je SHORT $LN36@supportsXI ; 228 : { ; 229 : continue; ; 230 : } ; 231 : ; 232 : if (MAKELONG(rdi.hid.dwVendorId, rdi.hid.dwProductId) != (LONG) guid->Data1) 0014b 0f b7 54 24 34 movzx edx, WORD PTR rdi$2[rsp+12] 00150 0f b7 44 24 30 movzx eax, WORD PTR rdi$2[rsp+8] 00155 c1 e2 10 shl edx, 16 00158 0b d0 or edx, eax 0015a 41 3b 16 cmp edx, DWORD PTR [r14] 0015d 75 57 jne SHORT $LN36@supportsXI ; 233 : continue; ; 234 : ; 235 : memset(name, 0, sizeof(name)); 0015f 33 d2 xor edx, edx 00161 48 8d 4c 24 50 lea rcx, QWORD PTR name$3[rsp] 00166 41 b8 00 01 00 00 mov r8d, 256 ; 00000100H 0016c e8 00 00 00 00 call memset ; 236 : size = sizeof(name); ; 237 : ; 238 : if ((INT) GetRawInputDeviceInfoA(ridl[i].hDevice, ; 239 : RIDI_DEVICENAME, ; 240 : name, &size) == -1) 00171 48 8b 0c f7 mov rcx, QWORD PTR [rdi+rsi*8] 00175 4c 8d 4c 24 24 lea r9, QWORD PTR size$1[rsp] 0017a 4c 8d 44 24 50 lea r8, QWORD PTR name$3[rsp] 0017f c7 44 24 24 00 01 00 00 mov DWORD PTR size$1[rsp], 256 ; 00000100H 00187 ba 07 00 00 20 mov edx, 536870919 ; 20000007H 0018c ff 15 00 00 00 00 call QWORD PTR __imp_GetRawInputDeviceInfoA 00192 83 f8 ff cmp eax, -1 00195 74 34 je SHORT $LN48@supportsXI ; 241 : { ; 242 : break; ; 243 : } ; 244 : ; 245 : name[sizeof(name) - 1] = '\0'; ; 246 : if (strstr(name, "IG_")) 00197 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_03HAFBONIK@IG_@ 0019e 40 88 ac 24 4f 01 00 00 mov BYTE PTR name$3[rsp+255], bpl 001a6 48 8d 4c 24 50 lea rcx, QWORD PTR name$3[rsp] 001ab ff 15 00 00 00 00 call QWORD PTR __imp_strstr 001b1 48 85 c0 test rax, rax 001b4 75 10 jne SHORT $LN30@supportsXI $LN36@supportsXI: 001b6 8b 4c 24 20 mov ecx, DWORD PTR count$[rsp] $LN2@supportsXI: ; 210 : } ; 211 : ; 212 : for (i = 0; i < count; i++) 001ba ff c3 inc ebx 001bc 3b d9 cmp ebx, ecx 001be 0f 82 3c ff ff ff jb $LL4@supportsXI 001c4 eb 05 jmp SHORT $LN48@supportsXI $LN30@supportsXI: ; 247 : { ; 248 : result = GLFW_TRUE; 001c6 bd 01 00 00 00 mov ebp, 1 $LN48@supportsXI: 001cb 48 8b b4 24 70 01 00 00 mov rsi, QWORD PTR [rsp+368] $LN35@supportsXI: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 001d3 48 85 ff test rdi, rdi 001d6 74 10 je SHORT $LN26@supportsXI ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 001d8 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 001df 48 8b cf mov rcx, rdi 001e2 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN26@supportsXI: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 254 : return result; 001e8 8b c5 mov eax, ebp 001ea e9 cc fe ff ff jmp $LN1@supportsXI supportsXInput ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT closeJoystick _TEXT SEGMENT js$ = 48 closeJoystick PROC ; COMDAT ; 260 : { 00000 40 53 push rbx 00002 48 83 ec 20 sub rsp, 32 ; 00000020H ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 426 : js->connected = GLFW_FALSE; 00006 c7 41 04 00 00 00 00 mov DWORD PTR [rcx+4], 0 ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 260 : { 0000d 48 8b d9 mov rbx, rcx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 428 : if (_glfw.callbacks.joystick) 00010 4c 8b 05 70 1b 00 00 mov r8, QWORD PTR _glfw+7024 00017 4d 85 c0 test r8, r8 0001a 74 33 je SHORT $LN8@closeJoyst ; 429 : _glfw.callbacks.joystick((int)(js - _glfw.joysticks), event); 0001c 48 8b d1 mov rdx, rcx 0001f 48 8d 05 90 07 00 00 lea rax, OFFSET FLAT:_glfw+1936 00026 48 2b d0 sub rdx, rax 00029 48 b8 39 8e e3 38 8e e3 38 0e mov rax, 1024819115206086201 ; 0e38e38e38e38e39H 00033 48 f7 ea imul rdx 00036 48 8b ca mov rcx, rdx 00039 ba 02 00 04 00 mov edx, 262146 ; 00040002H 0003e 48 c1 f9 04 sar rcx, 4 00042 48 8b c1 mov rax, rcx 00045 48 c1 e8 3f shr rax, 63 ; 0000003fH 00049 48 03 c8 add rcx, rax 0004c 41 ff d0 call r8 $LN8@closeJoyst: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 263 : if (js->win32.device) 0004f 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 00056 48 85 c9 test rcx, rcx 00059 74 13 je SHORT $LN2@closeJoyst ; 264 : { ; 265 : IDirectInputDevice8_Unacquire(js->win32.device); 0005b 48 8b 01 mov rax, QWORD PTR [rcx] 0005e ff 50 40 call QWORD PTR [rax+64] ; 266 : IDirectInputDevice8_Release(js->win32.device); 00061 48 8b 8b 00 01 00 00 mov rcx, QWORD PTR [rbx+256] 00068 48 8b 01 mov rax, QWORD PTR [rcx] 0006b ff 50 10 call QWORD PTR [rax+16] $LN2@closeJoyst: ; 267 : } ; 268 : ; 269 : _glfw_free(js->win32.objects); 0006e 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) 00075 48 85 c9 test rcx, rcx 00078 74 0d je SHORT $LN11@closeJoyst ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 0007a 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00081 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN11@closeJoyst: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 540 : _glfw_free(js->axes); 00087 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) 0008b 48 85 c9 test rcx, rcx 0008e 74 0d je SHORT $LN16@closeJoyst ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 00090 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 00097 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN16@closeJoyst: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 541 : _glfw_free(js->buttons); 0009d 48 8b 4b 18 mov rcx, QWORD PTR [rbx+24] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000a1 48 85 c9 test rcx, rcx 000a4 74 0d je SHORT $LN19@closeJoyst ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000a6 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000ad ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN19@closeJoyst: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 542 : _glfw_free(js->hats); 000b3 48 8b 4b 28 mov rcx, QWORD PTR [rbx+40] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 000b7 48 85 c9 test rcx, rcx 000ba 74 0d je SHORT $LN22@closeJoyst ; 321 : _glfw.allocator.deallocate(block, _glfw.allocator.user); 000bc 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 000c3 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN22@closeJoyst: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 543 : memset(js, 0, sizeof(_GLFWjoystick)); 000c9 33 d2 xor edx, edx 000cb 41 b8 20 01 00 00 mov r8d, 288 ; 00000120H 000d1 48 8b cb mov rcx, rbx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 271 : } 000d4 48 83 c4 20 add rsp, 32 ; 00000020H 000d8 5b pop rbx ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 543 : memset(js, 0, sizeof(_GLFWjoystick)); 000d9 e9 00 00 00 00 jmp memset closeJoystick ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT deviceObjectCallback _TEXT SEGMENT dipr$1 = 32 __$ArrayPad$ = 56 doi$ = 80 user$ = 88 deviceObjectCallback PROC ; COMDAT ; 278 : { 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 83 ec 40 sub rsp, 64 ; 00000040H 0000f 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00016 48 33 c4 xor rax, rsp 00019 48 89 44 24 38 mov QWORD PTR __$ArrayPad$[rsp], rax ; 279 : _GLFWobjenumWin32* data = user; ; 280 : _GLFWjoyobjectWin32* object = data->objects + data->objectCount; 0001e 48 8b 42 08 mov rax, QWORD PTR [rdx+8] 00022 48 8b da mov rbx, rdx 00025 4c 63 42 10 movsxd r8, DWORD PTR [rdx+16] 00029 48 8b f9 mov rdi, rcx 0002c 4a 8d 34 c0 lea rsi, QWORD PTR [rax+r8*8] ; 281 : ; 282 : if (DIDFT_GETTYPE(doi->dwType) & DIDFT_AXIS) 00030 0f b6 41 18 movzx eax, BYTE PTR [rcx+24] 00034 a8 03 test al, 3 00036 0f 84 72 01 00 00 je $LN2@deviceObje ; 283 : { ; 284 : DIPROPRANGE dipr; ; 285 : ; 286 : if (memcmp(&doi->guidType, &GUID_Slider, sizeof(GUID)) == 0) 0003c 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 00040 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_Slider 00047 75 1c jne SHORT $LN4@deviceObje 00049 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 0004d 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_Slider+8 00054 75 0f jne SHORT $LN4@deviceObje ; 287 : object->offset = DIJOFS_SLIDER(data->sliderCount); 00056 8b 42 18 mov eax, DWORD PTR [rdx+24] 00059 8d 04 85 18 00 00 00 lea eax, DWORD PTR [rax*4+24] 00060 e9 cf 00 00 00 jmp $LN17@deviceObje $LN4@deviceObje: ; 288 : else if (memcmp(&doi->guidType, &GUID_XAxis, sizeof(GUID)) == 0) 00065 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 00069 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_XAxis 00070 75 14 jne SHORT $LN6@deviceObje 00072 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 00076 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_XAxis+8 0007d 75 07 jne SHORT $LN6@deviceObje ; 289 : object->offset = DIJOFS_X; 0007f 33 c0 xor eax, eax 00081 e9 ae 00 00 00 jmp $LN17@deviceObje $LN6@deviceObje: ; 290 : else if (memcmp(&doi->guidType, &GUID_YAxis, sizeof(GUID)) == 0) 00086 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 0008a 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_YAxis 00091 75 17 jne SHORT $LN8@deviceObje 00093 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 00097 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_YAxis+8 0009e 75 0a jne SHORT $LN8@deviceObje ; 291 : object->offset = DIJOFS_Y; 000a0 b8 04 00 00 00 mov eax, 4 000a5 e9 8a 00 00 00 jmp $LN17@deviceObje $LN8@deviceObje: ; 292 : else if (memcmp(&doi->guidType, &GUID_ZAxis, sizeof(GUID)) == 0) 000aa 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 000ae 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_ZAxis 000b5 75 14 jne SHORT $LN10@deviceObje 000b7 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 000bb 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_ZAxis+8 000c2 75 07 jne SHORT $LN10@deviceObje ; 293 : object->offset = DIJOFS_Z; 000c4 b8 08 00 00 00 mov eax, 8 000c9 eb 69 jmp SHORT $LN17@deviceObje $LN10@deviceObje: ; 294 : else if (memcmp(&doi->guidType, &GUID_RxAxis, sizeof(GUID)) == 0) 000cb 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 000cf 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RxAxis 000d6 75 14 jne SHORT $LN12@deviceObje 000d8 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 000dc 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RxAxis+8 000e3 75 07 jne SHORT $LN12@deviceObje ; 295 : object->offset = DIJOFS_RX; 000e5 b8 0c 00 00 00 mov eax, 12 000ea eb 48 jmp SHORT $LN17@deviceObje $LN12@deviceObje: ; 296 : else if (memcmp(&doi->guidType, &GUID_RyAxis, sizeof(GUID)) == 0) 000ec 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 000f0 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RyAxis 000f7 75 14 jne SHORT $LN14@deviceObje 000f9 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 000fd 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RyAxis+8 00104 75 07 jne SHORT $LN14@deviceObje ; 297 : object->offset = DIJOFS_RY; 00106 b8 10 00 00 00 mov eax, 16 0010b eb 27 jmp SHORT $LN17@deviceObje $LN14@deviceObje: ; 298 : else if (memcmp(&doi->guidType, &GUID_RzAxis, sizeof(GUID)) == 0) 0010d 48 8b 41 04 mov rax, QWORD PTR [rcx+4] 00111 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RzAxis 00118 0f 85 c5 00 00 00 jne $LN16@deviceObje 0011e 48 8b 41 0c mov rax, QWORD PTR [rcx+12] 00122 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_RzAxis+8 00129 0f 85 b4 00 00 00 jne $LN16@deviceObje ; 299 : object->offset = DIJOFS_RZ; 0012f b8 14 00 00 00 mov eax, 20 $LN17@deviceObje: ; 300 : else ; 301 : return DIENUM_CONTINUE; ; 302 : ; 303 : ZeroMemory(&dipr, sizeof(dipr)); 00134 89 06 mov DWORD PTR [rsi], eax ; 304 : dipr.diph.dwSize = sizeof(dipr); ; 305 : dipr.diph.dwHeaderSize = sizeof(dipr.diph); ; 306 : dipr.diph.dwObj = doi->dwType; ; 307 : dipr.diph.dwHow = DIPH_BYID; ; 308 : dipr.lMin = -32768; ; 309 : dipr.lMax = 32767; ; 310 : ; 311 : if (FAILED(IDirectInputDevice8_SetProperty(data->device, 00136 4c 8d 44 24 20 lea r8, QWORD PTR dipr$1[rsp] 0013b 8b 41 18 mov eax, DWORD PTR [rcx+24] 0013e 48 8b 0a mov rcx, QWORD PTR [rdx] 00141 ba 04 00 00 00 mov edx, 4 00146 c7 44 24 20 18 00 00 00 mov DWORD PTR dipr$1[rsp], 24 0014e c7 44 24 24 10 00 00 00 mov DWORD PTR dipr$1[rsp+4], 16 00156 89 44 24 28 mov DWORD PTR dipr$1[rsp+8], eax 0015a c7 44 24 2c 02 00 00 00 mov DWORD PTR dipr$1[rsp+12], 2 00162 c7 44 24 30 00 80 ff ff mov DWORD PTR dipr$1[rsp+16], -32768 ; ffffffffffff8000H 0016a c7 44 24 34 ff 7f 00 00 mov DWORD PTR dipr$1[rsp+20], 32767 ; 00007fffH 00172 48 8b 01 mov rax, QWORD PTR [rcx] 00175 ff 50 30 call QWORD PTR [rax+48] 00178 85 c0 test eax, eax 0017a 78 67 js SHORT $LN16@deviceObje ; 312 : DIPROP_RANGE, ; 313 : &dipr.diph))) ; 314 : { ; 315 : return DIENUM_CONTINUE; ; 316 : } ; 317 : ; 318 : if (memcmp(&doi->guidType, &GUID_Slider, sizeof(GUID)) == 0) 0017c 48 8b 47 04 mov rax, QWORD PTR [rdi+4] 00180 48 3b 05 00 00 00 00 cmp rax, QWORD PTR _glfw_GUID_Slider 00187 75 19 jne SHORT $LN19@deviceObje 00189 48 8b 47 0c mov rax, QWORD PTR [rdi+12] 0018d 48 3b 05 08 00 00 00 cmp rax, QWORD PTR _glfw_GUID_Slider+8 00194 75 0c jne SHORT $LN19@deviceObje ; 319 : { ; 320 : object->type = _GLFW_TYPE_SLIDER; 00196 c7 46 04 01 00 00 00 mov DWORD PTR [rsi+4], 1 ; 321 : data->sliderCount++; 0019d ff 43 18 inc DWORD PTR [rbx+24] ; 322 : } 001a0 eb 3e jmp SHORT $LN23@deviceObje $LN19@deviceObje: ; 323 : else ; 324 : { ; 325 : object->type = _GLFW_TYPE_AXIS; 001a2 c7 46 04 00 00 00 00 mov DWORD PTR [rsi+4], 0 ; 326 : data->axisCount++; 001a9 ff 43 14 inc DWORD PTR [rbx+20] ; 327 : } ; 328 : } 001ac eb 32 jmp SHORT $LN23@deviceObje $LN2@deviceObje: ; 329 : else if (DIDFT_GETTYPE(doi->dwType) & DIDFT_BUTTON) 001ae a8 0c test al, 12 001b0 74 14 je SHORT $LN21@deviceObje ; 330 : { ; 331 : object->offset = DIJOFS_BUTTON(data->buttonCount); 001b2 8b 42 1c mov eax, DWORD PTR [rdx+28] 001b5 83 c0 30 add eax, 48 ; 00000030H ; 332 : object->type = _GLFW_TYPE_BUTTON; 001b8 c7 46 04 02 00 00 00 mov DWORD PTR [rsi+4], 2 001bf 89 06 mov DWORD PTR [rsi], eax ; 333 : data->buttonCount++; 001c1 ff 42 1c inc DWORD PTR [rdx+28] ; 334 : } 001c4 eb 1a jmp SHORT $LN23@deviceObje $LN21@deviceObje: ; 335 : else if (DIDFT_GETTYPE(doi->dwType) & DIDFT_POV) 001c6 a8 10 test al, 16 001c8 74 16 je SHORT $LN23@deviceObje ; 336 : { ; 337 : object->offset = DIJOFS_POV(data->povCount); 001ca 8b 42 20 mov eax, DWORD PTR [rdx+32] ; 338 : object->type = _GLFW_TYPE_POV; 001cd c7 46 04 03 00 00 00 mov DWORD PTR [rsi+4], 3 001d4 8d 04 85 20 00 00 00 lea eax, DWORD PTR [rax*4+32] 001db 89 06 mov DWORD PTR [rsi], eax ; 339 : data->povCount++; 001dd ff 42 20 inc DWORD PTR [rdx+32] $LN23@deviceObje: ; 340 : } ; 341 : ; 342 : data->objectCount++; 001e0 ff 43 10 inc DWORD PTR [rbx+16] $LN16@deviceObje: ; 343 : return DIENUM_CONTINUE; ; 344 : } 001e3 b8 01 00 00 00 mov eax, 1 001e8 48 8b 4c 24 38 mov rcx, QWORD PTR __$ArrayPad$[rsp] 001ed 48 33 cc xor rcx, rsp 001f0 e8 00 00 00 00 call __security_check_cookie 001f5 48 8b 5c 24 60 mov rbx, QWORD PTR [rsp+96] 001fa 48 8b 74 24 68 mov rsi, QWORD PTR [rsp+104] 001ff 48 83 c4 40 add rsp, 64 ; 00000040H 00203 5f pop rdi 00204 c3 ret 0 deviceObjectCallback ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; COMDAT deviceCallback _TEXT SEGMENT device$ = 112 data$ = 120 dc$ = 160 dipd$ = 208 guid$ = 232 name$ = 272 __$ArrayPad$ = 528 di$ = 576 user$ = 584 deviceCallback PROC ; COMDAT ; 349 : { 00000 4c 8b dc mov r11, rsp 00003 49 89 5b 20 mov QWORD PTR [r11+32], rbx 00007 55 push rbp 00008 41 56 push r14 0000a 41 57 push r15 0000c 49 8d ab c8 fe ff ff lea rbp, QWORD PTR [r11-312] 00013 48 81 ec 20 02 00 00 sub rsp, 544 ; 00000220H 0001a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 00021 48 33 c4 xor rax, rsp 00024 48 89 85 10 01 00 00 mov QWORD PTR __$ArrayPad$[rbp-256], rax 0002b 45 33 f6 xor r14d, r14d 0002e 49 89 73 10 mov QWORD PTR [r11+16], rsi 00032 45 8b c6 mov r8d, r14d 00035 49 89 7b 18 mov QWORD PTR [r11+24], rdi 00039 48 8b d9 mov rbx, rcx 0003c 48 8d 15 9c 08 00 00 lea rdx, OFFSET FLAT:_glfw+2204 $LL4@deviceCall: ; 360 : { ; 361 : js = _glfw.joysticks + jid; ; 362 : if (js->connected) 00043 4c 8d 79 04 lea r15, QWORD PTR [rcx+4] 00047 44 39 b2 f8 fe ff ff cmp DWORD PTR [rdx-264], r14d 0004e 74 16 je SHORT $LN2@deviceCall ; 363 : { ; 364 : if (memcmp(&js->win32.guid, &di->guidInstance, sizeof(GUID)) == 0) 00050 48 8b 02 mov rax, QWORD PTR [rdx] 00053 49 3b 07 cmp rax, QWORD PTR [r15] 00056 75 0e jne SHORT $LN2@deviceCall 00058 48 8b 42 08 mov rax, QWORD PTR [rdx+8] 0005c 49 3b 47 08 cmp rax, QWORD PTR [r15+8] 00060 0f 84 c9 03 00 00 je $LN38@deviceCall $LN2@deviceCall: ; 350 : int jid = 0; ; 351 : DIDEVCAPS dc; ; 352 : DIPROPDWORD dipd; ; 353 : IDirectInputDevice8* device; ; 354 : _GLFWobjenumWin32 data; ; 355 : _GLFWjoystick* js; ; 356 : char guid[33]; ; 357 : char name[256]; ; 358 : ; 359 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++) 00066 49 81 c0 20 01 00 00 add r8, 288 ; 00000120H 0006d 48 81 c2 20 01 00 00 add rdx, 288 ; 00000120H 00074 49 81 f8 e0 10 00 00 cmp r8, 4320 ; 000010e0H 0007b 7e c6 jle SHORT $LL4@deviceCall ; 365 : return DIENUM_CONTINUE; ; 366 : } ; 367 : } ; 368 : ; 369 : if (supportsXInput(&di->guidProduct)) 0007d 48 83 c1 14 add rcx, 20 00081 e8 00 00 00 00 call supportsXInput 00086 85 c0 test eax, eax 00088 0f 85 a1 03 00 00 jne $LN38@deviceCall ; 370 : return DIENUM_CONTINUE; ; 371 : ; 372 : if (FAILED(IDirectInput8_CreateDevice(_glfw.win32.dinput8.api, 0008e 48 8b 0d 78 29 00 00 mov rcx, QWORD PTR _glfw+10616 00095 4c 8d 44 24 70 lea r8, QWORD PTR device$[rsp] 0009a 45 33 c9 xor r9d, r9d 0009d 49 8b d7 mov rdx, r15 000a0 48 8b 01 mov rax, QWORD PTR [rcx] 000a3 ff 50 18 call QWORD PTR [rax+24] 000a6 85 c0 test eax, eax 000a8 79 16 jns SHORT $LN8@deviceCall ; 373 : &di->guidInstance, ; 374 : &device, ; 375 : NULL))) ; 376 : { ; 377 : _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to create device"); 000aa 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BP@OHJGLFIP@Win32?3?5Failed?5to?5create?5device@ 000b1 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 000b6 e8 00 00 00 00 call _glfwInputError ; 378 : return DIENUM_CONTINUE; 000bb e9 6f 03 00 00 jmp $LN38@deviceCall $LN8@deviceCall: ; 379 : } ; 380 : ; 381 : if (FAILED(IDirectInputDevice8_SetDataFormat(device, &_glfwDataFormat))) 000c0 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 000c5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_glfwDataFormat 000cc 48 8b 01 mov rax, QWORD PTR [rcx] 000cf ff 50 58 call QWORD PTR [rax+88] 000d2 85 c0 test eax, eax 000d4 79 21 jns SHORT $LN9@deviceCall ; 382 : { ; 383 : _glfwInputError(GLFW_PLATFORM_ERROR, 000d6 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CI@MMBFOOEA@Win32?3?5Failed?5to?5set?5device?5dat@ 000dd b9 08 00 01 00 mov ecx, 65544 ; 00010008H 000e2 e8 00 00 00 00 call _glfwInputError ; 384 : "Win32: Failed to set device data format"); ; 385 : ; 386 : IDirectInputDevice8_Release(device); 000e7 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 000ec 48 8b 01 mov rax, QWORD PTR [rcx] 000ef ff 50 10 call QWORD PTR [rax+16] ; 387 : return DIENUM_CONTINUE; 000f2 e9 38 03 00 00 jmp $LN38@deviceCall $LN9@deviceCall: ; 388 : } ; 389 : ; 390 : ZeroMemory(&dc, sizeof(dc)); ; 391 : dc.dwSize = sizeof(dc); ; 392 : ; 393 : if (FAILED(IDirectInputDevice8_GetCapabilities(device, &dc))) 000f7 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 000fc 48 8d 55 a0 lea rdx, QWORD PTR dc$[rbp-256] 00100 0f 57 c0 xorps xmm0, xmm0 00103 4c 89 75 c4 mov QWORD PTR dc$[rbp-220], r14 00107 0f 57 c9 xorps xmm1, xmm1 0010a c7 45 a0 2c 00 00 00 mov DWORD PTR dc$[rbp-256], 44 ; 0000002cH 00111 f3 0f 7f 45 a4 movdqu XMMWORD PTR dc$[rbp-252], xmm0 00116 f3 0f 7f 4d b4 movdqu XMMWORD PTR dc$[rbp-236], xmm1 0011b 48 8b 01 mov rax, QWORD PTR [rcx] 0011e ff 50 18 call QWORD PTR [rax+24] 00121 85 c0 test eax, eax 00123 79 21 jns SHORT $LN10@deviceCall ; 394 : { ; 395 : _glfwInputError(GLFW_PLATFORM_ERROR, 00125 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CL@JHIPHFAC@Win32?3?5Failed?5to?5query?5device?5c@ 0012c b9 08 00 01 00 mov ecx, 65544 ; 00010008H 00131 e8 00 00 00 00 call _glfwInputError ; 396 : "Win32: Failed to query device capabilities"); ; 397 : ; 398 : IDirectInputDevice8_Release(device); 00136 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 0013b 48 8b 01 mov rax, QWORD PTR [rcx] 0013e ff 50 10 call QWORD PTR [rax+16] ; 399 : return DIENUM_CONTINUE; 00141 e9 e9 02 00 00 jmp $LN38@deviceCall $LN10@deviceCall: ; 400 : } ; 401 : ; 402 : ZeroMemory(&dipd, sizeof(dipd)); ; 403 : dipd.diph.dwSize = sizeof(dipd); ; 404 : dipd.diph.dwHeaderSize = sizeof(dipd.diph); ; 405 : dipd.diph.dwHow = DIPH_DEVICE; ; 406 : dipd.dwData = DIPROPAXISMODE_ABS; ; 407 : ; 408 : if (FAILED(IDirectInputDevice8_SetProperty(device, 00146 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 0014b 4c 8d 45 d0 lea r8, QWORD PTR dipd$[rbp-256] 0014f 48 c7 45 d4 10 00 00 00 mov QWORD PTR dipd$[rbp-252], 16 00157 ba 02 00 00 00 mov edx, 2 0015c c7 45 d0 14 00 00 00 mov DWORD PTR dipd$[rbp-256], 20 00163 4c 89 75 dc mov QWORD PTR dipd$[rbp-244], r14 00167 48 8b 01 mov rax, QWORD PTR [rcx] 0016a ff 50 30 call QWORD PTR [rax+48] 0016d 85 c0 test eax, eax 0016f 79 21 jns SHORT $LN11@deviceCall ; 409 : DIPROP_AXISMODE, ; 410 : &dipd.diph))) ; 411 : { ; 412 : _glfwInputError(GLFW_PLATFORM_ERROR, 00171 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CG@JJEBGGIE@Win32?3?5Failed?5to?5set?5device?5axi@ 00178 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 0017d e8 00 00 00 00 call _glfwInputError ; 413 : "Win32: Failed to set device axis mode"); ; 414 : ; 415 : IDirectInputDevice8_Release(device); 00182 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 00187 48 8b 01 mov rax, QWORD PTR [rcx] 0018a ff 50 10 call QWORD PTR [rax+16] ; 416 : return DIENUM_CONTINUE; 0018d e9 9d 02 00 00 jmp $LN38@deviceCall $LN11@deviceCall: ; 421 : data.objects = _glfw_calloc(dc.dwAxes + (size_t) dc.dwButtons + dc.dwPOVs, 00192 8b 45 b0 mov eax, DWORD PTR dc$[rbp-240] 00195 0f 57 c0 xorps xmm0, xmm0 00198 8b 4d b4 mov ecx, DWORD PTR dc$[rbp-236] 0019b 4c 8b 54 24 70 mov r10, QWORD PTR device$[rsp] 001a0 48 03 c8 add rcx, rax 001a3 8b 45 ac mov eax, DWORD PTR dc$[rbp-244] 001a6 4c 89 75 98 mov QWORD PTR data$[rbp-224], r14 001aa 4c 89 54 24 78 mov QWORD PTR data$[rsp], r10 001af f3 0f 7f 45 88 movdqu XMMWORD PTR data$[rbp-240], xmm0 001b4 48 03 c8 add rcx, rax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 273 : if (count && size) 001b7 74 42 je SHORT $LN19@deviceCall ; 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); 001b9 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 001c0 48 8d 3c cd 00 00 00 00 lea rdi, QWORD PTR [rcx*8] 001c8 48 8b cf mov rcx, rdi 001cb ff 15 08 00 00 00 call QWORD PTR _glfw+8 ; 284 : if (block) 001d1 48 85 c0 test rax, rax 001d4 74 14 je SHORT $LN22@deviceCall ; 285 : return memset(block, 0, count * size); 001d6 4c 8b c7 mov r8, rdi 001d9 33 d2 xor edx, edx 001db 48 8b c8 mov rcx, rax 001de e8 00 00 00 00 call memset 001e3 4c 8b 54 24 70 mov r10, QWORD PTR device$[rsp] 001e8 eb 14 jmp SHORT $LN20@deviceCall $LN22@deviceCall: ; 286 : else ; 287 : { ; 288 : _glfwInputError(GLFW_OUT_OF_MEMORY, NULL); 001ea 33 d2 xor edx, edx 001ec b9 05 00 01 00 mov ecx, 65541 ; 00010005H 001f1 e8 00 00 00 00 call _glfwInputError ; 289 : return NULL; 001f6 4c 8b 54 24 70 mov r10, QWORD PTR device$[rsp] $LN19@deviceCall: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 421 : data.objects = _glfw_calloc(dc.dwAxes + (size_t) dc.dwButtons + dc.dwPOVs, 001fb 49 8b c6 mov rax, r14 $LN20@deviceCall: 001fe 48 89 45 80 mov QWORD PTR data$[rbp-248], rax ; 422 : sizeof(_GLFWjoyobjectWin32)); ; 423 : ; 424 : if (FAILED(IDirectInputDevice8_EnumObjects(device, 00202 4c 8d 44 24 78 lea r8, QWORD PTR data$[rsp] 00207 49 8b 02 mov rax, QWORD PTR [r10] 0020a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:deviceObjectCallback 00211 41 b9 1f 00 00 00 mov r9d, 31 00217 49 8b ca mov rcx, r10 0021a ff 50 20 call QWORD PTR [rax+32] 0021d 85 c0 test eax, eax 0021f 79 3b jns SHORT $LN12@deviceCall ; 425 : deviceObjectCallback, ; 426 : &data, ; 427 : DIDFT_AXIS | DIDFT_BUTTON | DIDFT_POV))) ; 428 : { ; 429 : _glfwInputError(GLFW_PLATFORM_ERROR, 00221 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CK@FKJPIIOF@Win32?3?5Failed?5to?5enumerate?5devi@ 00228 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 0022d e8 00 00 00 00 call _glfwInputError ; 430 : "Win32: Failed to enumerate device objects"); ; 431 : ; 432 : IDirectInputDevice8_Release(device); 00232 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 00237 48 8b 01 mov rax, QWORD PTR [rcx] 0023a ff 50 10 call QWORD PTR [rax+16] ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\init.c ; 320 : if (block) 0023d 48 8b 4d 80 mov rcx, QWORD PTR data$[rbp-248] 00241 48 85 c9 test rcx, rcx 00244 0f 84 e5 01 00 00 je $LN38@deviceCall ; 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 00257 e9 d3 01 00 00 jmp $LN38@deviceCall $LN12@deviceCall: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 437 : qsort(data.objects, data.objectCount, 0025c 48 63 55 88 movsxd rdx, DWORD PTR data$[rbp-240] 00260 4c 8d 0d 00 00 00 00 lea r9, OFFSET FLAT:compareJoystickObjects 00267 48 8b 4d 80 mov rcx, QWORD PTR data$[rbp-248] 0026b 41 b8 08 00 00 00 mov r8d, 8 00271 ff 15 00 00 00 00 call QWORD PTR __imp_qsort ; 438 : sizeof(_GLFWjoyobjectWin32), ; 439 : compareJoystickObjects); ; 440 : ; 441 : if (!WideCharToMultiByte(CP_UTF8, 0, 00277 4c 89 74 24 38 mov QWORD PTR [rsp+56], r14 0027c 48 8d 45 10 lea rax, QWORD PTR name$[rbp-256] 00280 33 d2 xor edx, edx 00282 4c 89 74 24 30 mov QWORD PTR [rsp+48], r14 00287 4c 8d 43 28 lea r8, QWORD PTR [rbx+40] 0028b c7 44 24 28 00 01 00 00 mov DWORD PTR [rsp+40], 256 ; 00000100H 00293 b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H 00298 48 89 44 24 20 mov QWORD PTR [rsp+32], rax 0029d 44 8d 4a ff lea r9d, QWORD PTR [rdx-1] 002a1 ff 15 00 00 00 00 call QWORD PTR __imp_WideCharToMultiByte 002a7 85 c0 test eax, eax 002a9 75 16 jne SHORT $LN13@deviceCall ; 442 : di->tszInstanceName, -1, ; 443 : name, sizeof(name), ; 444 : NULL, NULL)) ; 445 : { ; 446 : _glfwInputError(GLFW_PLATFORM_ERROR, 002ab 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0DA@IIGLKABA@Win32?3?5Failed?5to?5convert?5joysti@ 002b2 b9 08 00 01 00 mov ecx, 65544 ; 00010008H 002b7 e8 00 00 00 00 call _glfwInputError 002bc e9 db 00 00 00 jmp $LN69@deviceCall $LN13@deviceCall: ; 447 : "Win32: Failed to convert joystick name to UTF-8"); ; 448 : ; 449 : IDirectInputDevice8_Release(device); ; 450 : _glfw_free(data.objects); ; 451 : return DIENUM_STOP; ; 452 : } ; 453 : ; 454 : // Generate a joystick GUID that matches the SDL 2.0.5+ one ; 455 : if (memcmp(&di->guidProduct.Data4[2], "PIDVID", 6) == 0) 002c1 81 7b 1e 50 49 44 56 cmp DWORD PTR [rbx+30], 1447315792 ; 56444950H 002c8 75 42 jne SHORT $LN14@deviceCall 002ca 66 81 7b 22 49 44 cmp WORD PTR [rbx+34], 17481 ; 00004449H 002d0 75 3a jne SHORT $LN14@deviceCall ; 456 : { ; 457 : sprintf(guid, "03000000%02x%02x0000%02x%02x000000000000", 002d2 8b 53 14 mov edx, DWORD PTR [rbx+20] 002d5 8b c2 mov eax, edx 002d7 c1 e8 10 shr eax, 16 002da 44 8b d2 mov r10d, edx 002dd 0f b6 c8 movzx ecx, al 002e0 8b c2 mov eax, edx 002e2 41 c1 ea 18 shr r10d, 24 002e6 c1 e8 08 shr eax, 8 002e9 44 89 54 24 28 mov DWORD PTR [rsp+40], r10d 002ee 44 0f b6 c2 movzx r8d, dl 002f2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@NMCAPCBP@03000000?$CF02x?$CF02x0000?$CF02x?$CF02x000@ 002f9 89 4c 24 20 mov DWORD PTR [rsp+32], ecx 002fd 48 8d 4d e8 lea rcx, QWORD PTR guid$[rbp-256] 00301 44 0f b6 c8 movzx r9d, al 00305 e8 00 00 00 00 call sprintf ; 458 : (uint8_t) di->guidProduct.Data1, ; 459 : (uint8_t) (di->guidProduct.Data1 >> 8), ; 460 : (uint8_t) (di->guidProduct.Data1 >> 16), ; 461 : (uint8_t) (di->guidProduct.Data1 >> 24)); ; 462 : } 0030a eb 68 jmp SHORT $LN15@deviceCall $LN14@deviceCall: ; 463 : else ; 464 : { ; 465 : sprintf(guid, "05000000%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x00", 0030c 0f be 4d 19 movsx ecx, BYTE PTR name$[rbp-247] 00310 0f be 55 18 movsx edx, BYTE PTR name$[rbp-248] 00314 0f be 45 1a movsx eax, BYTE PTR name$[rbp-246] 00318 44 0f be 55 17 movsx r10d, BYTE PTR name$[rbp-249] 0031d 44 0f be 5d 16 movsx r11d, BYTE PTR name$[rbp-250] 00322 0f be 5d 15 movsx ebx, BYTE PTR name$[rbp-251] 00326 0f be 7d 14 movsx edi, BYTE PTR name$[rbp-252] 0032a 0f be 75 13 movsx esi, BYTE PTR name$[rbp-253] 0032e 44 0f be 75 12 movsx r14d, BYTE PTR name$[rbp-254] 00333 44 0f be 4d 11 movsx r9d, BYTE PTR name$[rbp-255] 00338 44 0f be 45 10 movsx r8d, BYTE PTR name$[rbp-256] 0033d 89 44 24 60 mov DWORD PTR [rsp+96], eax 00341 89 4c 24 58 mov DWORD PTR [rsp+88], ecx 00345 48 8d 4d e8 lea rcx, QWORD PTR guid$[rbp-256] 00349 89 54 24 50 mov DWORD PTR [rsp+80], edx 0034d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0DH@LCNJGHOP@05000000?$CF02x?$CF02x?$CF02x?$CF02x?$CF02x?$CF02@ 00354 44 89 54 24 48 mov DWORD PTR [rsp+72], r10d 00359 44 89 5c 24 40 mov DWORD PTR [rsp+64], r11d 0035e 89 5c 24 38 mov DWORD PTR [rsp+56], ebx 00362 89 7c 24 30 mov DWORD PTR [rsp+48], edi 00366 89 74 24 28 mov DWORD PTR [rsp+40], esi 0036a 44 89 74 24 20 mov DWORD PTR [rsp+32], r14d 0036f e8 00 00 00 00 call sprintf $LN15@deviceCall: ; 466 : name[0], name[1], name[2], name[3], ; 467 : name[4], name[5], name[6], name[7], ; 468 : name[8], name[9], name[10]); ; 469 : } ; 470 : ; 471 : js = _glfwAllocJoystick(name, guid, 00374 44 8b 45 90 mov r8d, DWORD PTR data$[rbp-232] 00378 48 8d 55 e8 lea rdx, QWORD PTR guid$[rbp-256] 0037c 8b 45 98 mov eax, DWORD PTR data$[rbp-224] 0037f 48 8d 4d 10 lea rcx, QWORD PTR name$[rbp-256] 00383 44 03 45 8c add r8d, DWORD PTR data$[rbp-236] 00387 44 8b 4d 94 mov r9d, DWORD PTR data$[rbp-228] 0038b 89 44 24 20 mov DWORD PTR [rsp+32], eax 0038f e8 00 00 00 00 call _glfwAllocJoystick 00394 48 8b c8 mov rcx, rax ; 472 : data.axisCount + data.sliderCount, ; 473 : data.buttonCount, ; 474 : data.povCount); ; 475 : if (!js) 00397 48 85 c0 test rax, rax 0039a 75 25 jne SHORT $LN16@deviceCall $LN69@deviceCall: ; 476 : { ; 477 : IDirectInputDevice8_Release(device); ; 478 : _glfw_free(data.objects); ; 479 : return DIENUM_STOP; 0039c 48 8b 4c 24 70 mov rcx, QWORD PTR device$[rsp] 003a1 48 8b 01 mov rax, QWORD PTR [rcx] 003a4 ff 50 10 call QWORD PTR [rax+16] 003a7 48 8b 4d 80 mov rcx, QWORD PTR data$[rbp-248] 003ab 48 85 c9 test rcx, rcx 003ae 74 0d je SHORT $LN32@deviceCall 003b0 48 8b 15 20 00 00 00 mov rdx, QWORD PTR _glfw+32 003b7 ff 15 18 00 00 00 call QWORD PTR _glfw+24 $LN32@deviceCall: 003bd 33 c0 xor eax, eax 003bf eb 73 jmp SHORT $LN1@deviceCall $LN16@deviceCall: ; 480 : } ; 481 : ; 482 : js->win32.device = device; 003c1 48 8b 44 24 70 mov rax, QWORD PTR device$[rsp] 003c6 48 89 81 00 01 00 00 mov QWORD PTR [rcx+256], rax ; 483 : js->win32.guid = di->guidInstance; 003cd 41 0f 10 07 movups xmm0, XMMWORD PTR [r15] 003d1 0f 11 81 0c 01 00 00 movups XMMWORD PTR [rcx+268], xmm0 ; 484 : js->win32.objects = data.objects; 003d8 48 8b 45 80 mov rax, QWORD PTR data$[rbp-248] 003dc 48 89 81 f0 00 00 00 mov QWORD PTR [rcx+240], rax ; 485 : js->win32.objectCount = data.objectCount; 003e3 8b 45 88 mov eax, DWORD PTR data$[rbp-240] 003e6 89 81 f8 00 00 00 mov DWORD PTR [rcx+248], eax ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\input.c ; 424 : js->connected = GLFW_TRUE; 003ec c7 41 04 01 00 00 00 mov DWORD PTR [rcx+4], 1 ; 425 : else if (event == GLFW_DISCONNECTED) ; 426 : js->connected = GLFW_FALSE; ; 427 : ; 428 : if (_glfw.callbacks.joystick) 003f3 4c 8b 05 70 1b 00 00 mov r8, QWORD PTR _glfw+7024 003fa 4d 85 c0 test r8, r8 003fd 74 30 je SHORT $LN38@deviceCall ; 429 : _glfw.callbacks.joystick((int)(js - _glfw.joysticks), event); 003ff 48 8d 05 90 07 00 00 lea rax, OFFSET FLAT:_glfw+1936 00406 48 2b c8 sub rcx, rax 00409 48 b8 39 8e e3 38 8e e3 38 0e mov rax, 1024819115206086201 ; 0e38e38e38e38e39H 00413 48 f7 e9 imul rcx 00416 48 8b ca mov rcx, rdx 00419 ba 01 00 04 00 mov edx, 262145 ; 00040001H 0041e 48 c1 f9 04 sar rcx, 4 00422 48 8b c1 mov rax, rcx 00425 48 c1 e8 3f shr rax, 63 ; 0000003fH 00429 48 03 c8 add rcx, rax 0042c 41 ff d0 call r8 $LN38@deviceCall: ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpGraphic\code\glfw\win32_joystick.c ; 489 : } 0042f b8 01 00 00 00 mov eax, 1 $LN1@deviceCall: 00434 48 8b bc 24 50 02 00 00 mov rdi, QWORD PTR [rsp+592] 0043c 48 8b b4 24 48 02 00 00 mov rsi, QWORD PTR [rsp+584] 00444 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp-256] 0044b 48 33 cc xor rcx, rsp 0044e e8 00 00 00 00 call __security_check_cookie 00453 48 8b 9c 24 58 02 00 00 mov rbx, QWORD PTR [rsp+600] 0045b 48 81 c4 20 02 00 00 add rsp, 544 ; 00000220H 00462 41 5f pop r15 00464 41 5e pop r14 00466 5d pop rbp 00467 c3 ret 0 deviceCallback ENDP _TEXT ENDS END