Files
stgsharp/实验/contexttest/StgSharpC/x64/Release/win32_joystick.cod
T

4430 lines
144 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; 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