Files
stgsharp/源代码/StgSharpC/x64/Debug/win32_joystick.cod
T

4784 lines
131 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 MSVCRTD
INCLUDELIB OLDNAMES
msvcjmc SEGMENT
__9C03CD75_concurrencysal@h DB 01H
__CA64BAF1_sal@h DB 01H
__95655E73_vadefs@h DB 01H
__1D560A45_vcruntime@h DB 01H
__1B0272D9_corecrt@h DB 01H
__13F5961F_stddef@h DB 01H
__ED683015_stdint@h DB 01H
__89F75FCD_ssgc_internal@h DB 01H
__A5E73FD0_glfw3@h DB 01H
__1D45B1A5_glfw_null_platform@h DB 01H
__74484FB3_corecrt_wctype@h DB 01H
__CBE172F9_wctype@h DB 01H
__0ED14FEE_winpackagefamily@h DB 01H
__F92EF742_winapifamily@h DB 01H
__22E515EB_sdkddkver@h DB 01H
__F214EFBF_excpt@h DB 01H
__D9B78EDA_stdarg@h DB 01H
__29F49F40_specstrings_undef@h DB 01H
__D0F42932_specstrings_strict@h DB 01H
__F00405FD_sdv_driverspecs@h DB 01H
__173E09CA_driverspecs@h DB 01H
__9A452361_specstrings@h DB 01H
__1EC467ED_ctype@h DB 01H
__98517906_kernelspecs@h DB 01H
__D3497022_basetsd@h DB 01H
__61CC25A1_errno@h DB 01H
__7061C667_vcruntime_string@h DB 01H
__E4C945B4_corecrt_memcpy_s@h DB 01H
__8EAFF484_corecrt_memory@h DB 01H
__6490AEC5_corecrt_wstring@h DB 01H
__E8295E1E_string@h DB 01H
__7FCB5136_guiddef@h DB 01H
__FF8A9E11_pshpack4@h DB 01H
__D5438902_poppack@h DB 01H
__FB07E2A3_pshpack2@h DB 01H
__F6906775_pshpack8@h DB 01H
__F9415CFA_pshpack1@h DB 01H
__E58C6F1C_apiset@h DB 01H
__A5C52262_ktmtypes@h DB 01H
__FBBA8F9D_winnt@h DB 01H
__A32D3D2C_minwindef@h DB 01H
__7D798299_windef@h DB 01H
__9AE108E9_apisetcconv@h DB 01H
__9CE53D2C_minwinbase@h DB 01H
__5D0AA210_apiquery2@h DB 01H
__4DD4E726_processenv@h DB 01H
__3575CC96_fileapi@h DB 01H
__8EA220E6_fileapifromapp@h DB 01H
__BF9B31FE_debugapi@h DB 01H
__C3AFE134_utilapiset@h DB 01H
__76F69E51_handleapi@h DB 01H
__7E63D784_errhandlingapi@h DB 01H
__FFA7003C_fibersapi@h DB 01H
__8971CECF_namedpipeapi@h DB 01H
__46C9D8A6_profileapi@h DB 01H
__98D4F0A3_heapapi@h DB 01H
__50EF2A88_ioapiset@h DB 01H
__92EA1464_synchapi@h DB 01H
__A53D8AED_interlockedapi@h DB 01H
__B506CAAF_processthreadsapi@h DB 01H
__FF735694_sysinfoapi@h DB 01H
__29589789_memoryapi@h DB 01H
__E9C7A663_enclaveapi@h DB 01H
__D035F9F7_threadpoollegacyapiset@h DB 01H
__C899130C_threadpoolapiset@h DB 01H
__E0441EE7_jobapi@h DB 01H
__CEF86838_jobapi2@h DB 01H
__35AC6B9A_wow64apiset@h DB 01H
__C8AE41A5_libloaderapi@h DB 01H
__CC9E232D_securitybaseapi@h DB 01H
__C9D0C9B8_namespaceapi@h DB 01H
__30FF9CAD_systemtopologyapi@h DB 01H
__4D358795_processtopologyapi@h DB 01H
__40446D10_securityappcontainer@h DB 01H
__3A952EDF_realtimeapiset@h DB 01H
__F4865F4B_winerror@h DB 01H
__53C1BD93_timezoneapi@h DB 01H
__1FFBEDBF_winbase@h DB 01H
__43D3FA34_wingdi@h DB 01H
__D24A7391_tvout@h DB 01H
__7713A6C8_winuser@h DB 01H
__0B345F71_datetimeapi@h DB 01H
__9AC6960C_winnls@h DB 01H
__973A40A8_stringapiset@h DB 01H
__CC46FEE2_wincontypes@h DB 01H
__97D70BE1_consoleapi@h DB 01H
__27EC5E18_consoleapi2@h DB 01H
__262E342F_consoleapi3@h DB 01H
__641DCD70_wincon@h DB 01H
__5A96C7A7_verrsrc@h DB 01H
__B69C6FF2_winver@h DB 01H
__7AEB8C37_reason@h DB 01H
__59F1A8A9_winreg@h DB 01H
__EE0E2B7F_wnnc@h DB 01H
__DCDB7054_winnetwk@h DB 01H
__81DDEDE3_stralign@h DB 01H
__2134D1B4_winsvc@h DB 01H
__11C07376_mcx@h DB 01H
__577CE3E7_ime_cmodes@h DB 01H
__1E72C31E_imm@h DB 01H
__E15BF856_windows@h DB 01H
__DF8704F0_rpcdcep@h DB 01H
__5C6CA7BB_rpcdce@h DB 01H
__853533C4_rpcnsi@h DB 01H
__2D2406C3_rpcnterr@h DB 01H
__64521D71_rpcasync@h DB 01H
__AADCBA08_rpc@h DB 01H
__1FE431C9_rpcnsip@h DB 01H
__2B741F2D_rpcsal@h DB 01H
__92623256_rpcndr@h DB 01H
__45DED006_corecrt_malloc@h DB 01H
__FD6DBD68_corecrt_search@h DB 01H
__E2E33A61_corecrt_wstdlib@h DB 01H
__531E1E2A_limits@h DB 01H
__6E5ACABA_stdlib@h DB 01H
__9C18532E_wtypesbase@h DB 01H
__30B1AFDA_unknwnbase@h DB 01H
__328C1996_objidlbase@h DB 01H
__C4E06B6A_cguid@h DB 01H
__434718C5_combaseapi@h DB 01H
__EA2E1D6D_wtypes@h DB 01H
__DE6FDEF1_unknwn@h DB 01H
__CCE0BACC_objidl@h DB 01H
__8C7011E5_oaidl@h DB 01H
__2E0B7863_propidlbase@h DB 01H
__BF4CF2EC_coml2api@h DB 01H
__6D897344_oleidl@h DB 01H
__1129FC2C_servprov@h DB 01H
__757952E4_msxml@h DB 01H
__B1191D53_urlmon@h DB 01H
__404D1A47_propidl@h DB 01H
__A1C63593_objbase@h DB 01H
__9F7C87B7_dinput@h DB 01H
__B468A3D3_xinput@h DB 01H
__AD768F06_dbt@h DB 01H
__D83367F8_glfw_win32_platform@h DB 01H
__53CB9229_glfw_null_joystick@h DB 01H
__96BD4474_glfw_win32_joystick@h DB 01H
__7D74CEA8_glfw_win32_thread@h DB 01H
__C7421531_glfw_win32_time@h DB 01H
__43B1F397_glfw_platform@h DB 01H
__A547227D_glfw_internal@h DB 01H
__44420885_corecrt_stdio_config@h DB 01H
__AB601D8D_corecrt_wstdio@h DB 01H
__C1EC35D3_stdio@h DB 01H
__BB16330F_corecrt_math@h DB 01H
__3BF2A406_math@h DB 01H
__BD81096D_win32_joystick@c DB 01H
msvcjmc ENDS
_DATA SEGMENT
_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
CONST SEGMENT
_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_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_YAxis DD 0a36d02e1H
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_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_RyAxis DD 0a36d02f5H
DW 0c9f3H
DW 011cfH
DB 0bfH
DB 0c7H
DB 044H
DB 045H
DB 053H
DB 054H
DB 00H
DB 00H
_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_Slider DD 0a36d02e4H
DW 0c9f3H
DW 011cfH
DB 0bfH
DB 0c7H
DB 044H
DB 045H
DB 053H
DB 054H
DB 00H
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
_glfwDataFormat DD 020H
DD 018H
DD 02H
DD 050H
DD 02cH
ORG $+4
DQ FLAT:_glfwObjectDataFormats
CONST ENDS
PUBLIC _glfwInitJoysticksWin32
PUBLIC _glfwTerminateJoysticksWin32
PUBLIC _glfwPollJoystickWin32
PUBLIC _glfwGetMappingNameWin32
PUBLIC _glfwUpdateGamepadGUIDWin32
PUBLIC _glfwDetectJoystickConnectionWin32
PUBLIC _glfwDetectJoystickDisconnectionWin32
PUBLIC __local_stdio_printf_options
PUBLIC _vsnprintf_l
PUBLIC _vsprintf_l
PUBLIC sprintf
PUBLIC __JustMyCode_Default
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'
PUBLIC __real@3f000000
PUBLIC __real@3f800000
PUBLIC __real@42ff0000
PUBLIC __real@46ffff00
PUBLIC __xmm@80000000800000008000000080000000
EXTRN __report_rangecheckfailure:PROC
EXTRN memcmp:PROC
EXTRN memset:PROC
EXTRN strstr:PROC
EXTRN strcmp:PROC
EXTRN __imp_strncpy:PROC
EXTRN __imp_GetRawInputDeviceInfoA:PROC
EXTRN __imp_GetRawInputDeviceList:PROC
EXTRN __imp_WideCharToMultiByte:PROC
EXTRN __imp_qsort:PROC
EXTRN _glfwInputJoystick:PROC
EXTRN _glfwInputJoystickAxis:PROC
EXTRN _glfwInputJoystickButton:PROC
EXTRN _glfwInputJoystickHat:PROC
EXTRN _glfwInputError:PROC
EXTRN _glfwAllocJoystick:PROC
EXTRN _glfwFreeJoystick:PROC
EXTRN _glfw_calloc:PROC
EXTRN _glfw_free:PROC
EXTRN __imp___stdio_common_vsprintf:PROC
EXTRN _RTC_CheckStackVars:PROC
EXTRN _RTC_InitBase:PROC
EXTRN _RTC_Shutdown:PROC
EXTRN __CheckForDebuggerJustMyCode:PROC
EXTRN __GSHandlerCheck:PROC
EXTRN __security_check_cookie:PROC
EXTRN _glfw:BYTE
EXTRN __ImageBase:BYTE
EXTRN __security_cookie:QWORD
EXTRN _fltused:DWORD
_DATA SEGMENT
COMM ?_OptionsStorage@?1??__local_stdio_printf_options@@9@9:QWORD ; `__local_stdio_printf_options'::`2'::_OptionsStorage
_DATA ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwInitJoysticksWin32 DD imagerel $LN5
DD imagerel $LN5+123
DD imagerel $unwind$_glfwInitJoysticksWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwTerminateJoysticksWin32 DD imagerel $LN7
DD imagerel $LN7+124
DD imagerel $unwind$_glfwTerminateJoysticksWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwPollJoystickWin32 DD imagerel $LN34
DD imagerel $LN34+1760
DD imagerel $unwind$_glfwPollJoystickWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwGetMappingNameWin32 DD imagerel $LN3
DD imagerel $LN3+44
DD imagerel $unwind$_glfwGetMappingNameWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwUpdateGamepadGUIDWin32 DD imagerel $LN4
DD imagerel $LN4+197
DD imagerel $unwind$_glfwUpdateGamepadGUIDWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwDetectJoystickConnectionWin32 DD imagerel $LN16
DD imagerel $LN16+501
DD imagerel $unwind$_glfwDetectJoystickConnectionWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_glfwDetectJoystickDisconnectionWin32 DD imagerel $LN7
DD imagerel $LN7+111
DD imagerel $unwind$_glfwDetectJoystickDisconnectionWin32
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$__local_stdio_printf_options DD imagerel $LN3
DD imagerel $LN3+44
DD imagerel $unwind$__local_stdio_printf_options
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_vsnprintf_l DD imagerel $LN5
DD imagerel $LN5+158
DD imagerel $unwind$_vsnprintf_l
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_vsprintf_l DD imagerel $LN3
DD imagerel $LN3+101
DD imagerel $unwind$_vsprintf_l
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$sprintf DD imagerel $LN3
DD imagerel $LN3+184
DD imagerel $unwind$sprintf
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$getDeviceDescription DD imagerel getDeviceDescription
DD imagerel getDeviceDescription+240
DD imagerel $unwind$getDeviceDescription
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$compareJoystickObjects DD imagerel compareJoystickObjects
DD imagerel compareJoystickObjects+116
DD imagerel $unwind$compareJoystickObjects
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$supportsXInput DD imagerel supportsXInput
DD imagerel supportsXInput+592
DD imagerel $unwind$supportsXInput
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$closeJoystick DD imagerel closeJoystick
DD imagerel closeJoystick+174
DD imagerel $unwind$closeJoystick
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$deviceObjectCallback DD imagerel deviceObjectCallback
DD imagerel deviceObjectCallback+932
DD imagerel $unwind$deviceObjectCallback
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$deviceCallback DD imagerel deviceCallback
DD imagerel deviceCallback+1663
DD imagerel $unwind$deviceCallback
pdata ENDS
; COMDAT __xmm@80000000800000008000000080000000
CONST SEGMENT
__xmm@80000000800000008000000080000000 DB 00H, 00H, 00H, 080H, 00H, 00H, 00H
DB 080H, 00H, 00H, 00H, 080H, 00H, 00H, 00H, 080H
CONST ENDS
; COMDAT __real@46ffff00
CONST SEGMENT
__real@46ffff00 DD 046ffff00r ; 32767.5
CONST ENDS
; COMDAT __real@42ff0000
CONST SEGMENT
__real@42ff0000 DD 042ff0000r ; 127.5
CONST ENDS
; COMDAT __real@3f800000
CONST SEGMENT
__real@3f800000 DD 03f800000r ; 1
CONST ENDS
; COMDAT __real@3f000000
CONST SEGMENT
__real@3f000000 DD 03f000000r ; 0.5
CONST ENDS
; COMDAT rtc$TMZ
rtc$TMZ SEGMENT
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
rtc$TMZ ENDS
; COMDAT rtc$IMZ
rtc$IMZ SEGMENT
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
rtc$IMZ ENDS
; COMDAT ??_C@_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'
CONST ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 03dH
DW 0664H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$deviceCallback DD 075074419H
DD 0115731aH
DD 0700e0091H
DD 0300c600dH
DD 0500bH
DD imagerel __GSHandlerCheck
DD 0470H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
deviceCallback$rtcName$0 DB 064H
DB 063H
DB 00H
ORG $+1
deviceCallback$rtcName$1 DB 064H
DB 069H
DB 070H
DB 064H
DB 00H
ORG $+3
deviceCallback$rtcName$2 DB 064H
DB 065H
DB 076H
DB 069H
DB 063H
DB 065H
DB 00H
ORG $+1
deviceCallback$rtcName$3 DB 064H
DB 061H
DB 074H
DB 061H
DB 00H
ORG $+3
deviceCallback$rtcName$4 DB 067H
DB 075H
DB 069H
DB 064H
DB 00H
ORG $+3
deviceCallback$rtcName$5 DB 06eH
DB 061H
DB 06dH
DB 065H
DB 00H
ORG $+7
deviceCallback$rtcVarDesc DD 01e0H
DD 0100H
DQ FLAT:deviceCallback$rtcName$5
DD 0198H
DD 021H
DQ FLAT:deviceCallback$rtcName$4
DD 0138H
DD 028H
DQ FLAT:deviceCallback$rtcName$3
DD 0118H
DD 08H
DQ FLAT:deviceCallback$rtcName$2
DD 0e8H
DD 014H
DQ FLAT:deviceCallback$rtcName$1
DD 098H
DD 02cH
DQ FLAT:deviceCallback$rtcName$0
ORG $+288
deviceCallback$rtcFrameData DD 06H
DD 00H
DQ FLAT:deviceCallback$rtcVarDesc
CONST ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 03bH
DW 038bH
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$deviceObjectCallback DD 025054219H
DD 01132318H
DD 0700c002bH
DD 0500bH
DD imagerel __GSHandlerCheck
DD 0148H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
deviceObjectCallback$rtcName$0 DB 064H
DB 069H
DB 070H
DB 072H
DB 00H
ORG $+11
deviceObjectCallback$rtcVarDesc DD 068H
DD 018H
DQ FLAT:deviceObjectCallback$rtcName$0
ORG $+48
deviceObjectCallback$rtcFrameData DD 01H
DD 00H
DQ FLAT:deviceObjectCallback$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$closeJoystick DD 025051301H
DD 010e2313H
DD 07007001dH
DD 05006H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 036H
DW 0237H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$supportsXInput DD 025053d19H
DD 010e2313H
DD 070070079H
DD 05006H
DD imagerel __GSHandlerCheck
DD 03b8H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
supportsXInput$rtcName$0 DB 063H
DB 06fH
DB 075H
DB 06eH
DB 074H
DB 00H
ORG $+2
supportsXInput$rtcName$1 DB 072H
DB 064H
DB 069H
DB 00H
supportsXInput$rtcName$2 DB 06eH
DB 061H
DB 06dH
DB 065H
DB 00H
ORG $+3
supportsXInput$rtcName$3 DB 073H
DB 069H
DB 07aH
DB 065H
DB 00H
ORG $+7
supportsXInput$rtcVarDesc DD 0204H
DD 04H
DQ FLAT:supportsXInput$rtcName$3
DD 0f0H
DD 0100H
DQ FLAT:supportsXInput$rtcName$2
DD 0a8H
DD 020H
DQ FLAT:supportsXInput$rtcName$1
DD 044H
DD 04H
DQ FLAT:supportsXInput$rtcName$0
ORG $+192
supportsXInput$rtcFrameData DD 04H
DD 00H
DQ FLAT:supportsXInput$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$compareJoystickObjects DD 025051801H
DD 01132318H
DD 0700c0025H
DD 0500bH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$getDeviceDescription DD 025051301H
DD 010e2313H
DD 07007001fH
DD 05006H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 045H
DB 09fH
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$sprintf DD 025054c19H
DD 011d2322H
DD 070160025H
DD 05015H
DD imagerel __GSHandlerCheck
DD 0118H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
sprintf$rtcName$0 DB 05fH
DB 041H
DB 072H
DB 067H
DB 04cH
DB 069H
DB 073H
DB 074H
DB 00H
ORG $+7
sprintf$rtcVarDesc DD 048H
DD 08H
DQ FLAT:sprintf$rtcName$0
ORG $+48
sprintf$rtcFrameData DD 01H
DD 00H
DQ FLAT:sprintf$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_vsprintf_l DD 035052201H
DD 011d3322H
DD 07016001fH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_vsnprintf_l DD 035052201H
DD 011d3322H
DD 070160023H
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$__local_stdio_printf_options DD 025050f01H
DD 010a230fH
DD 07003001dH
DD 05002H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwDetectJoystickDisconnectionWin32 DD 025050f01H
DD 010a230fH
DD 070030025H
DD 05002H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 02aH
DW 01dcH
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwDetectJoystickConnectionWin32 DD 035053119H
DD 010a330fH
DD 070030039H
DD 05002H
DD imagerel __GSHandlerCheck
DD 01b8H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
_glfwDetectJoystickConnectionWin32$rtcName$0 DB 067H
DB 075H
DB 069H
DB 064H
DB 00H
ORG $+3
_glfwDetectJoystickConnectionWin32$rtcName$1 DB 078H
DB 069H
DB 063H
DB 00H
ORG $+4
_glfwDetectJoystickConnectionWin32$rtcVarDesc DD 0b8H
DD 014H
DQ FLAT:_glfwDetectJoystickConnectionWin32$rtcName$1
DD 078H
DD 021H
DQ FLAT:_glfwDetectJoystickConnectionWin32$rtcName$0
ORG $+96
_glfwDetectJoystickConnectionWin32$rtcFrameData DD 02H
DD 00H
DQ FLAT:_glfwDetectJoystickConnectionWin32$rtcVarDesc
CONST ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 036H
DB 0acH
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwUpdateGamepadGUIDWin32 DD 025053d19H
DD 010e2313H
DD 070070025H
DD 05006H
DD imagerel __GSHandlerCheck
DD 0118H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
_glfwUpdateGamepadGUIDWin32$rtcName$0 DB 06fH
DB 072H
DB 069H
DB 067H
DB 069H
DB 06eH
DB 061H
DB 06cH
DB 00H
ORG $+7
_glfwUpdateGamepadGUIDWin32$rtcVarDesc DD 028H
DD 021H
DQ FLAT:_glfwUpdateGamepadGUIDWin32$rtcName$0
ORG $+48
_glfwUpdateGamepadGUIDWin32$rtcFrameData DD 01H
DD 00H
DQ FLAT:_glfwUpdateGamepadGUIDWin32$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwGetMappingNameWin32 DD 025050f01H
DD 010a230fH
DD 07003001dH
DD 05002H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 03aH
DW 06c7H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwPollJoystickWin32 DD 025054119H
DD 01122317H
DD 0700b008bH
DD 0500aH
DD imagerel __GSHandlerCheck
DD 0448H
xdata ENDS
; COMDAT CONST
CONST SEGMENT
_glfwPollJoystickWin32$rtcName$0 DB 073H
DB 074H
DB 061H
DB 074H
DB 065H
DB 00H
ORG $+2
_glfwPollJoystickWin32$rtcName$1 DB 073H
DB 074H
DB 061H
DB 074H
DB 065H
DB 073H
DB 00H
ORG $+1
_glfwPollJoystickWin32$rtcName$2 DB 078H
DB 069H
DB 073H
DB 00H
ORG $+4
_glfwPollJoystickWin32$rtcName$3 DB 062H
DB 075H
DB 074H
DB 074H
DB 06fH
DB 06eH
DB 073H
DB 00H
_glfwPollJoystickWin32$rtcVarDesc DD 0288H
DD 014H
DQ FLAT:_glfwPollJoystickWin32$rtcName$3
DD 0258H
DD 010H
DQ FLAT:_glfwPollJoystickWin32$rtcName$2
DD 0198H
DD 024H
DQ FLAT:_glfwPollJoystickWin32$rtcName$1
DD 0d0H
DD 050H
DQ FLAT:_glfwPollJoystickWin32$rtcName$0
ORG $+192
_glfwPollJoystickWin32$rtcFrameData DD 04H
DD 00H
DQ FLAT:_glfwPollJoystickWin32$rtcVarDesc
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwTerminateJoysticksWin32 DD 025050f01H
DD 010a230fH
DD 070030021H
DD 05002H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_glfwInitJoysticksWin32 DD 035050f01H
DD 010a330fH
DD 07003001fH
DD 05002H
xdata ENDS
; Function compile flags: /Odt
; COMDAT __JustMyCode_Default
_TEXT SEGMENT
__JustMyCode_Default PROC ; COMDAT
00000 c2 00 00 ret 0
__JustMyCode_Default ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT deviceCallback
_TEXT SEGMENT
jid$ = 4
dc$ = 40
dipd$ = 120
device$ = 168
data$ = 200
js$ = 264
guid$ = 296
name$ = 368
tv279 = 1012
tv350 = 1016
__$ArrayPad$ = 1024
di$ = 1088
user$ = 1096
deviceCallback PROC ; COMDAT
; 349 : {
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp
0000b 53 push rbx
0000c 56 push rsi
0000d 57 push rdi
0000e 48 81 ec 88 04
00 00 sub rsp, 1160 ; 00000488H
00015 48 8d 6c 24 70 lea rbp, QWORD PTR [rsp+112]
0001a 48 8d 7c 24 70 lea rdi, QWORD PTR [rsp+112]
0001f b9 a6 00 00 00 mov ecx, 166 ; 000000a6H
00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00029 f3 ab rep stosd
0002b 48 8b 8c 24 b8
04 00 00 mov rcx, QWORD PTR [rsp+1208]
00033 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0003a 48 33 c5 xor rax, rbp
0003d 48 89 85 00 04
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00044 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 350 : int jid = 0;
00050 c7 45 04 00 00
00 00 mov DWORD PTR jid$[rbp], 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++)
00057 c7 45 04 00 00
00 00 mov DWORD PTR jid$[rbp], 0
0005e eb 08 jmp SHORT $LN4@deviceCall
$LN2@deviceCall:
00060 8b 45 04 mov eax, DWORD PTR jid$[rbp]
00063 ff c0 inc eax
00065 89 45 04 mov DWORD PTR jid$[rbp], eax
$LN4@deviceCall:
00068 83 7d 04 0f cmp DWORD PTR jid$[rbp], 15
0006c 7f 63 jg SHORT $LN3@deviceCall
; 360 : {
; 361 : js = _glfw.joysticks + jid;
0006e 48 63 45 04 movsxd rax, DWORD PTR jid$[rbp]
00072 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
00079 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
00080 48 03 c8 add rcx, rax
00083 48 8b c1 mov rax, rcx
00086 48 89 85 08 01
00 00 mov QWORD PTR js$[rbp], rax
; 362 : if (js->connected)
0008d 48 8b 85 08 01
00 00 mov rax, QWORD PTR js$[rbp]
00094 83 78 04 00 cmp DWORD PTR [rax+4], 0
00098 74 35 je SHORT $LN5@deviceCall
; 363 : {
; 364 : if (memcmp(&js->win32.guid, &di->guidInstance, sizeof(GUID)) == 0)
0009a 48 8b 85 40 04
00 00 mov rax, QWORD PTR di$[rbp]
000a1 48 83 c0 04 add rax, 4
000a5 48 8b 8d 08 01
00 00 mov rcx, QWORD PTR js$[rbp]
000ac 48 81 c1 0c 01
00 00 add rcx, 268 ; 0000010cH
000b3 41 b8 10 00 00
00 mov r8d, 16
000b9 48 8b d0 mov rdx, rax
000bc e8 00 00 00 00 call memcmp
000c1 85 c0 test eax, eax
000c3 75 0a jne SHORT $LN6@deviceCall
; 365 : return DIENUM_CONTINUE;
000c5 b8 01 00 00 00 mov eax, 1
000ca e9 7f 05 00 00 jmp $LN1@deviceCall
$LN6@deviceCall:
$LN5@deviceCall:
; 366 : }
; 367 : }
000cf eb 8f jmp SHORT $LN2@deviceCall
$LN3@deviceCall:
; 368 :
; 369 : if (supportsXInput(&di->guidProduct))
000d1 48 8b 85 40 04
00 00 mov rax, QWORD PTR di$[rbp]
000d8 48 83 c0 14 add rax, 20
000dc 48 8b c8 mov rcx, rax
000df e8 00 00 00 00 call supportsXInput
000e4 85 c0 test eax, eax
000e6 74 0a je SHORT $LN7@deviceCall
; 370 : return DIENUM_CONTINUE;
000e8 b8 01 00 00 00 mov eax, 1
000ed e9 5c 05 00 00 jmp $LN1@deviceCall
$LN7@deviceCall:
; 371 :
; 372 : if (FAILED(IDirectInput8_CreateDevice(_glfw.win32.dinput8.api,
000f2 48 8b 85 40 04
00 00 mov rax, QWORD PTR di$[rbp]
000f9 48 83 c0 04 add rax, 4
000fd 48 8b 0d 78 29
00 00 mov rcx, QWORD PTR _glfw+10616
00104 48 8b 09 mov rcx, QWORD PTR [rcx]
00107 48 89 8d f8 03
00 00 mov QWORD PTR tv350[rbp], rcx
0010e 45 33 c9 xor r9d, r9d
00111 4c 8d 85 a8 00
00 00 lea r8, QWORD PTR device$[rbp]
00118 48 8b d0 mov rdx, rax
0011b 48 8b 0d 78 29
00 00 mov rcx, QWORD PTR _glfw+10616
00122 48 8b 85 f8 03
00 00 mov rax, QWORD PTR tv350[rbp]
00129 ff 50 18 call QWORD PTR [rax+24]
0012c 85 c0 test eax, eax
0012e 7d 1b jge SHORT $LN8@deviceCall
; 373 : &di->guidInstance,
; 374 : &device,
; 375 : NULL)))
; 376 : {
; 377 : _glfwInputError(GLFW_PLATFORM_ERROR, "Win32: Failed to create device");
00130 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0BP@OHJGLFIP@Win32?3?5Failed?5to?5create?5device@
00137 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
0013c e8 00 00 00 00 call _glfwInputError
; 378 : return DIENUM_CONTINUE;
00141 b8 01 00 00 00 mov eax, 1
00146 e9 03 05 00 00 jmp $LN1@deviceCall
$LN8@deviceCall:
; 379 : }
; 380 :
; 381 : if (FAILED(IDirectInputDevice8_SetDataFormat(device, &_glfwDataFormat)))
0014b 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
00152 48 8b 00 mov rax, QWORD PTR [rax]
00155 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfwDataFormat
0015c 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
00163 ff 50 58 call QWORD PTR [rax+88]
00166 85 c0 test eax, eax
00168 7d 2f jge SHORT $LN9@deviceCall
; 382 : {
; 383 : _glfwInputError(GLFW_PLATFORM_ERROR,
0016a 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CI@MMBFOOEA@Win32?3?5Failed?5to?5set?5device?5dat@
00171 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
00176 e8 00 00 00 00 call _glfwInputError
; 384 : "Win32: Failed to set device data format");
; 385 :
; 386 : IDirectInputDevice8_Release(device);
0017b 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
00182 48 8b 00 mov rax, QWORD PTR [rax]
00185 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
0018c ff 50 10 call QWORD PTR [rax+16]
; 387 : return DIENUM_CONTINUE;
0018f b8 01 00 00 00 mov eax, 1
00194 e9 b5 04 00 00 jmp $LN1@deviceCall
$LN9@deviceCall:
; 388 : }
; 389 :
; 390 : ZeroMemory(&dc, sizeof(dc));
00199 41 b8 2c 00 00
00 mov r8d, 44 ; 0000002cH
0019f 33 d2 xor edx, edx
001a1 48 8d 4d 28 lea rcx, QWORD PTR dc$[rbp]
001a5 e8 00 00 00 00 call memset
; 391 : dc.dwSize = sizeof(dc);
001aa c7 45 28 2c 00
00 00 mov DWORD PTR dc$[rbp], 44 ; 0000002cH
; 392 :
; 393 : if (FAILED(IDirectInputDevice8_GetCapabilities(device, &dc)))
001b1 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
001b8 48 8b 00 mov rax, QWORD PTR [rax]
001bb 48 8d 55 28 lea rdx, QWORD PTR dc$[rbp]
001bf 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
001c6 ff 50 18 call QWORD PTR [rax+24]
001c9 85 c0 test eax, eax
001cb 7d 2f jge SHORT $LN10@deviceCall
; 394 : {
; 395 : _glfwInputError(GLFW_PLATFORM_ERROR,
001cd 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CL@JHIPHFAC@Win32?3?5Failed?5to?5query?5device?5c@
001d4 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
001d9 e8 00 00 00 00 call _glfwInputError
; 396 : "Win32: Failed to query device capabilities");
; 397 :
; 398 : IDirectInputDevice8_Release(device);
001de 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
001e5 48 8b 00 mov rax, QWORD PTR [rax]
001e8 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
001ef ff 50 10 call QWORD PTR [rax+16]
; 399 : return DIENUM_CONTINUE;
001f2 b8 01 00 00 00 mov eax, 1
001f7 e9 52 04 00 00 jmp $LN1@deviceCall
$LN10@deviceCall:
; 400 : }
; 401 :
; 402 : ZeroMemory(&dipd, sizeof(dipd));
001fc 41 b8 14 00 00
00 mov r8d, 20
00202 33 d2 xor edx, edx
00204 48 8d 4d 78 lea rcx, QWORD PTR dipd$[rbp]
00208 e8 00 00 00 00 call memset
; 403 : dipd.diph.dwSize = sizeof(dipd);
0020d c7 45 78 14 00
00 00 mov DWORD PTR dipd$[rbp], 20
; 404 : dipd.diph.dwHeaderSize = sizeof(dipd.diph);
00214 c7 45 7c 10 00
00 00 mov DWORD PTR dipd$[rbp+4], 16
; 405 : dipd.diph.dwHow = DIPH_DEVICE;
0021b c7 85 84 00 00
00 00 00 00 00 mov DWORD PTR dipd$[rbp+12], 0
; 406 : dipd.dwData = DIPROPAXISMODE_ABS;
00225 c7 85 88 00 00
00 00 00 00 00 mov DWORD PTR dipd$[rbp+16], 0
; 407 :
; 408 : if (FAILED(IDirectInputDevice8_SetProperty(device,
0022f 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
00236 48 8b 00 mov rax, QWORD PTR [rax]
00239 4c 8d 45 78 lea r8, QWORD PTR dipd$[rbp]
0023d ba 02 00 00 00 mov edx, 2
00242 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
00249 ff 50 30 call QWORD PTR [rax+48]
0024c 85 c0 test eax, eax
0024e 7d 2f jge SHORT $LN11@deviceCall
; 409 : DIPROP_AXISMODE,
; 410 : &dipd.diph)))
; 411 : {
; 412 : _glfwInputError(GLFW_PLATFORM_ERROR,
00250 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CG@JJEBGGIE@Win32?3?5Failed?5to?5set?5device?5axi@
00257 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
0025c e8 00 00 00 00 call _glfwInputError
; 413 : "Win32: Failed to set device axis mode");
; 414 :
; 415 : IDirectInputDevice8_Release(device);
00261 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
00268 48 8b 00 mov rax, QWORD PTR [rax]
0026b 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
00272 ff 50 10 call QWORD PTR [rax+16]
; 416 : return DIENUM_CONTINUE;
00275 b8 01 00 00 00 mov eax, 1
0027a e9 cf 03 00 00 jmp $LN1@deviceCall
$LN11@deviceCall:
; 417 : }
; 418 :
; 419 : memset(&data, 0, sizeof(data));
0027f 41 b8 28 00 00
00 mov r8d, 40 ; 00000028H
00285 33 d2 xor edx, edx
00287 48 8d 8d c8 00
00 00 lea rcx, QWORD PTR data$[rbp]
0028e e8 00 00 00 00 call memset
; 420 : data.device = device;
00293 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
0029a 48 89 85 c8 00
00 00 mov QWORD PTR data$[rbp], rax
; 421 : data.objects = _glfw_calloc(dc.dwAxes + (size_t) dc.dwButtons + dc.dwPOVs,
002a1 8b 45 34 mov eax, DWORD PTR dc$[rbp+12]
002a4 8b 4d 38 mov ecx, DWORD PTR dc$[rbp+16]
002a7 48 03 c1 add rax, rcx
002aa 8b 4d 3c mov ecx, DWORD PTR dc$[rbp+20]
002ad 48 03 c1 add rax, rcx
002b0 ba 08 00 00 00 mov edx, 8
002b5 48 8b c8 mov rcx, rax
002b8 e8 00 00 00 00 call _glfw_calloc
002bd 48 89 85 d0 00
00 00 mov QWORD PTR data$[rbp+8], rax
; 422 : sizeof(_GLFWjoyobjectWin32));
; 423 :
; 424 : if (FAILED(IDirectInputDevice8_EnumObjects(device,
002c4 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
002cb 48 8b 00 mov rax, QWORD PTR [rax]
002ce 41 b9 1f 00 00
00 mov r9d, 31
002d4 4c 8d 85 c8 00
00 00 lea r8, QWORD PTR data$[rbp]
002db 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:deviceObjectCallback
002e2 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
002e9 ff 50 20 call QWORD PTR [rax+32]
002ec 85 c0 test eax, eax
002ee 7d 3b jge SHORT $LN12@deviceCall
; 425 : deviceObjectCallback,
; 426 : &data,
; 427 : DIDFT_AXIS | DIDFT_BUTTON | DIDFT_POV)))
; 428 : {
; 429 : _glfwInputError(GLFW_PLATFORM_ERROR,
002f0 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CK@FKJPIIOF@Win32?3?5Failed?5to?5enumerate?5devi@
002f7 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
002fc e8 00 00 00 00 call _glfwInputError
; 430 : "Win32: Failed to enumerate device objects");
; 431 :
; 432 : IDirectInputDevice8_Release(device);
00301 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
00308 48 8b 00 mov rax, QWORD PTR [rax]
0030b 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
00312 ff 50 10 call QWORD PTR [rax+16]
; 433 : _glfw_free(data.objects);
00315 48 8b 8d d0 00
00 00 mov rcx, QWORD PTR data$[rbp+8]
0031c e8 00 00 00 00 call _glfw_free
; 434 : return DIENUM_CONTINUE;
00321 b8 01 00 00 00 mov eax, 1
00326 e9 23 03 00 00 jmp $LN1@deviceCall
$LN12@deviceCall:
; 435 : }
; 436 :
; 437 : qsort(data.objects, data.objectCount,
0032b 48 63 85 d8 00
00 00 movsxd rax, DWORD PTR data$[rbp+16]
00332 4c 8d 0d 00 00
00 00 lea r9, OFFSET FLAT:compareJoystickObjects
00339 41 b8 08 00 00
00 mov r8d, 8
0033f 48 8b d0 mov rdx, rax
00342 48 8b 8d d0 00
00 00 mov rcx, QWORD PTR data$[rbp+8]
00349 ff 15 00 00 00
00 call QWORD PTR __imp_qsort
; 438 : sizeof(_GLFWjoyobjectWin32),
; 439 : compareJoystickObjects);
; 440 :
; 441 : if (!WideCharToMultiByte(CP_UTF8, 0,
0034f 48 8b 85 40 04
00 00 mov rax, QWORD PTR di$[rbp]
00356 48 83 c0 28 add rax, 40 ; 00000028H
0035a 48 c7 44 24 38
00 00 00 00 mov QWORD PTR [rsp+56], 0
00363 48 c7 44 24 30
00 00 00 00 mov QWORD PTR [rsp+48], 0
0036c c7 44 24 28 00
01 00 00 mov DWORD PTR [rsp+40], 256 ; 00000100H
00374 48 8d 8d 70 01
00 00 lea rcx, QWORD PTR name$[rbp]
0037b 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
00380 41 b9 ff ff ff
ff mov r9d, -1
00386 4c 8b c0 mov r8, rax
00389 33 d2 xor edx, edx
0038b b9 e9 fd 00 00 mov ecx, 65001 ; 0000fde9H
00390 ff 15 00 00 00
00 call QWORD PTR __imp_WideCharToMultiByte
00396 85 c0 test eax, eax
00398 75 38 jne SHORT $LN13@deviceCall
; 442 : di->tszInstanceName, -1,
; 443 : name, sizeof(name),
; 444 : NULL, NULL))
; 445 : {
; 446 : _glfwInputError(GLFW_PLATFORM_ERROR,
0039a 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0DA@IIGLKABA@Win32?3?5Failed?5to?5convert?5joysti@
003a1 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
003a6 e8 00 00 00 00 call _glfwInputError
; 447 : "Win32: Failed to convert joystick name to UTF-8");
; 448 :
; 449 : IDirectInputDevice8_Release(device);
003ab 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
003b2 48 8b 00 mov rax, QWORD PTR [rax]
003b5 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
003bc ff 50 10 call QWORD PTR [rax+16]
; 450 : _glfw_free(data.objects);
003bf 48 8b 8d d0 00
00 00 mov rcx, QWORD PTR data$[rbp+8]
003c6 e8 00 00 00 00 call _glfw_free
; 451 : return DIENUM_STOP;
003cb 33 c0 xor eax, eax
003cd e9 7c 02 00 00 jmp $LN1@deviceCall
$LN13@deviceCall:
; 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)
003d2 b8 01 00 00 00 mov eax, 1
003d7 48 6b c0 02 imul rax, rax, 2
003db 48 8b 8d 40 04
00 00 mov rcx, QWORD PTR di$[rbp]
003e2 48 8d 44 01 1c lea rax, QWORD PTR [rcx+rax+28]
003e7 41 b8 06 00 00
00 mov r8d, 6
003ed 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_06MBFKAACL@PIDVID@
003f4 48 8b c8 mov rcx, rax
003f7 e8 00 00 00 00 call memcmp
003fc 85 c0 test eax, eax
003fe 75 5f jne SHORT $LN14@deviceCall
; 456 : {
; 457 : sprintf(guid, "03000000%02x%02x0000%02x%02x000000000000",
00400 48 8b 85 40 04
00 00 mov rax, QWORD PTR di$[rbp]
00407 8b 40 14 mov eax, DWORD PTR [rax+20]
0040a c1 e8 18 shr eax, 24
0040d 0f b6 c0 movzx eax, al
00410 48 8b 8d 40 04
00 00 mov rcx, QWORD PTR di$[rbp]
00417 8b 49 14 mov ecx, DWORD PTR [rcx+20]
0041a c1 e9 10 shr ecx, 16
0041d 0f b6 c9 movzx ecx, cl
00420 48 8b 95 40 04
00 00 mov rdx, QWORD PTR di$[rbp]
00427 8b 52 14 mov edx, DWORD PTR [rdx+20]
0042a c1 ea 08 shr edx, 8
0042d 0f b6 d2 movzx edx, dl
00430 4c 8b 85 40 04
00 00 mov r8, QWORD PTR di$[rbp]
00437 45 0f b6 40 14 movzx r8d, BYTE PTR [r8+20]
0043c 89 44 24 28 mov DWORD PTR [rsp+40], eax
00440 89 4c 24 20 mov DWORD PTR [rsp+32], ecx
00444 44 8b ca mov r9d, edx
00447 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@NMCAPCBP@03000000?$CF02x?$CF02x0000?$CF02x?$CF02x000@
0044e 48 8d 8d 28 01
00 00 lea rcx, QWORD PTR guid$[rbp]
00455 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 : }
0045a e9 10 01 00 00 jmp $LN15@deviceCall
$LN14@deviceCall:
; 463 : else
; 464 : {
; 465 : sprintf(guid, "05000000%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x00",
0045f b8 01 00 00 00 mov eax, 1
00464 48 6b c0 0a imul rax, rax, 10
00468 0f be 84 05 70
01 00 00 movsx eax, BYTE PTR name$[rbp+rax]
00470 b9 01 00 00 00 mov ecx, 1
00475 48 6b c9 09 imul rcx, rcx, 9
00479 0f be 8c 0d 70
01 00 00 movsx ecx, BYTE PTR name$[rbp+rcx]
00481 ba 01 00 00 00 mov edx, 1
00486 48 6b d2 08 imul rdx, rdx, 8
0048a 0f be 94 15 70
01 00 00 movsx edx, BYTE PTR name$[rbp+rdx]
00492 41 b8 01 00 00
00 mov r8d, 1
00498 4d 6b c0 07 imul r8, r8, 7
0049c 46 0f be 84 05
70 01 00 00 movsx r8d, BYTE PTR name$[rbp+r8]
004a5 41 b9 01 00 00
00 mov r9d, 1
004ab 4d 6b c9 06 imul r9, r9, 6
004af 46 0f be 8c 0d
70 01 00 00 movsx r9d, BYTE PTR name$[rbp+r9]
004b8 41 ba 01 00 00
00 mov r10d, 1
004be 4d 6b d2 05 imul r10, r10, 5
004c2 46 0f be 94 15
70 01 00 00 movsx r10d, BYTE PTR name$[rbp+r10]
004cb 41 bb 01 00 00
00 mov r11d, 1
004d1 4d 6b db 04 imul r11, r11, 4
004d5 46 0f be 9c 1d
70 01 00 00 movsx r11d, BYTE PTR name$[rbp+r11]
004de bb 01 00 00 00 mov ebx, 1
004e3 48 6b db 03 imul rbx, rbx, 3
004e7 0f be 9c 1d 70
01 00 00 movsx ebx, BYTE PTR name$[rbp+rbx]
004ef bf 01 00 00 00 mov edi, 1
004f4 48 6b ff 02 imul rdi, rdi, 2
004f8 0f be bc 3d 70
01 00 00 movsx edi, BYTE PTR name$[rbp+rdi]
00500 be 01 00 00 00 mov esi, 1
00505 48 6b f6 01 imul rsi, rsi, 1
00509 0f be b4 35 70
01 00 00 movsx esi, BYTE PTR name$[rbp+rsi]
00511 89 b5 f4 03 00
00 mov DWORD PTR tv279[rbp], esi
00517 be 01 00 00 00 mov esi, 1
0051c 48 6b f6 00 imul rsi, rsi, 0
00520 0f be b4 35 70
01 00 00 movsx esi, BYTE PTR name$[rbp+rsi]
00528 89 44 24 60 mov DWORD PTR [rsp+96], eax
0052c 89 4c 24 58 mov DWORD PTR [rsp+88], ecx
00530 89 54 24 50 mov DWORD PTR [rsp+80], edx
00534 44 89 44 24 48 mov DWORD PTR [rsp+72], r8d
00539 44 89 4c 24 40 mov DWORD PTR [rsp+64], r9d
0053e 44 89 54 24 38 mov DWORD PTR [rsp+56], r10d
00543 44 89 5c 24 30 mov DWORD PTR [rsp+48], r11d
00548 89 5c 24 28 mov DWORD PTR [rsp+40], ebx
0054c 89 7c 24 20 mov DWORD PTR [rsp+32], edi
00550 8b 85 f4 03 00
00 mov eax, DWORD PTR tv279[rbp]
00556 44 8b c8 mov r9d, eax
00559 44 8b c6 mov r8d, esi
0055c 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0DH@LCNJGHOP@05000000?$CF02x?$CF02x?$CF02x?$CF02x?$CF02x?$CF02@
00563 48 8d 8d 28 01
00 00 lea rcx, QWORD PTR guid$[rbp]
0056a 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,
0056f 8b 85 e0 00 00
00 mov eax, DWORD PTR data$[rbp+24]
00575 8b 8d dc 00 00
00 mov ecx, DWORD PTR data$[rbp+20]
0057b 03 c8 add ecx, eax
0057d 8b c1 mov eax, ecx
0057f 8b 8d e8 00 00
00 mov ecx, DWORD PTR data$[rbp+32]
00585 89 4c 24 20 mov DWORD PTR [rsp+32], ecx
00589 44 8b 8d e4 00
00 00 mov r9d, DWORD PTR data$[rbp+28]
00590 44 8b c0 mov r8d, eax
00593 48 8d 95 28 01
00 00 lea rdx, QWORD PTR guid$[rbp]
0059a 48 8d 8d 70 01
00 00 lea rcx, QWORD PTR name$[rbp]
005a1 e8 00 00 00 00 call _glfwAllocJoystick
005a6 48 89 85 08 01
00 00 mov QWORD PTR js$[rbp], rax
; 472 : data.axisCount + data.sliderCount,
; 473 : data.buttonCount,
; 474 : data.povCount);
; 475 : if (!js)
005ad 48 83 bd 08 01
00 00 00 cmp QWORD PTR js$[rbp], 0
005b5 75 24 jne SHORT $LN16@deviceCall
; 476 : {
; 477 : IDirectInputDevice8_Release(device);
005b7 48 8b 85 a8 00
00 00 mov rax, QWORD PTR device$[rbp]
005be 48 8b 00 mov rax, QWORD PTR [rax]
005c1 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
005c8 ff 50 10 call QWORD PTR [rax+16]
; 478 : _glfw_free(data.objects);
005cb 48 8b 8d d0 00
00 00 mov rcx, QWORD PTR data$[rbp+8]
005d2 e8 00 00 00 00 call _glfw_free
; 479 : return DIENUM_STOP;
005d7 33 c0 xor eax, eax
005d9 eb 73 jmp SHORT $LN1@deviceCall
$LN16@deviceCall:
; 480 : }
; 481 :
; 482 : js->win32.device = device;
005db 48 8b 85 08 01
00 00 mov rax, QWORD PTR js$[rbp]
005e2 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR device$[rbp]
005e9 48 89 88 00 01
00 00 mov QWORD PTR [rax+256], rcx
; 483 : js->win32.guid = di->guidInstance;
005f0 48 8b 85 08 01
00 00 mov rax, QWORD PTR js$[rbp]
005f7 48 8b 8d 40 04
00 00 mov rcx, QWORD PTR di$[rbp]
005fe 48 8d b8 0c 01
00 00 lea rdi, QWORD PTR [rax+268]
00605 48 8d 71 04 lea rsi, QWORD PTR [rcx+4]
00609 b9 10 00 00 00 mov ecx, 16
0060e f3 a4 rep movsb
; 484 : js->win32.objects = data.objects;
00610 48 8b 85 08 01
00 00 mov rax, QWORD PTR js$[rbp]
00617 48 8b 8d d0 00
00 00 mov rcx, QWORD PTR data$[rbp+8]
0061e 48 89 88 f0 00
00 00 mov QWORD PTR [rax+240], rcx
; 485 : js->win32.objectCount = data.objectCount;
00625 48 8b 85 08 01
00 00 mov rax, QWORD PTR js$[rbp]
0062c 8b 8d d8 00 00
00 mov ecx, DWORD PTR data$[rbp+16]
00632 89 88 f8 00 00
00 mov DWORD PTR [rax+248], ecx
; 486 :
; 487 : _glfwInputJoystick(js, GLFW_CONNECTED);
00638 ba 01 00 04 00 mov edx, 262145 ; 00040001H
0063d 48 8b 8d 08 01
00 00 mov rcx, QWORD PTR js$[rbp]
00644 e8 00 00 00 00 call _glfwInputJoystick
; 488 : return DIENUM_CONTINUE;
00649 b8 01 00 00 00 mov eax, 1
$LN1@deviceCall:
; 489 : }
0064e 48 8b f8 mov rdi, rax
00651 48 8d 4d 90 lea rcx, QWORD PTR [rbp-112]
00655 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:deviceCallback$rtcFrameData
0065c e8 00 00 00 00 call _RTC_CheckStackVars
00661 48 8b c7 mov rax, rdi
00664 48 8b 8d 00 04
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
0066b 48 33 cd xor rcx, rbp
0066e e8 00 00 00 00 call __security_check_cookie
00673 48 8d a5 18 04
00 00 lea rsp, QWORD PTR [rbp+1048]
0067a 5f pop rdi
0067b 5e pop rsi
0067c 5b pop rbx
0067d 5d pop rbp
0067e c3 ret 0
deviceCallback ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT deviceObjectCallback
_TEXT SEGMENT
data$ = 8
object$ = 40
dipr$4 = 72
__$ArrayPad$ = 296
doi$ = 336
user$ = 344
deviceObjectCallback PROC ; COMDAT
; 278 : {
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp
0000b 57 push rdi
0000c 48 81 ec 58 01
00 00 sub rsp, 344 ; 00000158H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
0001d b9 1e 00 00 00 mov ecx, 30
00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00027 f3 ab rep stosd
00029 48 8b 8c 24 78
01 00 00 mov rcx, QWORD PTR [rsp+376]
00031 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00038 48 33 c5 xor rax, rbp
0003b 48 89 85 28 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00042 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 279 : _GLFWobjenumWin32* data = user;
0004e 48 8b 85 58 01
00 00 mov rax, QWORD PTR user$[rbp]
00055 48 89 45 08 mov QWORD PTR data$[rbp], rax
; 280 : _GLFWjoyobjectWin32* object = data->objects + data->objectCount;
00059 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
0005d 48 63 40 10 movsxd rax, DWORD PTR [rax+16]
00061 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
00065 48 8b 49 08 mov rcx, QWORD PTR [rcx+8]
00069 48 8d 04 c1 lea rax, QWORD PTR [rcx+rax*8]
0006d 48 89 45 28 mov QWORD PTR object$[rbp], rax
; 281 :
; 282 : if (DIDFT_GETTYPE(doi->dwType) & DIDFT_AXIS)
00071 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
00078 8b 40 18 mov eax, DWORD PTR [rax+24]
0007b 48 25 ff 00 00
00 and rax, 255 ; 000000ffH
00081 0f b6 c0 movzx eax, al
00084 83 e0 03 and eax, 3
00087 85 c0 test eax, eax
00089 0f 84 3f 02 00
00 je $LN2@deviceObje
; 283 : {
; 284 : DIPROPRANGE dipr;
; 285 :
; 286 : if (memcmp(&doi->guidType, &GUID_Slider, sizeof(GUID)) == 0)
0008f 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
00096 48 83 c0 04 add rax, 4
0009a 41 b8 10 00 00
00 mov r8d, 16
000a0 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_Slider
000a7 48 8b c8 mov rcx, rax
000aa e8 00 00 00 00 call memcmp
000af 85 c0 test eax, eax
000b1 75 1b jne SHORT $LN4@deviceObje
; 287 : object->offset = DIJOFS_SLIDER(data->sliderCount);
000b3 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
000b7 48 63 40 18 movsxd rax, DWORD PTR [rax+24]
000bb 48 8d 04 85 18
00 00 00 lea rax, QWORD PTR [rax*4+24]
000c3 48 8b 4d 28 mov rcx, QWORD PTR object$[rbp]
000c7 89 01 mov DWORD PTR [rcx], eax
000c9 e9 33 01 00 00 jmp $LN5@deviceObje
$LN4@deviceObje:
; 288 : else if (memcmp(&doi->guidType, &GUID_XAxis, sizeof(GUID)) == 0)
000ce 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
000d5 48 83 c0 04 add rax, 4
000d9 41 b8 10 00 00
00 mov r8d, 16
000df 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_XAxis
000e6 48 8b c8 mov rcx, rax
000e9 e8 00 00 00 00 call memcmp
000ee 85 c0 test eax, eax
000f0 75 0f jne SHORT $LN6@deviceObje
; 289 : object->offset = DIJOFS_X;
000f2 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
000f6 c7 00 00 00 00
00 mov DWORD PTR [rax], 0
000fc e9 00 01 00 00 jmp $LN7@deviceObje
$LN6@deviceObje:
; 290 : else if (memcmp(&doi->guidType, &GUID_YAxis, sizeof(GUID)) == 0)
00101 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
00108 48 83 c0 04 add rax, 4
0010c 41 b8 10 00 00
00 mov r8d, 16
00112 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_YAxis
00119 48 8b c8 mov rcx, rax
0011c e8 00 00 00 00 call memcmp
00121 85 c0 test eax, eax
00123 75 0f jne SHORT $LN8@deviceObje
; 291 : object->offset = DIJOFS_Y;
00125 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
00129 c7 00 04 00 00
00 mov DWORD PTR [rax], 4
0012f e9 cd 00 00 00 jmp $LN9@deviceObje
$LN8@deviceObje:
; 292 : else if (memcmp(&doi->guidType, &GUID_ZAxis, sizeof(GUID)) == 0)
00134 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
0013b 48 83 c0 04 add rax, 4
0013f 41 b8 10 00 00
00 mov r8d, 16
00145 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_ZAxis
0014c 48 8b c8 mov rcx, rax
0014f e8 00 00 00 00 call memcmp
00154 85 c0 test eax, eax
00156 75 0f jne SHORT $LN10@deviceObje
; 293 : object->offset = DIJOFS_Z;
00158 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
0015c c7 00 08 00 00
00 mov DWORD PTR [rax], 8
00162 e9 9a 00 00 00 jmp $LN11@deviceObje
$LN10@deviceObje:
; 294 : else if (memcmp(&doi->guidType, &GUID_RxAxis, sizeof(GUID)) == 0)
00167 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
0016e 48 83 c0 04 add rax, 4
00172 41 b8 10 00 00
00 mov r8d, 16
00178 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_RxAxis
0017f 48 8b c8 mov rcx, rax
00182 e8 00 00 00 00 call memcmp
00187 85 c0 test eax, eax
00189 75 0c jne SHORT $LN12@deviceObje
; 295 : object->offset = DIJOFS_RX;
0018b 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
0018f c7 00 0c 00 00
00 mov DWORD PTR [rax], 12
00195 eb 6a jmp SHORT $LN13@deviceObje
$LN12@deviceObje:
; 296 : else if (memcmp(&doi->guidType, &GUID_RyAxis, sizeof(GUID)) == 0)
00197 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
0019e 48 83 c0 04 add rax, 4
001a2 41 b8 10 00 00
00 mov r8d, 16
001a8 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_RyAxis
001af 48 8b c8 mov rcx, rax
001b2 e8 00 00 00 00 call memcmp
001b7 85 c0 test eax, eax
001b9 75 0c jne SHORT $LN14@deviceObje
; 297 : object->offset = DIJOFS_RY;
001bb 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
001bf c7 00 10 00 00
00 mov DWORD PTR [rax], 16
001c5 eb 3a jmp SHORT $LN15@deviceObje
$LN14@deviceObje:
; 298 : else if (memcmp(&doi->guidType, &GUID_RzAxis, sizeof(GUID)) == 0)
001c7 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
001ce 48 83 c0 04 add rax, 4
001d2 41 b8 10 00 00
00 mov r8d, 16
001d8 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_RzAxis
001df 48 8b c8 mov rcx, rax
001e2 e8 00 00 00 00 call memcmp
001e7 85 c0 test eax, eax
001e9 75 0c jne SHORT $LN16@deviceObje
; 299 : object->offset = DIJOFS_RZ;
001eb 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
001ef c7 00 14 00 00
00 mov DWORD PTR [rax], 20
001f5 eb 0a jmp SHORT $LN17@deviceObje
$LN16@deviceObje:
; 300 : else
; 301 : return DIENUM_CONTINUE;
001f7 b8 01 00 00 00 mov eax, 1
001fc e9 74 01 00 00 jmp $LN1@deviceObje
$LN17@deviceObje:
$LN15@deviceObje:
$LN13@deviceObje:
$LN11@deviceObje:
$LN9@deviceObje:
$LN7@deviceObje:
$LN5@deviceObje:
; 302 :
; 303 : ZeroMemory(&dipr, sizeof(dipr));
00201 41 b8 18 00 00
00 mov r8d, 24
00207 33 d2 xor edx, edx
00209 48 8d 4d 48 lea rcx, QWORD PTR dipr$4[rbp]
0020d e8 00 00 00 00 call memset
; 304 : dipr.diph.dwSize = sizeof(dipr);
00212 c7 45 48 18 00
00 00 mov DWORD PTR dipr$4[rbp], 24
; 305 : dipr.diph.dwHeaderSize = sizeof(dipr.diph);
00219 c7 45 4c 10 00
00 00 mov DWORD PTR dipr$4[rbp+4], 16
; 306 : dipr.diph.dwObj = doi->dwType;
00220 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
00227 8b 40 18 mov eax, DWORD PTR [rax+24]
0022a 89 45 50 mov DWORD PTR dipr$4[rbp+8], eax
; 307 : dipr.diph.dwHow = DIPH_BYID;
0022d c7 45 54 02 00
00 00 mov DWORD PTR dipr$4[rbp+12], 2
; 308 : dipr.lMin = -32768;
00234 c7 45 58 00 80
ff ff mov DWORD PTR dipr$4[rbp+16], -32768 ; ffffffffffff8000H
; 309 : dipr.lMax = 32767;
0023b c7 45 5c ff 7f
00 00 mov DWORD PTR dipr$4[rbp+20], 32767 ; 00007fffH
; 310 :
; 311 : if (FAILED(IDirectInputDevice8_SetProperty(data->device,
00242 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
00246 48 8b 00 mov rax, QWORD PTR [rax]
00249 48 8b 00 mov rax, QWORD PTR [rax]
0024c 4c 8d 45 48 lea r8, QWORD PTR dipr$4[rbp]
00250 ba 04 00 00 00 mov edx, 4
00255 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
00259 48 8b 09 mov rcx, QWORD PTR [rcx]
0025c ff 50 30 call QWORD PTR [rax+48]
0025f 85 c0 test eax, eax
00261 7d 0a jge SHORT $LN18@deviceObje
; 312 : DIPROP_RANGE,
; 313 : &dipr.diph)))
; 314 : {
; 315 : return DIENUM_CONTINUE;
00263 b8 01 00 00 00 mov eax, 1
00268 e9 08 01 00 00 jmp $LN1@deviceObje
$LN18@deviceObje:
; 316 : }
; 317 :
; 318 : if (memcmp(&doi->guidType, &GUID_Slider, sizeof(GUID)) == 0)
0026d 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
00274 48 83 c0 04 add rax, 4
00278 41 b8 10 00 00
00 mov r8d, 16
0027e 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfw_GUID_Slider
00285 48 8b c8 mov rcx, rax
00288 e8 00 00 00 00 call memcmp
0028d 85 c0 test eax, eax
0028f 75 1d jne SHORT $LN19@deviceObje
; 319 : {
; 320 : object->type = _GLFW_TYPE_SLIDER;
00291 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
00295 c7 40 04 01 00
00 00 mov DWORD PTR [rax+4], 1
; 321 : data->sliderCount++;
0029c 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
002a0 8b 40 18 mov eax, DWORD PTR [rax+24]
002a3 ff c0 inc eax
002a5 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
002a9 89 41 18 mov DWORD PTR [rcx+24], eax
; 322 : }
002ac eb 1b jmp SHORT $LN20@deviceObje
$LN19@deviceObje:
; 323 : else
; 324 : {
; 325 : object->type = _GLFW_TYPE_AXIS;
002ae 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
002b2 c7 40 04 00 00
00 00 mov DWORD PTR [rax+4], 0
; 326 : data->axisCount++;
002b9 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
002bd 8b 40 14 mov eax, DWORD PTR [rax+20]
002c0 ff c0 inc eax
002c2 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
002c6 89 41 14 mov DWORD PTR [rcx+20], eax
$LN20@deviceObje:
; 327 : }
; 328 : }
002c9 e9 92 00 00 00 jmp $LN3@deviceObje
$LN2@deviceObje:
; 329 : else if (DIDFT_GETTYPE(doi->dwType) & DIDFT_BUTTON)
002ce 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
002d5 8b 40 18 mov eax, DWORD PTR [rax+24]
002d8 48 25 ff 00 00
00 and rax, 255 ; 000000ffH
002de 0f b6 c0 movzx eax, al
002e1 83 e0 0c and eax, 12
002e4 85 c0 test eax, eax
002e6 74 2d je SHORT $LN21@deviceObje
; 330 : {
; 331 : object->offset = DIJOFS_BUTTON(data->buttonCount);
002e8 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
002ec 8b 40 1c mov eax, DWORD PTR [rax+28]
002ef 83 c0 30 add eax, 48 ; 00000030H
002f2 48 8b 4d 28 mov rcx, QWORD PTR object$[rbp]
002f6 89 01 mov DWORD PTR [rcx], eax
; 332 : object->type = _GLFW_TYPE_BUTTON;
002f8 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
002fc c7 40 04 02 00
00 00 mov DWORD PTR [rax+4], 2
; 333 : data->buttonCount++;
00303 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
00307 8b 40 1c mov eax, DWORD PTR [rax+28]
0030a ff c0 inc eax
0030c 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
00310 89 41 1c mov DWORD PTR [rcx+28], eax
; 334 : }
00313 eb 4b jmp SHORT $LN22@deviceObje
$LN21@deviceObje:
; 335 : else if (DIDFT_GETTYPE(doi->dwType) & DIDFT_POV)
00315 48 8b 85 50 01
00 00 mov rax, QWORD PTR doi$[rbp]
0031c 8b 40 18 mov eax, DWORD PTR [rax+24]
0031f 48 25 ff 00 00
00 and rax, 255 ; 000000ffH
00325 0f b6 c0 movzx eax, al
00328 83 e0 10 and eax, 16
0032b 85 c0 test eax, eax
0032d 74 31 je SHORT $LN23@deviceObje
; 336 : {
; 337 : object->offset = DIJOFS_POV(data->povCount);
0032f 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
00333 48 63 40 20 movsxd rax, DWORD PTR [rax+32]
00337 48 8d 04 85 20
00 00 00 lea rax, QWORD PTR [rax*4+32]
0033f 48 8b 4d 28 mov rcx, QWORD PTR object$[rbp]
00343 89 01 mov DWORD PTR [rcx], eax
; 338 : object->type = _GLFW_TYPE_POV;
00345 48 8b 45 28 mov rax, QWORD PTR object$[rbp]
00349 c7 40 04 03 00
00 00 mov DWORD PTR [rax+4], 3
; 339 : data->povCount++;
00350 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
00354 8b 40 20 mov eax, DWORD PTR [rax+32]
00357 ff c0 inc eax
00359 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
0035d 89 41 20 mov DWORD PTR [rcx+32], eax
$LN23@deviceObje:
$LN22@deviceObje:
$LN3@deviceObje:
; 340 : }
; 341 :
; 342 : data->objectCount++;
00360 48 8b 45 08 mov rax, QWORD PTR data$[rbp]
00364 8b 40 10 mov eax, DWORD PTR [rax+16]
00367 ff c0 inc eax
00369 48 8b 4d 08 mov rcx, QWORD PTR data$[rbp]
0036d 89 41 10 mov DWORD PTR [rcx+16], eax
; 343 : return DIENUM_CONTINUE;
00370 b8 01 00 00 00 mov eax, 1
$LN1@deviceObje:
; 344 : }
00375 48 8b f8 mov rdi, rax
00378 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
0037c 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:deviceObjectCallback$rtcFrameData
00383 e8 00 00 00 00 call _RTC_CheckStackVars
00388 48 8b c7 mov rax, rdi
0038b 48 8b 8d 28 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
00392 48 33 cd xor rcx, rbp
00395 e8 00 00 00 00 call __security_check_cookie
0039a 48 8d a5 38 01
00 00 lea rsp, QWORD PTR [rbp+312]
003a1 5f pop rdi
003a2 5d pop rbp
003a3 c3 ret 0
deviceObjectCallback ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT closeJoystick
_TEXT SEGMENT
js$ = 224
closeJoystick PROC ; COMDAT
; 260 : {
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 57 push rdi
00007 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00013 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 261 : _glfwInputJoystick(js, GLFW_DISCONNECTED);
0001f ba 02 00 04 00 mov edx, 262146 ; 00040002H
00024 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR js$[rbp]
0002b e8 00 00 00 00 call _glfwInputJoystick
; 262 :
; 263 : if (js->win32.device)
00030 48 8b 85 e0 00
00 00 mov rax, QWORD PTR js$[rbp]
00037 48 83 b8 00 01
00 00 00 cmp QWORD PTR [rax+256], 0
0003f 74 44 je SHORT $LN2@closeJoyst
; 264 : {
; 265 : IDirectInputDevice8_Unacquire(js->win32.device);
00041 48 8b 85 e0 00
00 00 mov rax, QWORD PTR js$[rbp]
00048 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
0004f 48 8b 00 mov rax, QWORD PTR [rax]
00052 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR js$[rbp]
00059 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
00060 ff 50 40 call QWORD PTR [rax+64]
; 266 : IDirectInputDevice8_Release(js->win32.device);
00063 48 8b 85 e0 00
00 00 mov rax, QWORD PTR js$[rbp]
0006a 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
00071 48 8b 00 mov rax, QWORD PTR [rax]
00074 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR js$[rbp]
0007b 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
00082 ff 50 10 call QWORD PTR [rax+16]
$LN2@closeJoyst:
; 267 : }
; 268 :
; 269 : _glfw_free(js->win32.objects);
00085 48 8b 85 e0 00
00 00 mov rax, QWORD PTR js$[rbp]
0008c 48 8b 88 f0 00
00 00 mov rcx, QWORD PTR [rax+240]
00093 e8 00 00 00 00 call _glfw_free
; 270 : _glfwFreeJoystick(js);
00098 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR js$[rbp]
0009f e8 00 00 00 00 call _glfwFreeJoystick
; 271 : }
000a4 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
000ab 5f pop rdi
000ac 5d pop rbp
000ad c3 ret 0
closeJoystick ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT supportsXInput
_TEXT SEGMENT
i$ = 4
count$ = 36
ridl$ = 72
result$ = 100
rdi$7 = 136
name$8 = 208
size$9 = 484
$T10 = 904
__$ArrayPad$ = 920
guid$ = 960
supportsXInput PROC ; COMDAT
; 196 : {
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 57 push rdi
00007 48 81 ec c8 03
00 00 sub rsp, 968 ; 000003c8H
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
00018 b9 8a 00 00 00 mov ecx, 138 ; 0000008aH
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00022 f3 ab rep stosd
00024 48 8b 8c 24 e8
03 00 00 mov rcx, QWORD PTR [rsp+1000]
0002c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00033 48 33 c5 xor rax, rbp
00036 48 89 85 98 03
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
0003d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 197 : UINT i, count = 0;
00049 c7 45 24 00 00
00 00 mov DWORD PTR count$[rbp], 0
; 198 : RAWINPUTDEVICELIST* ridl;
; 199 : GLFWbool result = GLFW_FALSE;
00050 c7 45 64 00 00
00 00 mov DWORD PTR result$[rbp], 0
; 200 :
; 201 : if (GetRawInputDeviceList(NULL, &count, sizeof(RAWINPUTDEVICELIST)) != 0)
00057 41 b8 10 00 00
00 mov r8d, 16
0005d 48 8d 55 24 lea rdx, QWORD PTR count$[rbp]
00061 33 c9 xor ecx, ecx
00063 ff 15 00 00 00
00 call QWORD PTR __imp_GetRawInputDeviceList
00069 85 c0 test eax, eax
0006b 74 07 je SHORT $LN5@supportsXI
; 202 : return GLFW_FALSE;
0006d 33 c0 xor eax, eax
0006f e9 ad 01 00 00 jmp $LN1@supportsXI
$LN5@supportsXI:
; 203 :
; 204 : ridl = _glfw_calloc(count, sizeof(RAWINPUTDEVICELIST));
00074 8b 45 24 mov eax, DWORD PTR count$[rbp]
00077 ba 10 00 00 00 mov edx, 16
0007c 8b c8 mov ecx, eax
0007e e8 00 00 00 00 call _glfw_calloc
00083 48 89 45 48 mov QWORD PTR ridl$[rbp], rax
; 205 :
; 206 : if (GetRawInputDeviceList(ridl, &count, sizeof(RAWINPUTDEVICELIST)) == (UINT) -1)
00087 41 b8 10 00 00
00 mov r8d, 16
0008d 48 8d 55 24 lea rdx, QWORD PTR count$[rbp]
00091 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
00095 ff 15 00 00 00
00 call QWORD PTR __imp_GetRawInputDeviceList
0009b 83 f8 ff cmp eax, -1 ; ffffffffH
0009e 75 10 jne SHORT $LN6@supportsXI
; 207 : {
; 208 : _glfw_free(ridl);
000a0 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
000a4 e8 00 00 00 00 call _glfw_free
; 209 : return GLFW_FALSE;
000a9 33 c0 xor eax, eax
000ab e9 71 01 00 00 jmp $LN1@supportsXI
$LN6@supportsXI:
; 210 : }
; 211 :
; 212 : for (i = 0; i < count; i++)
000b0 c7 45 04 00 00
00 00 mov DWORD PTR i$[rbp], 0
000b7 eb 08 jmp SHORT $LN4@supportsXI
$LN2@supportsXI:
000b9 8b 45 04 mov eax, DWORD PTR i$[rbp]
000bc ff c0 inc eax
000be 89 45 04 mov DWORD PTR i$[rbp], eax
$LN4@supportsXI:
000c1 8b 45 24 mov eax, DWORD PTR count$[rbp]
000c4 39 45 04 cmp DWORD PTR i$[rbp], eax
000c7 0f 83 48 01 00
00 jae $LN3@supportsXI
; 213 : {
; 214 : RID_DEVICE_INFO rdi;
; 215 : char name[256];
; 216 : UINT size;
; 217 :
; 218 : if (ridl[i].dwType != RIM_TYPEHID)
000cd 8b 45 04 mov eax, DWORD PTR i$[rbp]
000d0 48 6b c0 10 imul rax, rax, 16
000d4 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
000d8 83 7c 01 08 02 cmp DWORD PTR [rcx+rax+8], 2
000dd 74 02 je SHORT $LN7@supportsXI
; 219 : continue;
000df eb d8 jmp SHORT $LN2@supportsXI
$LN7@supportsXI:
; 220 :
; 221 : ZeroMemory(&rdi, sizeof(rdi));
000e1 41 b8 20 00 00
00 mov r8d, 32 ; 00000020H
000e7 33 d2 xor edx, edx
000e9 48 8d 8d 88 00
00 00 lea rcx, QWORD PTR rdi$7[rbp]
000f0 e8 00 00 00 00 call memset
; 222 : rdi.cbSize = sizeof(rdi);
000f5 c7 85 88 00 00
00 20 00 00 00 mov DWORD PTR rdi$7[rbp], 32 ; 00000020H
; 223 : size = sizeof(rdi);
000ff c7 85 e4 01 00
00 20 00 00 00 mov DWORD PTR size$9[rbp], 32 ; 00000020H
; 224 :
; 225 : if ((INT) GetRawInputDeviceInfoA(ridl[i].hDevice,
; 226 : RIDI_DEVICEINFO,
; 227 : &rdi, &size) == -1)
00109 8b 45 04 mov eax, DWORD PTR i$[rbp]
0010c 48 6b c0 10 imul rax, rax, 16
00110 4c 8d 8d e4 01
00 00 lea r9, QWORD PTR size$9[rbp]
00117 4c 8d 85 88 00
00 00 lea r8, QWORD PTR rdi$7[rbp]
0011e ba 0b 00 00 20 mov edx, 536870923 ; 2000000bH
00123 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
00127 48 8b 0c 01 mov rcx, QWORD PTR [rcx+rax]
0012b ff 15 00 00 00
00 call QWORD PTR __imp_GetRawInputDeviceInfoA
00131 83 f8 ff cmp eax, -1
00134 75 02 jne SHORT $LN8@supportsXI
; 228 : {
; 229 : continue;
00136 eb 81 jmp SHORT $LN2@supportsXI
$LN8@supportsXI:
; 230 : }
; 231 :
; 232 : if (MAKELONG(rdi.hid.dwVendorId, rdi.hid.dwProductId) != (LONG) guid->Data1)
00138 8b 85 90 00 00
00 mov eax, DWORD PTR rdi$7[rbp+8]
0013e 48 25 ff ff 00
00 and rax, 65535 ; 0000ffffH
00144 0f b7 c0 movzx eax, ax
00147 8b 8d 94 00 00
00 mov ecx, DWORD PTR rdi$7[rbp+12]
0014d 48 81 e1 ff ff
00 00 and rcx, 65535 ; 0000ffffH
00154 0f b7 c9 movzx ecx, cx
00157 c1 e1 10 shl ecx, 16
0015a 0b c1 or eax, ecx
0015c 48 8b 8d c0 03
00 00 mov rcx, QWORD PTR guid$[rbp]
00163 3b 01 cmp eax, DWORD PTR [rcx]
00165 74 05 je SHORT $LN9@supportsXI
; 233 : continue;
00167 e9 4d ff ff ff jmp $LN2@supportsXI
$LN9@supportsXI:
; 234 :
; 235 : memset(name, 0, sizeof(name));
0016c 41 b8 00 01 00
00 mov r8d, 256 ; 00000100H
00172 33 d2 xor edx, edx
00174 48 8d 8d d0 00
00 00 lea rcx, QWORD PTR name$8[rbp]
0017b e8 00 00 00 00 call memset
; 236 : size = sizeof(name);
00180 c7 85 e4 01 00
00 00 01 00 00 mov DWORD PTR size$9[rbp], 256 ; 00000100H
; 237 :
; 238 : if ((INT) GetRawInputDeviceInfoA(ridl[i].hDevice,
; 239 : RIDI_DEVICENAME,
; 240 : name, &size) == -1)
0018a 8b 45 04 mov eax, DWORD PTR i$[rbp]
0018d 48 6b c0 10 imul rax, rax, 16
00191 4c 8d 8d e4 01
00 00 lea r9, QWORD PTR size$9[rbp]
00198 4c 8d 85 d0 00
00 00 lea r8, QWORD PTR name$8[rbp]
0019f ba 07 00 00 20 mov edx, 536870919 ; 20000007H
001a4 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
001a8 48 8b 0c 01 mov rcx, QWORD PTR [rcx+rax]
001ac ff 15 00 00 00
00 call QWORD PTR __imp_GetRawInputDeviceInfoA
001b2 83 f8 ff cmp eax, -1
001b5 75 02 jne SHORT $LN10@supportsXI
; 241 : {
; 242 : break;
001b7 eb 5c jmp SHORT $LN3@supportsXI
$LN10@supportsXI:
; 243 : }
; 244 :
; 245 : name[sizeof(name) - 1] = '\0';
001b9 b8 01 00 00 00 mov eax, 1
001be 48 69 c0 ff 00
00 00 imul rax, rax, 255 ; 000000ffH
001c5 48 89 85 88 03
00 00 mov QWORD PTR $T10[rbp], rax
001cc 48 81 bd 88 03
00 00 00 01 00
00 cmp QWORD PTR $T10[rbp], 256 ; 00000100H
001d7 73 02 jae SHORT $LN13@supportsXI
001d9 eb 05 jmp SHORT $LN14@supportsXI
$LN13@supportsXI:
001db e8 00 00 00 00 call __report_rangecheckfailure
$LN14@supportsXI:
001e0 48 8b 85 88 03
00 00 mov rax, QWORD PTR $T10[rbp]
001e7 c6 84 05 d0 00
00 00 00 mov BYTE PTR name$8[rbp+rax], 0
; 246 : if (strstr(name, "IG_"))
001ef 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_03HAFBONIK@IG_@
001f6 48 8d 8d d0 00
00 00 lea rcx, QWORD PTR name$8[rbp]
001fd e8 00 00 00 00 call strstr
00202 48 85 c0 test rax, rax
00205 74 09 je SHORT $LN11@supportsXI
; 247 : {
; 248 : result = GLFW_TRUE;
00207 c7 45 64 01 00
00 00 mov DWORD PTR result$[rbp], 1
; 249 : break;
0020e eb 05 jmp SHORT $LN3@supportsXI
$LN11@supportsXI:
; 250 : }
; 251 : }
00210 e9 a4 fe ff ff jmp $LN2@supportsXI
$LN3@supportsXI:
; 252 :
; 253 : _glfw_free(ridl);
00215 48 8b 4d 48 mov rcx, QWORD PTR ridl$[rbp]
00219 e8 00 00 00 00 call _glfw_free
; 254 : return result;
0021e 8b 45 64 mov eax, DWORD PTR result$[rbp]
$LN1@supportsXI:
$LN12@supportsXI:
; 255 : }
00221 48 8b f8 mov rdi, rax
00224 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
00228 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:supportsXInput$rtcFrameData
0022f e8 00 00 00 00 call _RTC_CheckStackVars
00234 48 8b c7 mov rax, rdi
00237 48 8b 8d 98 03
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
0023e 48 33 cd xor rcx, rbp
00241 e8 00 00 00 00 call __security_check_cookie
00246 48 8d a5 a8 03
00 00 lea rsp, QWORD PTR [rbp+936]
0024d 5f pop rdi
0024e 5d pop rbp
0024f c3 ret 0
supportsXInput ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT compareJoystickObjects
_TEXT SEGMENT
fo$ = 8
so$ = 40
first$ = 288
second$ = 296
compareJoystickObjects PROC ; COMDAT
; 182 : {
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp
0000b 57 push rdi
0000c 48 81 ec 28 01
00 00 sub rsp, 296 ; 00000128H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 183 : const _GLFWjoyobjectWin32* fo = first;
00024 48 8b 85 20 01
00 00 mov rax, QWORD PTR first$[rbp]
0002b 48 89 45 08 mov QWORD PTR fo$[rbp], rax
; 184 : const _GLFWjoyobjectWin32* so = second;
0002f 48 8b 85 28 01
00 00 mov rax, QWORD PTR second$[rbp]
00036 48 89 45 28 mov QWORD PTR so$[rbp], rax
; 185 :
; 186 : if (fo->type != so->type)
0003a 48 8b 45 08 mov rax, QWORD PTR fo$[rbp]
0003e 48 8b 4d 28 mov rcx, QWORD PTR so$[rbp]
00042 8b 49 04 mov ecx, DWORD PTR [rcx+4]
00045 39 48 04 cmp DWORD PTR [rax+4], ecx
00048 74 12 je SHORT $LN2@compareJoy
; 187 : return fo->type - so->type;
0004a 48 8b 45 08 mov rax, QWORD PTR fo$[rbp]
0004e 48 8b 4d 28 mov rcx, QWORD PTR so$[rbp]
00052 8b 49 04 mov ecx, DWORD PTR [rcx+4]
00055 8b 40 04 mov eax, DWORD PTR [rax+4]
00058 2b c1 sub eax, ecx
0005a eb 0e jmp SHORT $LN1@compareJoy
$LN2@compareJoy:
; 188 :
; 189 : return fo->offset - so->offset;
0005c 48 8b 45 08 mov rax, QWORD PTR fo$[rbp]
00060 48 8b 4d 28 mov rcx, QWORD PTR so$[rbp]
00064 8b 09 mov ecx, DWORD PTR [rcx]
00066 8b 00 mov eax, DWORD PTR [rax]
00068 2b c1 sub eax, ecx
$LN1@compareJoy:
; 190 : }
0006a 48 8d a5 08 01
00 00 lea rsp, QWORD PTR [rbp+264]
00071 5f pop rdi
00072 5d pop rbp
00073 c3 ret 0
compareJoystickObjects ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT getDeviceDescription
_TEXT SEGMENT
tv66 = 192
xic$ = 240
getDeviceDescription PROC ; COMDAT
; 152 : {
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 57 push rdi
00007 48 81 ec f8 00
00 00 sub rsp, 248 ; 000000f8H
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00013 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 153 : switch (xic->SubType)
0001f 48 8b 85 f0 00
00 00 mov rax, QWORD PTR xic$[rbp]
00026 0f b6 40 01 movzx eax, BYTE PTR [rax+1]
0002a 89 85 c0 00 00
00 mov DWORD PTR tv66[rbp], eax
00030 8b 85 c0 00 00
00 mov eax, DWORD PTR tv66[rbp]
00036 ff c8 dec eax
00038 89 85 c0 00 00
00 mov DWORD PTR tv66[rbp], eax
0003e 83 bd c0 00 00
00 07 cmp DWORD PTR tv66[rbp], 7
00045 77 76 ja SHORT $LN2@getDeviceD
00047 48 63 85 c0 00
00 00 movsxd rax, DWORD PTR tv66[rbp]
0004e 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__ImageBase
00055 8b 84 81 00 00
00 00 mov eax, DWORD PTR $LN14@getDeviceD[rcx+rax*4]
0005c 48 03 c1 add rax, rcx
0005f ff e0 jmp rax
$LN4@getDeviceD:
; 154 : {
; 155 : case XINPUT_DEVSUBTYPE_WHEEL:
; 156 : return "XInput Wheel";
00061 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0N@JENFOGFI@XInput?5Wheel@
00068 eb 5a jmp SHORT $LN1@getDeviceD
$LN5@getDeviceD:
; 157 : case XINPUT_DEVSUBTYPE_ARCADE_STICK:
; 158 : return "XInput Arcade Stick";
0006a 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BE@FABDLJKH@XInput?5Arcade?5Stick@
00071 eb 51 jmp SHORT $LN1@getDeviceD
$LN6@getDeviceD:
; 159 : case XINPUT_DEVSUBTYPE_FLIGHT_STICK:
; 160 : return "XInput Flight Stick";
00073 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BE@HBNNGLHP@XInput?5Flight?5Stick@
0007a eb 48 jmp SHORT $LN1@getDeviceD
$LN7@getDeviceD:
; 161 : case XINPUT_DEVSUBTYPE_DANCE_PAD:
; 162 : return "XInput Dance Pad";
0007c 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BB@JDDMDGFO@XInput?5Dance?5Pad@
00083 eb 3f jmp SHORT $LN1@getDeviceD
$LN8@getDeviceD:
; 163 : case XINPUT_DEVSUBTYPE_GUITAR:
; 164 : return "XInput Guitar";
00085 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0O@IFDGNEHH@XInput?5Guitar@
0008c eb 36 jmp SHORT $LN1@getDeviceD
$LN9@getDeviceD:
; 165 : case XINPUT_DEVSUBTYPE_DRUM_KIT:
; 166 : return "XInput Drum Kit";
0008e 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BA@LCMKGGHA@XInput?5Drum?5Kit@
00095 eb 2d jmp SHORT $LN1@getDeviceD
$LN10@getDeviceD:
; 167 : case XINPUT_DEVSUBTYPE_GAMEPAD:
; 168 : {
; 169 : if (xic->Flags & XINPUT_CAPS_WIRELESS)
00097 48 8b 85 f0 00
00 00 mov rax, QWORD PTR xic$[rbp]
0009e 0f b7 40 02 movzx eax, WORD PTR [rax+2]
000a2 83 e0 02 and eax, 2
000a5 85 c0 test eax, eax
000a7 74 0b je SHORT $LN11@getDeviceD
; 170 : return "Wireless Xbox Controller";
000a9 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BJ@IIGAEGGE@Wireless?5Xbox?5Controller@
000b0 eb 12 jmp SHORT $LN1@getDeviceD
000b2 eb 09 jmp SHORT $LN12@getDeviceD
$LN11@getDeviceD:
; 171 : else
; 172 : return "Xbox Controller";
000b4 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BA@EPLGABLH@Xbox?5Controller@
000bb eb 07 jmp SHORT $LN1@getDeviceD
$LN12@getDeviceD:
$LN2@getDeviceD:
; 173 : }
; 174 : }
; 175 :
; 176 : return "Unknown XInput Device";
000bd 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_0BG@DGJLFNBN@Unknown?5XInput?5Device@
$LN1@getDeviceD:
; 177 : }
000c4 48 8d a5 d8 00
00 00 lea rsp, QWORD PTR [rbp+216]
000cb 5f pop rdi
000cc 5d pop rbp
000cd c3 ret 0
000ce 66 90 npad 2
$LN14@getDeviceD:
000d0 00 00 00 00 DD $LN10@getDeviceD
000d4 00 00 00 00 DD $LN4@getDeviceD
000d8 00 00 00 00 DD $LN5@getDeviceD
000dc 00 00 00 00 DD $LN6@getDeviceD
000e0 00 00 00 00 DD $LN7@getDeviceD
000e4 00 00 00 00 DD $LN8@getDeviceD
000e8 00 00 00 00 DD $LN2@getDeviceD
000ec 00 00 00 00 DD $LN9@getDeviceD
getDeviceDescription ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
; COMDAT sprintf
_TEXT SEGMENT
_Result$ = 4
_ArgList$ = 40
__$ArrayPad$ = 248
_Buffer$ = 288
_Format$ = 296
sprintf PROC ; COMDAT
; 1771 : {
$LN3:
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
00014 55 push rbp
00015 57 push rdi
00016 48 81 ec 28 01
00 00 sub rsp, 296 ; 00000128H
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
00027 b9 12 00 00 00 mov ecx, 18
0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00031 f3 ab rep stosd
00033 48 8b 8c 24 48
01 00 00 mov rcx, QWORD PTR [rsp+328]
0003b 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00042 48 33 c5 xor rax, rbp
00045 48 89 85 f8 00
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
0004c 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__C1EC35D3_stdio@h
00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 1772 : int _Result;
; 1773 : va_list _ArgList;
; 1774 : __crt_va_start(_ArgList, _Format);
00058 48 8d 85 30 01
00 00 lea rax, QWORD PTR _Format$[rbp+8]
0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax
; 1775 :
; 1776 : _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList);
00063 4c 8b 4d 28 mov r9, QWORD PTR _ArgList$[rbp]
00067 45 33 c0 xor r8d, r8d
0006a 48 8b 95 28 01
00 00 mov rdx, QWORD PTR _Format$[rbp]
00071 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR _Buffer$[rbp]
00078 e8 00 00 00 00 call _vsprintf_l
0007d 89 45 04 mov DWORD PTR _Result$[rbp], eax
; 1777 :
; 1778 : __crt_va_end(_ArgList);
00080 48 c7 45 28 00
00 00 00 mov QWORD PTR _ArgList$[rbp], 0
; 1779 : return _Result;
00088 8b 45 04 mov eax, DWORD PTR _Result$[rbp]
; 1780 : }
0008b 8b f8 mov edi, eax
0008d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
00091 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:sprintf$rtcFrameData
00098 e8 00 00 00 00 call _RTC_CheckStackVars
0009d 8b c7 mov eax, edi
0009f 48 8b 8d f8 00
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
000a6 48 33 cd xor rcx, rbp
000a9 e8 00 00 00 00 call __security_check_cookie
000ae 48 8d a5 08 01
00 00 lea rsp, QWORD PTR [rbp+264]
000b5 5f pop rdi
000b6 5d pop rbp
000b7 c3 ret 0
sprintf ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
; COMDAT _vsprintf_l
_TEXT SEGMENT
_Buffer$ = 224
_Format$ = 232
_Locale$ = 240
_ArgList$ = 248
_vsprintf_l PROC ; COMDAT
; 1458 : {
$LN3:
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00014 55 push rbp
00015 57 push rdi
00016 48 81 ec f8 00
00 00 sub rsp, 248 ; 000000f8H
0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
00022 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__C1EC35D3_stdio@h
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 1459 : return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
0002e 48 8b 85 f8 00
00 00 mov rax, QWORD PTR _ArgList$[rbp]
00035 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
0003a 4c 8b 8d f0 00
00 00 mov r9, QWORD PTR _Locale$[rbp]
00041 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR _Format$[rbp]
00048 48 c7 c2 ff ff
ff ff mov rdx, -1
0004f 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR _Buffer$[rbp]
00056 e8 00 00 00 00 call _vsnprintf_l
; 1460 : }
0005b 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
00062 5f pop rdi
00063 5d pop rbp
00064 c3 ret 0
_vsprintf_l ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\stdio.h
; COMDAT _vsnprintf_l
_TEXT SEGMENT
_Result$ = 4
tv74 = 212
_Buffer$ = 256
_BufferCount$ = 264
_Format$ = 272
_Locale$ = 280
_ArgList$ = 288
_vsnprintf_l PROC ; COMDAT
; 1391 : {
$LN5:
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00014 55 push rbp
00015 57 push rdi
00016 48 81 ec 18 01
00 00 sub rsp, 280 ; 00000118H
0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
00022 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__C1EC35D3_stdio@h
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 1392 : int const _Result = __stdio_common_vsprintf(
0002e e8 00 00 00 00 call __local_stdio_printf_options
00033 48 8b 00 mov rax, QWORD PTR [rax]
00036 48 83 c8 01 or rax, 1
0003a 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR _ArgList$[rbp]
00041 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx
00046 48 8b 8d 18 01
00 00 mov rcx, QWORD PTR _Locale$[rbp]
0004d 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
00052 4c 8b 8d 10 01
00 00 mov r9, QWORD PTR _Format$[rbp]
00059 4c 8b 85 08 01
00 00 mov r8, QWORD PTR _BufferCount$[rbp]
00060 48 8b 95 00 01
00 00 mov rdx, QWORD PTR _Buffer$[rbp]
00067 48 8b c8 mov rcx, rax
0006a ff 15 00 00 00
00 call QWORD PTR __imp___stdio_common_vsprintf
00070 89 45 04 mov DWORD PTR _Result$[rbp], eax
; 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;
00073 83 7d 04 00 cmp DWORD PTR _Result$[rbp], 0
00077 7d 0c jge SHORT $LN3@vsnprintf_
00079 c7 85 d4 00 00
00 ff ff ff ff mov DWORD PTR tv74[rbp], -1
00083 eb 09 jmp SHORT $LN4@vsnprintf_
$LN3@vsnprintf_:
00085 8b 45 04 mov eax, DWORD PTR _Result$[rbp]
00088 89 85 d4 00 00
00 mov DWORD PTR tv74[rbp], eax
$LN4@vsnprintf_:
0008e 8b 85 d4 00 00
00 mov eax, DWORD PTR tv74[rbp]
; 1397 : }
00094 48 8d a5 e8 00
00 00 lea rsp, QWORD PTR [rbp+232]
0009b 5f pop rdi
0009c 5d pop rbp
0009d c3 ret 0
_vsnprintf_l ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_stdio_config.h
; COMDAT __local_stdio_printf_options
_TEXT SEGMENT
__local_stdio_printf_options PROC ; COMDAT
; 90 : {
$LN3:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0000f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__44420885_corecrt_stdio_config@h
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 91 : static unsigned __int64 _OptionsStorage;
; 92 : return &_OptionsStorage;
0001b 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@9 ; `__local_stdio_printf_options'::`2'::_OptionsStorage
; 93 : }
00022 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
00029 5f pop rdi
0002a 5d pop rbp
0002b c3 ret 0
__local_stdio_printf_options ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwDetectJoystickDisconnectionWin32
_TEXT SEGMENT
jid$ = 4
js$1 = 40
_glfwDetectJoystickDisconnectionWin32 PROC ; COMDAT
; 559 : {
$LN7:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec 28 01
00 00 sub rsp, 296 ; 00000128H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0000f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 560 : int jid;
; 561 :
; 562 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++)
0001b c7 45 04 00 00
00 00 mov DWORD PTR jid$[rbp], 0
00022 eb 08 jmp SHORT $LN4@glfwDetect
$LN2@glfwDetect:
00024 8b 45 04 mov eax, DWORD PTR jid$[rbp]
00027 ff c0 inc eax
00029 89 45 04 mov DWORD PTR jid$[rbp], eax
$LN4@glfwDetect:
0002c 83 7d 04 0f cmp DWORD PTR jid$[rbp], 15
00030 7f 33 jg SHORT $LN3@glfwDetect
; 563 : {
; 564 : _GLFWjoystick* js = _glfw.joysticks + jid;
00032 48 63 45 04 movsxd rax, DWORD PTR jid$[rbp]
00036 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
0003d 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
00044 48 03 c8 add rcx, rax
00047 48 8b c1 mov rax, rcx
0004a 48 89 45 28 mov QWORD PTR js$1[rbp], rax
; 565 : if (js->connected)
0004e 48 8b 45 28 mov rax, QWORD PTR js$1[rbp]
00052 83 78 04 00 cmp DWORD PTR [rax+4], 0
00056 74 0b je SHORT $LN5@glfwDetect
; 566 : _glfwPollJoystickWin32(js, _GLFW_POLL_PRESENCE);
00058 33 d2 xor edx, edx
0005a 48 8b 4d 28 mov rcx, QWORD PTR js$1[rbp]
0005e e8 00 00 00 00 call _glfwPollJoystickWin32
$LN5@glfwDetect:
; 567 : }
00063 eb bf jmp SHORT $LN2@glfwDetect
$LN3@glfwDetect:
; 568 : }
00065 48 8d a5 08 01
00 00 lea rsp, QWORD PTR [rbp+264]
0006c 5f pop rdi
0006d 5d pop rbp
0006e c3 ret 0
_glfwDetectJoystickDisconnectionWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwDetectJoystickConnectionWin32
_TEXT SEGMENT
index$5 = 4
jid$6 = 36
guid$7 = 72
xic$8 = 136
js$9 = 184
__$ArrayPad$ = 392
_glfwDetectJoystickConnectionWin32 PROC ; COMDAT
; 499 : {
$LN16:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec c8 01
00 00 sub rsp, 456 ; 000001c8H
0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
0000f 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48]
00014 b9 36 00 00 00 mov ecx, 54 ; 00000036H
00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
0001e f3 ab rep stosd
00020 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00027 48 33 c5 xor rax, rbp
0002a 48 89 85 88 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00031 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 500 : if (_glfw.win32.xinput.instance)
0003d 48 83 3d 80 29
00 00 00 cmp QWORD PTR _glfw+10624, 0
00045 0f 84 37 01 00
00 je $LN8@glfwDetect
; 501 : {
; 502 : DWORD index;
; 503 :
; 504 : for (index = 0; index < XUSER_MAX_COUNT; index++)
0004b c7 45 04 00 00
00 00 mov DWORD PTR index$5[rbp], 0
00052 eb 08 jmp SHORT $LN4@glfwDetect
$LN2@glfwDetect:
00054 8b 45 04 mov eax, DWORD PTR index$5[rbp]
00057 ff c0 inc eax
00059 89 45 04 mov DWORD PTR index$5[rbp], eax
$LN4@glfwDetect:
0005c 83 7d 04 04 cmp DWORD PTR index$5[rbp], 4
00060 0f 83 1c 01 00
00 jae $LN3@glfwDetect
; 505 : {
; 506 : int jid;
; 507 : char guid[33];
; 508 : XINPUT_CAPABILITIES xic;
; 509 : _GLFWjoystick* js;
; 510 :
; 511 : for (jid = 0; jid <= GLFW_JOYSTICK_LAST; jid++)
00066 c7 45 24 00 00
00 00 mov DWORD PTR jid$6[rbp], 0
0006d eb 08 jmp SHORT $LN7@glfwDetect
$LN5@glfwDetect:
0006f 8b 45 24 mov eax, DWORD PTR jid$6[rbp]
00072 ff c0 inc eax
00074 89 45 24 mov DWORD PTR jid$6[rbp], eax
$LN7@glfwDetect:
00077 83 7d 24 0f cmp DWORD PTR jid$6[rbp], 15
0007b 7f 58 jg SHORT $LN6@glfwDetect
; 512 : {
; 513 : if (_glfw.joysticks[jid].connected &&
; 514 : _glfw.joysticks[jid].win32.device == NULL &&
0007d 48 63 45 24 movsxd rax, DWORD PTR jid$6[rbp]
00081 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
00088 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
0008f 83 7c 01 04 00 cmp DWORD PTR [rcx+rax+4], 0
00094 74 3d je SHORT $LN9@glfwDetect
00096 48 63 45 24 movsxd rax, DWORD PTR jid$6[rbp]
0009a 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
000a1 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
000a8 48 83 bc 01 00
01 00 00 00 cmp QWORD PTR [rcx+rax+256], 0
000b1 75 20 jne SHORT $LN9@glfwDetect
000b3 48 63 45 24 movsxd rax, DWORD PTR jid$6[rbp]
000b7 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
000be 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
000c5 8b 55 04 mov edx, DWORD PTR index$5[rbp]
000c8 39 94 01 08 01
00 00 cmp DWORD PTR [rcx+rax+264], edx
000cf 75 02 jne SHORT $LN9@glfwDetect
; 515 : _glfw.joysticks[jid].win32.index == index)
; 516 : {
; 517 : break;
000d1 eb 02 jmp SHORT $LN6@glfwDetect
$LN9@glfwDetect:
; 518 : }
; 519 : }
000d3 eb 9a jmp SHORT $LN5@glfwDetect
$LN6@glfwDetect:
; 520 :
; 521 : if (jid <= GLFW_JOYSTICK_LAST)
000d5 83 7d 24 0f cmp DWORD PTR jid$6[rbp], 15
000d9 7f 05 jg SHORT $LN10@glfwDetect
; 522 : continue;
000db e9 74 ff ff ff jmp $LN2@glfwDetect
$LN10@glfwDetect:
; 523 :
; 524 : if (XInputGetCapabilities(index, 0, &xic) != ERROR_SUCCESS)
000e0 4c 8d 85 88 00
00 00 lea r8, QWORD PTR xic$8[rbp]
000e7 33 d2 xor edx, edx
000e9 8b 4d 04 mov ecx, DWORD PTR index$5[rbp]
000ec ff 15 88 29 00
00 call QWORD PTR _glfw+10632
000f2 85 c0 test eax, eax
000f4 74 05 je SHORT $LN11@glfwDetect
; 525 : continue;
000f6 e9 59 ff ff ff jmp $LN2@glfwDetect
$LN11@glfwDetect:
; 526 :
; 527 : // Generate a joystick GUID that matches the SDL 2.0.5+ one
; 528 : sprintf(guid, "78696e707574%02x000000000000000000",
000fb 0f b6 85 89 00
00 00 movzx eax, BYTE PTR xic$8[rbp+1]
00102 25 ff 00 00 00 and eax, 255 ; 000000ffH
00107 44 8b c0 mov r8d, eax
0010a 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CD@CBFNHKPK@78696e707574?$CF02x000000000000000@
00111 48 8d 4d 48 lea rcx, QWORD PTR guid$7[rbp]
00115 e8 00 00 00 00 call sprintf
; 529 : xic.SubType & 0xff);
; 530 :
; 531 : js = _glfwAllocJoystick(getDeviceDescription(&xic), guid, 6, 10, 1);
0011a 48 8d 8d 88 00
00 00 lea rcx, QWORD PTR xic$8[rbp]
00121 e8 00 00 00 00 call getDeviceDescription
00126 c7 44 24 20 01
00 00 00 mov DWORD PTR [rsp+32], 1
0012e 41 b9 0a 00 00
00 mov r9d, 10
00134 41 b8 06 00 00
00 mov r8d, 6
0013a 48 8d 55 48 lea rdx, QWORD PTR guid$7[rbp]
0013e 48 8b c8 mov rcx, rax
00141 e8 00 00 00 00 call _glfwAllocJoystick
00146 48 89 85 b8 00
00 00 mov QWORD PTR js$9[rbp], rax
; 532 : if (!js)
0014d 48 83 bd b8 00
00 00 00 cmp QWORD PTR js$9[rbp], 0
00155 75 05 jne SHORT $LN12@glfwDetect
; 533 : continue;
00157 e9 f8 fe ff ff jmp $LN2@glfwDetect
$LN12@glfwDetect:
; 534 :
; 535 : js->win32.index = index;
0015c 48 8b 85 b8 00
00 00 mov rax, QWORD PTR js$9[rbp]
00163 8b 4d 04 mov ecx, DWORD PTR index$5[rbp]
00166 89 88 08 01 00
00 mov DWORD PTR [rax+264], ecx
; 536 :
; 537 : _glfwInputJoystick(js, GLFW_CONNECTED);
0016c ba 01 00 04 00 mov edx, 262145 ; 00040001H
00171 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR js$9[rbp]
00178 e8 00 00 00 00 call _glfwInputJoystick
; 538 : }
0017d e9 d2 fe ff ff jmp $LN2@glfwDetect
$LN3@glfwDetect:
$LN8@glfwDetect:
; 539 : }
; 540 :
; 541 : if (_glfw.win32.dinput8.api)
00182 48 83 3d 78 29
00 00 00 cmp QWORD PTR _glfw+10616, 0
0018a 74 40 je SHORT $LN13@glfwDetect
; 542 : {
; 543 : if (FAILED(IDirectInput8_EnumDevices(_glfw.win32.dinput8.api,
0018c 48 8b 05 78 29
00 00 mov rax, QWORD PTR _glfw+10616
00193 48 8b 00 mov rax, QWORD PTR [rax]
00196 c7 44 24 20 00
00 00 00 mov DWORD PTR [rsp+32], 0
0019e 45 33 c9 xor r9d, r9d
001a1 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:deviceCallback
001a8 ba 04 00 00 00 mov edx, 4
001ad 48 8b 0d 78 29
00 00 mov rcx, QWORD PTR _glfw+10616
001b4 ff 50 20 call QWORD PTR [rax+32]
001b7 85 c0 test eax, eax
001b9 7d 11 jge SHORT $LN14@glfwDetect
; 544 : DI8DEVCLASS_GAMECTRL,
; 545 : deviceCallback,
; 546 : NULL,
; 547 : DIEDFL_ALLDEVICES)))
; 548 : {
; 549 : _glfwInputError(GLFW_PLATFORM_ERROR,
001bb 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@HDJDHLNO@Failed?5to?5enumerate?5DirectInput@
001c2 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
001c7 e8 00 00 00 00 call _glfwInputError
$LN14@glfwDetect:
$LN13@glfwDetect:
; 550 : "Failed to enumerate DirectInput8 devices");
; 551 : return;
; 552 : }
; 553 : }
; 554 : }
001cc 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48]
001d0 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfwDetectJoystickConnectionWin32$rtcFrameData
001d7 e8 00 00 00 00 call _RTC_CheckStackVars
001dc 48 8b 8d 88 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
001e3 48 33 cd xor rcx, rbp
001e6 e8 00 00 00 00 call __security_check_cookie
001eb 48 8d a5 98 01
00 00 lea rsp, QWORD PTR [rbp+408]
001f2 5f pop rdi
001f3 5d pop rbp
001f4 c3 ret 0
_glfwDetectJoystickConnectionWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwUpdateGamepadGUIDWin32
_TEXT SEGMENT
original$4 = 8
__$ArrayPad$ = 248
guid$ = 288
_glfwUpdateGamepadGUIDWin32 PROC ; COMDAT
; 751 : {
$LN4:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 57 push rdi
00007 48 81 ec 28 01
00 00 sub rsp, 296 ; 00000128H
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
00018 b9 12 00 00 00 mov ecx, 18
0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00022 f3 ab rep stosd
00024 48 8b 8c 24 48
01 00 00 mov rcx, QWORD PTR [rsp+328]
0002c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00033 48 33 c5 xor rax, rbp
00036 48 89 85 f8 00
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
0003d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 752 : if (strcmp(guid + 20, "504944564944") == 0)
00049 48 8b 85 20 01
00 00 mov rax, QWORD PTR guid$[rbp]
00050 48 83 c0 14 add rax, 20
00054 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0N@OJEJPFOD@504944564944@
0005b 48 8b c8 mov rcx, rax
0005e e8 00 00 00 00 call strcmp
00063 85 c0 test eax, eax
00065 75 35 jne SHORT $LN2@glfwUpdate
; 753 : {
; 754 : char original[33];
; 755 : strncpy(original, guid, sizeof(original) - 1);
00067 41 b8 20 00 00
00 mov r8d, 32 ; 00000020H
0006d 48 8b 95 20 01
00 00 mov rdx, QWORD PTR guid$[rbp]
00074 48 8d 4d 08 lea rcx, QWORD PTR original$4[rbp]
00078 ff 15 00 00 00
00 call QWORD PTR __imp_strncpy
; 756 : sprintf(guid, "03000000%.4s0000%.4s000000000000",
0007e 48 8d 45 0c lea rax, QWORD PTR original$4[rbp+4]
00082 4c 8b c8 mov r9, rax
00085 4c 8d 45 08 lea r8, QWORD PTR original$4[rbp]
00089 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CB@BIHPPBFK@03000000?$CF?44s0000?$CF?44s00000000000@
00090 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR guid$[rbp]
00097 e8 00 00 00 00 call sprintf
$LN2@glfwUpdate:
; 757 : original, original + 4);
; 758 : }
; 759 : }
0009c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
000a0 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfwUpdateGamepadGUIDWin32$rtcFrameData
000a7 e8 00 00 00 00 call _RTC_CheckStackVars
000ac 48 8b 8d f8 00
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
000b3 48 33 cd xor rcx, rbp
000b6 e8 00 00 00 00 call __security_check_cookie
000bb 48 8d a5 08 01
00 00 lea rsp, QWORD PTR [rbp+264]
000c2 5f pop rdi
000c3 5d pop rbp
000c4 c3 ret 0
_glfwUpdateGamepadGUIDWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwGetMappingNameWin32
_TEXT SEGMENT
_glfwGetMappingNameWin32 PROC ; COMDAT
; 746 : {
$LN3:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0000f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 747 : return "Windows";
0001b 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:??_C@_07LDLFNPGN@Windows@
; 748 : }
00022 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
00029 5f pop rdi
0002a 5d pop rbp
0002b c3 ret 0
_glfwGetMappingNameWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwPollJoystickWin32
_TEXT SEGMENT
i$7 = 4
ai$8 = 36
bi$9 = 68
pi$10 = 100
result$11 = 132
state$12 = 176
data$13 = 280
value$14 = 308
value$15 = 340
states$16 = 376
stateIndex$17 = 436
i$18 = 468
dpad$19 = 500
result$20 = 532
xis$21 = 568
buttons$22 = 616
value$23 = 660
tv286 = 1060
tv165 = 1060
tv153 = 1060
__$ArrayPad$ = 1064
js$ = 1104
mode$ = 1112
_glfwPollJoystickWin32 PROC ; COMDAT
; 607 : {
$LN34:
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00009 55 push rbp
0000a 57 push rdi
0000b 48 81 ec 58 04
00 00 sub rsp, 1112 ; 00000458H
00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32]
0001c b9 ae 00 00 00 mov ecx, 174 ; 000000aeH
00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
00026 f3 ab rep stosd
00028 48 8b 8c 24 78
04 00 00 mov rcx, QWORD PTR [rsp+1144]
00030 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00037 48 33 c5 xor rax, rbp
0003a 48 89 85 28 04
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00041 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 608 : if (js->win32.device)
0004d 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00054 48 83 b8 00 01
00 00 00 cmp QWORD PTR [rax+256], 0
0005c 0f 84 40 03 00
00 je $LN10@glfwPollJo
; 609 : {
; 610 : int i, ai = 0, bi = 0, pi = 0;
00062 c7 45 24 00 00
00 00 mov DWORD PTR ai$8[rbp], 0
00069 c7 45 44 00 00
00 00 mov DWORD PTR bi$9[rbp], 0
00070 c7 45 64 00 00
00 00 mov DWORD PTR pi$10[rbp], 0
; 611 : HRESULT result;
; 612 : DIJOYSTATE state = {0};
00077 48 8d 85 b0 00
00 00 lea rax, QWORD PTR state$12[rbp]
0007e 48 8b f8 mov rdi, rax
00081 33 c0 xor eax, eax
00083 b9 50 00 00 00 mov ecx, 80 ; 00000050H
00088 f3 aa rep stosb
; 613 :
; 614 : IDirectInputDevice8_Poll(js->win32.device);
0008a 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00091 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
00098 48 8b 00 mov rax, QWORD PTR [rax]
0009b 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
000a2 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
000a9 ff 90 c8 00 00
00 call QWORD PTR [rax+200]
; 615 : result = IDirectInputDevice8_GetDeviceState(js->win32.device,
000af 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
000b6 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
000bd 48 8b 00 mov rax, QWORD PTR [rax]
000c0 4c 8d 85 b0 00
00 00 lea r8, QWORD PTR state$12[rbp]
000c7 ba 50 00 00 00 mov edx, 80 ; 00000050H
000cc 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
000d3 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
000da ff 50 48 call QWORD PTR [rax+72]
000dd 89 85 84 00 00
00 mov DWORD PTR result$11[rbp], eax
; 616 : sizeof(state),
; 617 : &state);
; 618 : if (result == DIERR_NOTACQUIRED || result == DIERR_INPUTLOST)
000e3 81 bd 84 00 00
00 0c 00 07 80 cmp DWORD PTR result$11[rbp], -2147024884 ; ffffffff8007000cH
000ed 74 0c je SHORT $LN13@glfwPollJo
000ef 81 bd 84 00 00
00 1e 00 07 80 cmp DWORD PTR result$11[rbp], -2147024866 ; ffffffff8007001eH
000f9 75 7b jne SHORT $LN12@glfwPollJo
$LN13@glfwPollJo:
; 619 : {
; 620 : IDirectInputDevice8_Acquire(js->win32.device);
000fb 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00102 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
00109 48 8b 00 mov rax, QWORD PTR [rax]
0010c 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00113 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
0011a ff 50 38 call QWORD PTR [rax+56]
; 621 : IDirectInputDevice8_Poll(js->win32.device);
0011d 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00124 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
0012b 48 8b 00 mov rax, QWORD PTR [rax]
0012e 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00135 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
0013c ff 90 c8 00 00
00 call QWORD PTR [rax+200]
; 622 : result = IDirectInputDevice8_GetDeviceState(js->win32.device,
00142 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00149 48 8b 80 00 01
00 00 mov rax, QWORD PTR [rax+256]
00150 48 8b 00 mov rax, QWORD PTR [rax]
00153 4c 8d 85 b0 00
00 00 lea r8, QWORD PTR state$12[rbp]
0015a ba 50 00 00 00 mov edx, 80 ; 00000050H
0015f 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00166 48 8b 89 00 01
00 00 mov rcx, QWORD PTR [rcx+256]
0016d ff 50 48 call QWORD PTR [rax+72]
00170 89 85 84 00 00
00 mov DWORD PTR result$11[rbp], eax
$LN12@glfwPollJo:
; 623 : sizeof(state),
; 624 : &state);
; 625 : }
; 626 :
; 627 : if (FAILED(result))
00176 83 bd 84 00 00
00 00 cmp DWORD PTR result$11[rbp], 0
0017d 7d 13 jge SHORT $LN14@glfwPollJo
; 628 : {
; 629 : closeJoystick(js);
0017f 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00186 e8 00 00 00 00 call closeJoystick
; 630 : return GLFW_FALSE;
0018b 33 c0 xor eax, eax
0018d e9 1f 05 00 00 jmp $LN1@glfwPollJo
$LN14@glfwPollJo:
; 631 : }
; 632 :
; 633 : if (mode == _GLFW_POLL_PRESENCE)
00192 83 bd 58 04 00
00 00 cmp DWORD PTR mode$[rbp], 0
00199 75 0a jne SHORT $LN15@glfwPollJo
; 634 : return GLFW_TRUE;
0019b b8 01 00 00 00 mov eax, 1
001a0 e9 0c 05 00 00 jmp $LN1@glfwPollJo
$LN15@glfwPollJo:
; 635 :
; 636 : for (i = 0; i < js->win32.objectCount; i++)
001a5 c7 45 04 00 00
00 00 mov DWORD PTR i$7[rbp], 0
001ac eb 08 jmp SHORT $LN4@glfwPollJo
$LN2@glfwPollJo:
001ae 8b 45 04 mov eax, DWORD PTR i$7[rbp]
001b1 ff c0 inc eax
001b3 89 45 04 mov DWORD PTR i$7[rbp], eax
$LN4@glfwPollJo:
001b6 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
001bd 8b 80 f8 00 00
00 mov eax, DWORD PTR [rax+248]
001c3 39 45 04 cmp DWORD PTR i$7[rbp], eax
001c6 0f 8d d1 01 00
00 jge $LN3@glfwPollJo
; 637 : {
; 638 : const void* data = (char*) &state + js->win32.objects[i].offset;
001cc 48 63 45 04 movsxd rax, DWORD PTR i$7[rbp]
001d0 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
001d7 48 8b 89 f0 00
00 00 mov rcx, QWORD PTR [rcx+240]
001de 48 63 04 c1 movsxd rax, DWORD PTR [rcx+rax*8]
001e2 48 8d 84 05 b0
00 00 00 lea rax, QWORD PTR state$12[rbp+rax]
001ea 48 89 85 18 01
00 00 mov QWORD PTR data$13[rbp], rax
; 639 :
; 640 : switch (js->win32.objects[i].type)
001f1 48 63 45 04 movsxd rax, DWORD PTR i$7[rbp]
001f5 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
001fc 48 8b 89 f0 00
00 00 mov rcx, QWORD PTR [rcx+240]
00203 8b 44 c1 04 mov eax, DWORD PTR [rcx+rax*8+4]
00207 89 85 24 04 00
00 mov DWORD PTR tv153[rbp], eax
0020d 83 bd 24 04 00
00 00 cmp DWORD PTR tv153[rbp], 0
00214 74 24 je SHORT $LN16@glfwPollJo
00216 83 bd 24 04 00
00 01 cmp DWORD PTR tv153[rbp], 1
0021d 74 1b je SHORT $LN17@glfwPollJo
0021f 83 bd 24 04 00
00 02 cmp DWORD PTR tv153[rbp], 2
00226 74 59 je SHORT $LN18@glfwPollJo
00228 83 bd 24 04 00
00 03 cmp DWORD PTR tv153[rbp], 3
0022f 0f 84 a6 00 00
00 je $LN19@glfwPollJo
00235 e9 5e 01 00 00 jmp $LN5@glfwPollJo
$LN16@glfwPollJo:
$LN17@glfwPollJo:
; 641 : {
; 642 : case _GLFW_TYPE_AXIS:
; 643 : case _GLFW_TYPE_SLIDER:
; 644 : {
; 645 : const float value = (*((LONG*) data) + 0.5f) / 32767.5f;
0023a 48 8b 85 18 01
00 00 mov rax, QWORD PTR data$13[rbp]
00241 f3 0f 2a 00 cvtsi2ss xmm0, DWORD PTR [rax]
00245 f3 0f 58 05 00
00 00 00 addss xmm0, DWORD PTR __real@3f000000
0024d f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@46ffff00
00255 f3 0f 11 85 34
01 00 00 movss DWORD PTR value$14[rbp], xmm0
; 646 : _glfwInputJoystickAxis(js, ai, value);
0025d f3 0f 10 95 34
01 00 00 movss xmm2, DWORD PTR value$14[rbp]
00265 8b 55 24 mov edx, DWORD PTR ai$8[rbp]
00268 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
0026f e8 00 00 00 00 call _glfwInputJoystickAxis
; 647 : ai++;
00274 8b 45 24 mov eax, DWORD PTR ai$8[rbp]
00277 ff c0 inc eax
00279 89 45 24 mov DWORD PTR ai$8[rbp], eax
; 648 : break;
0027c e9 17 01 00 00 jmp $LN5@glfwPollJo
$LN18@glfwPollJo:
; 649 : }
; 650 :
; 651 : case _GLFW_TYPE_BUTTON:
; 652 : {
; 653 : const char value = (*((BYTE*) data) & 0x80) != 0;
00281 48 8b 85 18 01
00 00 mov rax, QWORD PTR data$13[rbp]
00288 0f b6 00 movzx eax, BYTE PTR [rax]
0028b 25 80 00 00 00 and eax, 128 ; 00000080H
00290 85 c0 test eax, eax
00292 74 0c je SHORT $LN30@glfwPollJo
00294 c7 85 24 04 00
00 01 00 00 00 mov DWORD PTR tv165[rbp], 1
0029e eb 0a jmp SHORT $LN31@glfwPollJo
$LN30@glfwPollJo:
002a0 c7 85 24 04 00
00 00 00 00 00 mov DWORD PTR tv165[rbp], 0
$LN31@glfwPollJo:
002aa 0f b6 85 24 04
00 00 movzx eax, BYTE PTR tv165[rbp]
002b1 88 85 54 01 00
00 mov BYTE PTR value$15[rbp], al
; 654 : _glfwInputJoystickButton(js, bi, value);
002b7 44 0f b6 85 54
01 00 00 movzx r8d, BYTE PTR value$15[rbp]
002bf 8b 55 44 mov edx, DWORD PTR bi$9[rbp]
002c2 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
002c9 e8 00 00 00 00 call _glfwInputJoystickButton
; 655 : bi++;
002ce 8b 45 44 mov eax, DWORD PTR bi$9[rbp]
002d1 ff c0 inc eax
002d3 89 45 44 mov DWORD PTR bi$9[rbp], eax
; 656 : break;
002d6 e9 bd 00 00 00 jmp $LN5@glfwPollJo
$LN19@glfwPollJo:
; 657 : }
; 658 :
; 659 : case _GLFW_TYPE_POV:
; 660 : {
; 661 : const int states[9] =
002db c7 85 78 01 00
00 01 00 00 00 mov DWORD PTR states$16[rbp], 1
002e5 c7 85 7c 01 00
00 03 00 00 00 mov DWORD PTR states$16[rbp+4], 3
002ef c7 85 80 01 00
00 02 00 00 00 mov DWORD PTR states$16[rbp+8], 2
002f9 c7 85 84 01 00
00 06 00 00 00 mov DWORD PTR states$16[rbp+12], 6
00303 c7 85 88 01 00
00 04 00 00 00 mov DWORD PTR states$16[rbp+16], 4
0030d c7 85 8c 01 00
00 0c 00 00 00 mov DWORD PTR states$16[rbp+20], 12
00317 c7 85 90 01 00
00 08 00 00 00 mov DWORD PTR states$16[rbp+24], 8
00321 c7 85 94 01 00
00 09 00 00 00 mov DWORD PTR states$16[rbp+28], 9
0032b c7 85 98 01 00
00 00 00 00 00 mov DWORD PTR states$16[rbp+32], 0
; 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);
00335 48 8b 85 18 01
00 00 mov rax, QWORD PTR data$13[rbp]
0033c 8b 00 mov eax, DWORD PTR [rax]
0033e 48 25 ff ff 00
00 and rax, 65535 ; 0000ffffH
00344 0f b7 c0 movzx eax, ax
00347 99 cdq
00348 b9 94 11 00 00 mov ecx, 4500 ; 00001194H
0034d f7 f9 idiv ecx
0034f 89 85 b4 01 00
00 mov DWORD PTR stateIndex$17[rbp], eax
; 676 : if (stateIndex < 0 || stateIndex > 8)
00355 83 bd b4 01 00
00 00 cmp DWORD PTR stateIndex$17[rbp], 0
0035c 7c 09 jl SHORT $LN21@glfwPollJo
0035e 83 bd b4 01 00
00 08 cmp DWORD PTR stateIndex$17[rbp], 8
00365 7e 0a jle SHORT $LN20@glfwPollJo
$LN21@glfwPollJo:
; 677 : stateIndex = 8;
00367 c7 85 b4 01 00
00 08 00 00 00 mov DWORD PTR stateIndex$17[rbp], 8
$LN20@glfwPollJo:
; 678 :
; 679 : _glfwInputJoystickHat(js, pi, states[stateIndex]);
00371 48 63 85 b4 01
00 00 movsxd rax, DWORD PTR stateIndex$17[rbp]
00378 44 0f b6 84 85
78 01 00 00 movzx r8d, BYTE PTR states$16[rbp+rax*4]
00381 8b 55 64 mov edx, DWORD PTR pi$10[rbp]
00384 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
0038b e8 00 00 00 00 call _glfwInputJoystickHat
; 680 : pi++;
00390 8b 45 64 mov eax, DWORD PTR pi$10[rbp]
00393 ff c0 inc eax
00395 89 45 64 mov DWORD PTR pi$10[rbp], eax
$LN5@glfwPollJo:
; 681 : break;
; 682 : }
; 683 : }
; 684 : }
00398 e9 11 fe ff ff jmp $LN2@glfwPollJo
$LN3@glfwPollJo:
; 685 : }
0039d e9 0a 03 00 00 jmp $LN11@glfwPollJo
$LN10@glfwPollJo:
; 686 : else
; 687 : {
; 688 : int i, dpad = 0;
003a2 c7 85 f4 01 00
00 00 00 00 00 mov DWORD PTR dpad$19[rbp], 0
; 689 : DWORD result;
; 690 : XINPUT_STATE xis;
; 691 : const WORD buttons[10] =
003ac b8 00 10 00 00 mov eax, 4096 ; 00001000H
003b1 66 89 85 68 02
00 00 mov WORD PTR buttons$22[rbp], ax
003b8 b8 00 20 00 00 mov eax, 8192 ; 00002000H
003bd 66 89 85 6a 02
00 00 mov WORD PTR buttons$22[rbp+2], ax
003c4 b8 00 40 00 00 mov eax, 16384 ; 00004000H
003c9 66 89 85 6c 02
00 00 mov WORD PTR buttons$22[rbp+4], ax
003d0 b8 00 80 00 00 mov eax, 32768 ; 00008000H
003d5 66 89 85 6e 02
00 00 mov WORD PTR buttons$22[rbp+6], ax
003dc b8 00 01 00 00 mov eax, 256 ; 00000100H
003e1 66 89 85 70 02
00 00 mov WORD PTR buttons$22[rbp+8], ax
003e8 b8 00 02 00 00 mov eax, 512 ; 00000200H
003ed 66 89 85 72 02
00 00 mov WORD PTR buttons$22[rbp+10], ax
003f4 b8 20 00 00 00 mov eax, 32 ; 00000020H
003f9 66 89 85 74 02
00 00 mov WORD PTR buttons$22[rbp+12], ax
00400 b8 10 00 00 00 mov eax, 16
00405 66 89 85 76 02
00 00 mov WORD PTR buttons$22[rbp+14], ax
0040c b8 40 00 00 00 mov eax, 64 ; 00000040H
00411 66 89 85 78 02
00 00 mov WORD PTR buttons$22[rbp+16], ax
00418 b8 80 00 00 00 mov eax, 128 ; 00000080H
0041d 66 89 85 7a 02
00 00 mov WORD PTR buttons$22[rbp+18], ax
; 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);
00424 48 8d 95 38 02
00 00 lea rdx, QWORD PTR xis$21[rbp]
0042b 48 8b 85 50 04
00 00 mov rax, QWORD PTR js$[rbp]
00432 8b 88 08 01 00
00 mov ecx, DWORD PTR [rax+264]
00438 ff 15 90 29 00
00 call QWORD PTR _glfw+10640
0043e 89 85 14 02 00
00 mov DWORD PTR result$20[rbp], eax
; 706 : if (result != ERROR_SUCCESS)
00444 83 bd 14 02 00
00 00 cmp DWORD PTR result$20[rbp], 0
0044b 74 1f je SHORT $LN22@glfwPollJo
; 707 : {
; 708 : if (result == ERROR_DEVICE_NOT_CONNECTED)
0044d 81 bd 14 02 00
00 8f 04 00 00 cmp DWORD PTR result$20[rbp], 1167 ; 0000048fH
00457 75 0c jne SHORT $LN23@glfwPollJo
; 709 : closeJoystick(js);
00459 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00460 e8 00 00 00 00 call closeJoystick
$LN23@glfwPollJo:
; 710 :
; 711 : return GLFW_FALSE;
00465 33 c0 xor eax, eax
00467 e9 45 02 00 00 jmp $LN1@glfwPollJo
$LN22@glfwPollJo:
; 712 : }
; 713 :
; 714 : if (mode == _GLFW_POLL_PRESENCE)
0046c 83 bd 58 04 00
00 00 cmp DWORD PTR mode$[rbp], 0
00473 75 0a jne SHORT $LN24@glfwPollJo
; 715 : return GLFW_TRUE;
00475 b8 01 00 00 00 mov eax, 1
0047a e9 32 02 00 00 jmp $LN1@glfwPollJo
$LN24@glfwPollJo:
; 716 :
; 717 : _glfwInputJoystickAxis(js, 0, (xis.Gamepad.sThumbLX + 0.5f) / 32767.5f);
0047f 0f bf 85 40 02
00 00 movsx eax, WORD PTR xis$21[rbp+8]
00486 f3 0f 2a c0 cvtsi2ss xmm0, eax
0048a f3 0f 58 05 00
00 00 00 addss xmm0, DWORD PTR __real@3f000000
00492 f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@46ffff00
0049a 0f 28 d0 movaps xmm2, xmm0
0049d 33 d2 xor edx, edx
0049f 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
004a6 e8 00 00 00 00 call _glfwInputJoystickAxis
; 718 : _glfwInputJoystickAxis(js, 1, -(xis.Gamepad.sThumbLY + 0.5f) / 32767.5f);
004ab 0f bf 85 42 02
00 00 movsx eax, WORD PTR xis$21[rbp+10]
004b2 f3 0f 2a c0 cvtsi2ss xmm0, eax
004b6 f3 0f 58 05 00
00 00 00 addss xmm0, DWORD PTR __real@3f000000
004be 0f 57 05 00 00
00 00 xorps xmm0, DWORD PTR __xmm@80000000800000008000000080000000
004c5 f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@46ffff00
004cd 0f 28 d0 movaps xmm2, xmm0
004d0 ba 01 00 00 00 mov edx, 1
004d5 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
004dc e8 00 00 00 00 call _glfwInputJoystickAxis
; 719 : _glfwInputJoystickAxis(js, 2, (xis.Gamepad.sThumbRX + 0.5f) / 32767.5f);
004e1 0f bf 85 44 02
00 00 movsx eax, WORD PTR xis$21[rbp+12]
004e8 f3 0f 2a c0 cvtsi2ss xmm0, eax
004ec f3 0f 58 05 00
00 00 00 addss xmm0, DWORD PTR __real@3f000000
004f4 f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@46ffff00
004fc 0f 28 d0 movaps xmm2, xmm0
004ff ba 02 00 00 00 mov edx, 2
00504 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
0050b e8 00 00 00 00 call _glfwInputJoystickAxis
; 720 : _glfwInputJoystickAxis(js, 3, -(xis.Gamepad.sThumbRY + 0.5f) / 32767.5f);
00510 0f bf 85 46 02
00 00 movsx eax, WORD PTR xis$21[rbp+14]
00517 f3 0f 2a c0 cvtsi2ss xmm0, eax
0051b f3 0f 58 05 00
00 00 00 addss xmm0, DWORD PTR __real@3f000000
00523 0f 57 05 00 00
00 00 xorps xmm0, DWORD PTR __xmm@80000000800000008000000080000000
0052a f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@46ffff00
00532 0f 28 d0 movaps xmm2, xmm0
00535 ba 03 00 00 00 mov edx, 3
0053a 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00541 e8 00 00 00 00 call _glfwInputJoystickAxis
; 721 : _glfwInputJoystickAxis(js, 4, xis.Gamepad.bLeftTrigger / 127.5f - 1.f);
00546 0f b6 85 3e 02
00 00 movzx eax, BYTE PTR xis$21[rbp+6]
0054d f3 0f 2a c0 cvtsi2ss xmm0, eax
00551 f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@42ff0000
00559 f3 0f 5c 05 00
00 00 00 subss xmm0, DWORD PTR __real@3f800000
00561 0f 28 d0 movaps xmm2, xmm0
00564 ba 04 00 00 00 mov edx, 4
00569 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
00570 e8 00 00 00 00 call _glfwInputJoystickAxis
; 722 : _glfwInputJoystickAxis(js, 5, xis.Gamepad.bRightTrigger / 127.5f - 1.f);
00575 0f b6 85 3f 02
00 00 movzx eax, BYTE PTR xis$21[rbp+7]
0057c f3 0f 2a c0 cvtsi2ss xmm0, eax
00580 f3 0f 5e 05 00
00 00 00 divss xmm0, DWORD PTR __real@42ff0000
00588 f3 0f 5c 05 00
00 00 00 subss xmm0, DWORD PTR __real@3f800000
00590 0f 28 d0 movaps xmm2, xmm0
00593 ba 05 00 00 00 mov edx, 5
00598 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
0059f e8 00 00 00 00 call _glfwInputJoystickAxis
; 723 :
; 724 : for (i = 0; i < 10; i++)
005a4 c7 85 d4 01 00
00 00 00 00 00 mov DWORD PTR i$18[rbp], 0
005ae eb 0e jmp SHORT $LN9@glfwPollJo
$LN7@glfwPollJo:
005b0 8b 85 d4 01 00
00 mov eax, DWORD PTR i$18[rbp]
005b6 ff c0 inc eax
005b8 89 85 d4 01 00
00 mov DWORD PTR i$18[rbp], eax
$LN9@glfwPollJo:
005be 83 bd d4 01 00
00 0a cmp DWORD PTR i$18[rbp], 10
005c5 7d 5b jge SHORT $LN8@glfwPollJo
; 725 : {
; 726 : const char value = (xis.Gamepad.wButtons & buttons[i]) ? 1 : 0;
005c7 0f b7 85 3c 02
00 00 movzx eax, WORD PTR xis$21[rbp+4]
005ce 48 63 8d d4 01
00 00 movsxd rcx, DWORD PTR i$18[rbp]
005d5 0f b7 8c 4d 68
02 00 00 movzx ecx, WORD PTR buttons$22[rbp+rcx*2]
005dd 23 c1 and eax, ecx
005df 85 c0 test eax, eax
005e1 74 0c je SHORT $LN32@glfwPollJo
005e3 c7 85 24 04 00
00 01 00 00 00 mov DWORD PTR tv286[rbp], 1
005ed eb 0a jmp SHORT $LN33@glfwPollJo
$LN32@glfwPollJo:
005ef c7 85 24 04 00
00 00 00 00 00 mov DWORD PTR tv286[rbp], 0
$LN33@glfwPollJo:
005f9 0f b6 85 24 04
00 00 movzx eax, BYTE PTR tv286[rbp]
00600 88 85 94 02 00
00 mov BYTE PTR value$23[rbp], al
; 727 : _glfwInputJoystickButton(js, i, value);
00606 44 0f b6 85 94
02 00 00 movzx r8d, BYTE PTR value$23[rbp]
0060e 8b 95 d4 01 00
00 mov edx, DWORD PTR i$18[rbp]
00614 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
0061b e8 00 00 00 00 call _glfwInputJoystickButton
; 728 : }
00620 eb 8e jmp SHORT $LN7@glfwPollJo
$LN8@glfwPollJo:
; 729 :
; 730 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_UP)
00622 0f b7 85 3c 02
00 00 movzx eax, WORD PTR xis$21[rbp+4]
00629 83 e0 01 and eax, 1
0062c 85 c0 test eax, eax
0062e 74 0f je SHORT $LN25@glfwPollJo
; 731 : dpad |= GLFW_HAT_UP;
00630 8b 85 f4 01 00
00 mov eax, DWORD PTR dpad$19[rbp]
00636 83 c8 01 or eax, 1
00639 89 85 f4 01 00
00 mov DWORD PTR dpad$19[rbp], eax
$LN25@glfwPollJo:
; 732 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_RIGHT)
0063f 0f b7 85 3c 02
00 00 movzx eax, WORD PTR xis$21[rbp+4]
00646 83 e0 08 and eax, 8
00649 85 c0 test eax, eax
0064b 74 0f je SHORT $LN26@glfwPollJo
; 733 : dpad |= GLFW_HAT_RIGHT;
0064d 8b 85 f4 01 00
00 mov eax, DWORD PTR dpad$19[rbp]
00653 83 c8 02 or eax, 2
00656 89 85 f4 01 00
00 mov DWORD PTR dpad$19[rbp], eax
$LN26@glfwPollJo:
; 734 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_DOWN)
0065c 0f b7 85 3c 02
00 00 movzx eax, WORD PTR xis$21[rbp+4]
00663 83 e0 02 and eax, 2
00666 85 c0 test eax, eax
00668 74 0f je SHORT $LN27@glfwPollJo
; 735 : dpad |= GLFW_HAT_DOWN;
0066a 8b 85 f4 01 00
00 mov eax, DWORD PTR dpad$19[rbp]
00670 83 c8 04 or eax, 4
00673 89 85 f4 01 00
00 mov DWORD PTR dpad$19[rbp], eax
$LN27@glfwPollJo:
; 736 : if (xis.Gamepad.wButtons & XINPUT_GAMEPAD_DPAD_LEFT)
00679 0f b7 85 3c 02
00 00 movzx eax, WORD PTR xis$21[rbp+4]
00680 83 e0 04 and eax, 4
00683 85 c0 test eax, eax
00685 74 0f je SHORT $LN28@glfwPollJo
; 737 : dpad |= GLFW_HAT_LEFT;
00687 8b 85 f4 01 00
00 mov eax, DWORD PTR dpad$19[rbp]
0068d 83 c8 08 or eax, 8
00690 89 85 f4 01 00
00 mov DWORD PTR dpad$19[rbp], eax
$LN28@glfwPollJo:
; 738 :
; 739 : _glfwInputJoystickHat(js, 0, dpad);
00696 44 0f b6 85 f4
01 00 00 movzx r8d, BYTE PTR dpad$19[rbp]
0069e 33 d2 xor edx, edx
006a0 48 8b 8d 50 04
00 00 mov rcx, QWORD PTR js$[rbp]
006a7 e8 00 00 00 00 call _glfwInputJoystickHat
$LN11@glfwPollJo:
; 740 : }
; 741 :
; 742 : return GLFW_TRUE;
006ac b8 01 00 00 00 mov eax, 1
$LN1@glfwPollJo:
; 743 : }
006b1 48 8b f8 mov rdi, rax
006b4 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
006b8 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:_glfwPollJoystickWin32$rtcFrameData
006bf e8 00 00 00 00 call _RTC_CheckStackVars
006c4 48 8b c7 mov rax, rdi
006c7 48 8b 8d 28 04
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
006ce 48 33 cd xor rcx, rbp
006d1 e8 00 00 00 00 call __security_check_cookie
006d6 48 8d a5 38 04
00 00 lea rsp, QWORD PTR [rbp+1080]
006dd 5f pop rdi
006de 5d pop rbp
006df c3 ret 0
_glfwPollJoystickWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwTerminateJoysticksWin32
_TEXT SEGMENT
jid$ = 4
_glfwTerminateJoysticksWin32 PROC ; COMDAT
; 596 : {
$LN7:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec 08 01
00 00 sub rsp, 264 ; 00000108H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0000f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 597 : int jid;
; 598 :
; 599 : for (jid = GLFW_JOYSTICK_1; jid <= GLFW_JOYSTICK_LAST; jid++)
0001b c7 45 04 00 00
00 00 mov DWORD PTR jid$[rbp], 0
00022 eb 08 jmp SHORT $LN4@glfwTermin
$LN2@glfwTermin:
00024 8b 45 04 mov eax, DWORD PTR jid$[rbp]
00027 ff c0 inc eax
00029 89 45 04 mov DWORD PTR jid$[rbp], eax
$LN4@glfwTermin:
0002c 83 7d 04 0f cmp DWORD PTR jid$[rbp], 15
00030 7f 22 jg SHORT $LN3@glfwTermin
; 600 : closeJoystick(_glfw.joysticks + jid);
00032 48 63 45 04 movsxd rax, DWORD PTR jid$[rbp]
00036 48 69 c0 20 01
00 00 imul rax, rax, 288 ; 00000120H
0003d 48 8d 0d 90 07
00 00 lea rcx, OFFSET FLAT:_glfw+1936
00044 48 03 c8 add rcx, rax
00047 48 8b c1 mov rax, rcx
0004a 48 8b c8 mov rcx, rax
0004d e8 00 00 00 00 call closeJoystick
00052 eb d0 jmp SHORT $LN2@glfwTermin
$LN3@glfwTermin:
; 601 :
; 602 : if (_glfw.win32.dinput8.api)
00054 48 83 3d 78 29
00 00 00 cmp QWORD PTR _glfw+10616, 0
0005c 74 14 je SHORT $LN5@glfwTermin
; 603 : IDirectInput8_Release(_glfw.win32.dinput8.api);
0005e 48 8b 05 78 29
00 00 mov rax, QWORD PTR _glfw+10616
00065 48 8b 00 mov rax, QWORD PTR [rax]
00068 48 8b 0d 78 29
00 00 mov rcx, QWORD PTR _glfw+10616
0006f ff 50 10 call QWORD PTR [rax+16]
$LN5@glfwTermin:
; 604 : }
00072 48 8d a5 e8 00
00 00 lea rsp, QWORD PTR [rbp+232]
00079 5f pop rdi
0007a 5d pop rbp
0007b c3 ret 0
_glfwTerminateJoysticksWin32 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\NitloadIndustry\�о���Ŀ\1-Flagship\TH2020\ProjectFile\Դ����\StgSharpGraphic\code\glfw\win32_joystick.c
; COMDAT _glfwInitJoysticksWin32
_TEXT SEGMENT
_glfwInitJoysticksWin32 PROC ; COMDAT
; 576 : {
$LN5:
00000 40 55 push rbp
00002 57 push rdi
00003 48 81 ec f8 00
00 00 sub rsp, 248 ; 000000f8H
0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
0000f 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__BD81096D_win32_joystick@c
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 577 : if (_glfw.win32.dinput8.instance)
0001b 48 83 3d 68 29
00 00 00 cmp QWORD PTR _glfw+10600, 0
00023 74 42 je SHORT $LN2@glfwInitJo
; 578 : {
; 579 : if (FAILED(DirectInput8Create(_glfw.win32.instance,
00025 48 c7 44 24 20
00 00 00 00 mov QWORD PTR [rsp+32], 0
0002e 4c 8d 0d 78 29
00 00 lea r9, OFFSET FLAT:_glfw+10616
00035 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:_glfw_IID_IDirectInput8W
0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H
00041 48 8b 0d 78 1b
00 00 mov rcx, QWORD PTR _glfw+7032
00048 ff 15 70 29 00
00 call QWORD PTR _glfw+10608
0004e 85 c0 test eax, eax
00050 7d 15 jge SHORT $LN3@glfwInitJo
; 580 : DIRECTINPUT_VERSION,
; 581 : &IID_IDirectInput8W,
; 582 : (void**) &_glfw.win32.dinput8.api,
; 583 : NULL)))
; 584 : {
; 585 : _glfwInputError(GLFW_PLATFORM_ERROR,
00052 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_0CC@MGDCJJKB@Win32?3?5Failed?5to?5create?5interfa@
00059 b9 08 00 01 00 mov ecx, 65544 ; 00010008H
0005e e8 00 00 00 00 call _glfwInputError
; 586 : "Win32: Failed to create interface");
; 587 : return GLFW_FALSE;
00063 33 c0 xor eax, eax
00065 eb 0a jmp SHORT $LN1@glfwInitJo
$LN3@glfwInitJo:
$LN2@glfwInitJo:
; 588 : }
; 589 : }
; 590 :
; 591 : _glfwDetectJoystickConnectionWin32();
00067 e8 00 00 00 00 call _glfwDetectJoystickConnectionWin32
; 592 : return GLFW_TRUE;
0006c b8 01 00 00 00 mov eax, 1
$LN1@glfwInitJo:
; 593 : }
00071 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
00078 5f pop rdi
00079 5d pop rbp
0007a c3 ret 0
_glfwInitJoysticksWin32 ENDP
_TEXT ENDS
END