Created
October 28, 2018 18:53
-
-
Save karai17/1b0d93d9cb8390016363e51c3390442d to your computer and use it in GitHub Desktop.
NecroDancer ITG2 PIUIO Support (Linux v1.29 Assembly)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Dump of assembler code for function _ZN9gxtkInput11BeginUpdateEv: | |
| 0x080d6fd0 <+0>: 55 push ebp | |
| 0x080d6fd1 <+1>: 57 push edi | |
| 0x080d6fd2 <+2>: bf 18 00 00 00 mov edi,0x18 | |
| 0x080d6fd7 <+7>: 56 push esi | |
| 0x080d6fd8 <+8>: 53 push ebx | |
| 0x080d6fd9 <+9>: 83 ec 5c sub esp,0x5c | |
| 0x080d6fdc <+12>: 65 a1 14 00 00 00 mov eax,gs:0x14 | |
| 0x080d6fe2 <+18>: 89 44 24 4c mov DWORD PTR [esp+0x4c],eax | |
| 0x080d6fe6 <+22>: 31 c0 xor eax,eax | |
| 0x080d6fe8 <+24>: 8d 44 24 28 lea eax,[esp+0x28] | |
| 0x080d6fec <+28>: 8b 5c 24 70 mov ebx,DWORD PTR [esp+0x70] | |
| 0x080d6ff0 <+32>: 89 44 24 04 mov DWORD PTR [esp+0x4],eax | |
| 0x080d6ff4 <+36>: 8d 44 24 24 lea eax,[esp+0x24] | |
| 0x080d6ff8 <+40>: 89 04 24 mov DWORD PTR [esp],eax | |
| 0x080d6ffb <+43>: c7 44 24 24 00 00 00 00 mov DWORD PTR [esp+0x24],0x0 | |
| 0x080d7003 <+51>: c7 44 24 28 00 00 00 00 mov DWORD PTR [esp+0x28],0x0 | |
| 0x080d700b <+59>: e8 70 5d f7 ff call 0x804cd80 <glfwGetMousePos@plt> | |
| 0x080d7010 <+64>: db 44 24 24 fild DWORD PTR [esp+0x24] | |
| 0x080d7014 <+68>: d9 9b 98 08 00 00 fstp DWORD PTR [ebx+0x898] | |
| 0x080d701a <+74>: db 44 24 28 fild DWORD PTR [esp+0x28] | |
| 0x080d701e <+78>: d9 9b 9c 08 00 00 fstp DWORD PTR [ebx+0x89c] | |
| 0x080d7024 <+84>: c7 44 24 04 02 00 05 00 mov DWORD PTR [esp+0x4],0x50002 | |
| 0x080d702c <+92>: c7 04 24 00 00 00 00 mov DWORD PTR [esp],0x0 | |
| 0x080d7033 <+99>: e8 d8 57 f7 ff call 0x804c810 <glfwGetJoystickParam@plt> | |
| 0x080d7038 <+104>: c7 44 24 04 03 00 05 00 mov DWORD PTR [esp+0x4],0x50003 | |
| 0x080d7040 <+112>: c7 04 24 00 00 00 00 mov DWORD PTR [esp],0x0 | |
| 0x080d7047 <+119>: 89 44 24 1c mov DWORD PTR [esp+0x1c],eax | |
| 0x080d704b <+123>: e8 c0 57 f7 ff call 0x804c810 <glfwGetJoystickParam@plt> | |
| 0x080d7050 <+128>: 8d 8b a0 08 00 00 lea ecx,[ebx+0x8a0] | |
| 0x080d7056 <+134>: f6 c1 01 test cl,0x1 | |
| 0x080d7059 <+137>: 89 ca mov edx,ecx | |
| 0x080d705b <+139>: 89 c6 mov esi,eax | |
| 0x080d705d <+141>: 0f 85 35 01 00 00 jne 0x80d7198 <_ZN9gxtkInput11BeginUpdateEv+456> | |
| 0x080d7063 <+147>: f6 c2 02 test dl,0x2 | |
| 0x080d7066 <+150>: 0f 85 46 01 00 00 jne 0x80d71b2 <_ZN9gxtkInput11BeginUpdateEv+482> | |
| 0x080d706c <+156>: 89 fd mov ebp,edi | |
| 0x080d706e <+158>: 31 c0 xor eax,eax | |
| 0x080d7070 <+160>: 83 e5 fc and ebp,0xfffffffc | |
| 0x080d7073 <+163>: c7 04 02 00 00 00 00 mov DWORD PTR [edx+eax*1],0x0 | |
| 0x080d707a <+170>: 83 c0 04 add eax,0x4 | |
| 0x080d707d <+173>: 39 e8 cmp eax,ebp | |
| 0x080d707f <+175>: 72 f2 jb 0x80d7073 <_ZN9gxtkInput11BeginUpdateEv+163> | |
| 0x080d7081 <+177>: 01 c2 add edx,eax | |
| 0x080d7083 <+179>: f7 c7 02 00 00 00 test edi,0x2 | |
| 0x080d7089 <+185>: 74 08 je 0x80d7093 <_ZN9gxtkInput11BeginUpdateEv+195> | |
| 0x080d708b <+187>: 66 c7 02 00 00 mov WORD PTR [edx],0x0 | |
| 0x080d7090 <+192>: 83 c2 02 add edx,0x2 | |
| 0x080d7093 <+195>: 83 e7 01 and edi,0x1 | |
| 0x080d7096 <+198>: 74 03 je 0x80d709b <_ZN9gxtkInput11BeginUpdateEv+203> | |
| 0x080d7098 <+200>: c6 02 00 mov BYTE PTR [edx],0x0 | |
| 0x080d709b <+203>: 8b 44 24 1c mov eax,DWORD PTR [esp+0x1c] | |
| 0x080d709f <+207>: 89 4c 24 04 mov DWORD PTR [esp+0x4],ecx | |
| 0x080d70a3 <+211>: c7 04 24 00 00 00 00 mov DWORD PTR [esp],0x0 | |
| 0x080d70aa <+218>: 89 44 24 08 mov DWORD PTR [esp+0x8],eax | |
| 0x080d70ae <+222>: e8 ed 5a f7 ff call 0x804cba0 <glfwGetJoystickPos@plt> | |
| 0x080d70b3 <+227>: 31 c0 xor eax,eax | |
| 0x080d70b5 <+229>: c7 44 04 2c 00 00 00 00 mov DWORD PTR [esp+eax*1+0x2c],0x0 ; memset(buttons, 0, sizeof(buttons)) | |
| 0x080d70bd <+237>: 83 c0 04 add eax,0x4 ; | |
| 0x080d70c0 <+240>: 83 f8 20 cmp eax,0x20 ; Change to 0x30 for all 48 buttons | |
| 0x080d70c3 <+243>: 72 f0 jb 0x80d70b5 <_ZN9gxtkInput11BeginUpdateEv+229> ; | |
| 0x080d70c5 <+245>: 8d 44 24 2c lea eax,[esp+0x2c] | |
| 0x080d70c9 <+249>: 89 74 24 08 mov DWORD PTR [esp+0x8],esi | |
| 0x080d70cd <+253>: 89 44 24 04 mov DWORD PTR [esp+0x4],eax | |
| 0x080d70d1 <+257>: c7 04 24 00 00 00 00 mov DWORD PTR [esp],0x0 | |
| 0x080d70d8 <+264>: e8 43 58 f7 ff call 0x804c920 <glfwGetJoystickButtons@plt> | |
| 0x080d70dd <+269>: 83 7c 24 1c 04 cmp DWORD PTR [esp+0x1c],0x4 | |
| 0x080d70e2 <+274>: 0f 84 6c 01 00 00 je 0x80d7254 <_ZN9gxtkInput11BeginUpdateEv+644> | |
| 0x080d70e8 <+280>: 83 7c 24 1c 05 cmp DWORD PTR [esp+0x1c],0x5 | |
| 0x080d70ed <+285>: 75 18 jne 0x80d7107 <_ZN9gxtkInput11BeginUpdateEv+311> | |
| 0x080d70ef <+287>: 8b 83 ac 08 00 00 mov eax,DWORD PTR [ebx+0x8ac] | |
| 0x080d70f5 <+293>: 8b 93 b0 08 00 00 mov edx,DWORD PTR [ebx+0x8b0] | |
| 0x080d70fb <+299>: 89 83 b0 08 00 00 mov DWORD PTR [ebx+0x8b0],eax | |
| 0x080d7101 <+305>: 89 93 ac 08 00 00 mov DWORD PTR [ebx+0x8ac],edx | |
| 0x080d7107 <+311>: 85 f6 test esi,esi | |
| 0x080d7109 <+313>: 7e 74 jle 0x80d717f <_ZN9gxtkInput11BeginUpdateEv+431> | |
| 0x080d710b <+315>: 81 c6 00 01 00 00 add esi,0x100 | |
| 0x080d7111 <+321>: bf 00 01 00 00 mov edi,0x100 | |
| 0x080d7116 <+326>: 66 90 xchg ax,ax | |
| 0x080d7118 <+328>: 80 bc 3c 2c ff ff ff 01 cmp BYTE PTR [esp+edi*1-0xd4],0x1 | |
| 0x080d7120 <+336>: 89 f8 mov eax,edi | |
| 0x080d7122 <+338>: 0f 84 b8 00 00 00 je 0x80d71e0 <_ZN9gxtkInput11BeginUpdateEv+528> | |
| 0x080d7128 <+344>: 8d 50 04 lea edx,[eax+0x4] | |
| 0x080d712b <+347>: 8b 0c 93 mov ecx,DWORD PTR [ebx+edx*4] | |
| 0x080d712e <+350>: f6 c5 01 test ch,0x1 | |
| 0x080d7131 <+353>: 74 45 je 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d7133 <+355>: 81 e1 ff 00 00 00 and ecx,0xff | |
| 0x080d7139 <+361>: 3d a0 00 00 00 cmp eax,0xa0 | |
| 0x080d713e <+366>: 89 0c 93 mov DWORD PTR [ebx+edx*4],ecx | |
| 0x080d7141 <+369>: 7c 35 jl 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d7143 <+371>: 3d a1 00 00 00 cmp eax,0xa1 | |
| 0x080d7148 <+376>: 0f 8e e2 00 00 00 jle 0x80d7230 <_ZN9gxtkInput11BeginUpdateEv+608> | |
| 0x080d714e <+382>: 3d a3 00 00 00 cmp eax,0xa3 | |
| 0x080d7153 <+387>: 7f 23 jg 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d7155 <+389>: f6 83 99 02 00 00 01 test BYTE PTR [ebx+0x299],0x1 | |
| 0x080d715c <+396>: 75 1a jne 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d715e <+398>: f6 83 9d 02 00 00 01 test BYTE PTR [ebx+0x29d],0x1 | |
| 0x080d7165 <+405>: 75 11 jne 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d7167 <+407>: b8 11 00 00 00 mov eax,0x11 | |
| 0x080d716c <+412>: 8d 50 04 lea edx,[eax+0x4] | |
| 0x080d716f <+415>: 8b 0c 93 mov ecx,DWORD PTR [ebx+edx*4] | |
| 0x080d7172 <+418>: f6 c5 01 test ch,0x1 | |
| 0x080d7175 <+421>: 75 bc jne 0x80d7133 <_ZN9gxtkInput11BeginUpdateEv+355> | |
| 0x080d7177 <+423>: 90 nop | |
| 0x080d7178 <+424>: 83 c7 01 add edi,0x1 | |
| 0x080d717b <+427>: 39 f7 cmp edi,esi | |
| 0x080d717d <+429>: 75 99 jne 0x80d7118 <_ZN9gxtkInput11BeginUpdateEv+328> | |
| 0x080d717f <+431>: 8b 44 24 4c mov eax,DWORD PTR [esp+0x4c] | |
| 0x080d7183 <+435>: 65 33 05 14 00 00 00 xor eax,DWORD PTR gs:0x14 | |
| 0x080d718a <+442>: 0f 85 df 00 00 00 jne 0x80d726f <_ZN9gxtkInput11BeginUpdateEv+671> ; Change to 90 90 90 90 90 90 to disable | |
| 0x080d7190 <+448>: 83 c4 5c add esp,0x5c | |
| 0x080d7193 <+451>: 5b pop ebx | |
| 0x080d7194 <+452>: 5e pop esi | |
| 0x080d7195 <+453>: 5f pop edi | |
| 0x080d7196 <+454>: 5d pop ebp | |
| 0x080d7197 <+455>: c3 ret | |
| 0x080d7198 <+456>: 8d 93 a1 08 00 00 lea edx,[ebx+0x8a1] | |
| 0x080d719e <+462>: 66 bf 17 00 mov di,0x17 | |
| 0x080d71a2 <+466>: f6 c2 02 test dl,0x2 | |
| 0x080d71a5 <+469>: c6 83 a0 08 00 00 00 mov BYTE PTR [ebx+0x8a0],0x0 | |
| 0x080d71ac <+476>: 0f 84 ba fe ff ff je 0x80d706c <_ZN9gxtkInput11BeginUpdateEv+156> | |
| 0x080d71b2 <+482>: 66 c7 02 00 00 mov WORD PTR [edx],0x0 | |
| 0x080d71b7 <+487>: 83 ef 02 sub edi,0x2 | |
| 0x080d71ba <+490>: 83 c2 02 add edx,0x2 | |
| 0x080d71bd <+493>: e9 aa fe ff ff jmp 0x80d706c <_ZN9gxtkInput11BeginUpdateEv+156> | |
| 0x080d71c2 <+498>: 8d b6 00 00 00 00 lea esi,[esi+0x0] | |
| 0x080d71c8 <+504>: f6 83 91 02 00 00 01 test BYTE PTR [ebx+0x291],0x1 | |
| 0x080d71cf <+511>: b8 10 00 00 00 mov eax,0x10 | |
| 0x080d71d4 <+516>: 75 0a jne 0x80d71e0 <_ZN9gxtkInput11BeginUpdateEv+528> | |
| 0x080d71d6 <+518>: f6 83 95 02 00 00 01 test BYTE PTR [ebx+0x295],0x1 | |
| 0x080d71dd <+525>: 74 99 je 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d71df <+527>: 90 nop | |
| 0x080d71e0 <+528>: 8d 50 04 lea edx,[eax+0x4] | |
| 0x080d71e3 <+531>: 8b 0c 93 mov ecx,DWORD PTR [ebx+edx*4] | |
| 0x080d71e6 <+534>: f6 c5 01 test ch,0x1 | |
| 0x080d71e9 <+537>: 75 8d jne 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d71eb <+539>: 80 cd 01 or ch,0x1 | |
| 0x080d71ee <+542>: 83 c1 01 add ecx,0x1 | |
| 0x080d71f1 <+545>: 3d a0 00 00 00 cmp eax,0xa0 | |
| 0x080d71f6 <+550>: 89 0c 93 mov DWORD PTR [ebx+edx*4],ecx | |
| 0x080d71f9 <+553>: 0f 8c 79 ff ff ff jl 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d71ff <+559>: 3d a1 00 00 00 cmp eax,0xa1 | |
| 0x080d7204 <+564>: 7e c2 jle 0x80d71c8 <_ZN9gxtkInput11BeginUpdateEv+504> | |
| 0x080d7206 <+566>: 3d a3 00 00 00 cmp eax,0xa3 | |
| 0x080d720b <+571>: 0f 8f 67 ff ff ff jg 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d7211 <+577>: f6 83 99 02 00 00 01 test BYTE PTR [ebx+0x299],0x1 | |
| 0x080d7218 <+584>: b8 11 00 00 00 mov eax,0x11 | |
| 0x080d721d <+589>: 75 c1 jne 0x80d71e0 <_ZN9gxtkInput11BeginUpdateEv+528> | |
| 0x080d721f <+591>: f6 83 9d 02 00 00 01 test BYTE PTR [ebx+0x29d],0x1 | |
| 0x080d7226 <+598>: 75 b8 jne 0x80d71e0 <_ZN9gxtkInput11BeginUpdateEv+528> | |
| 0x080d7228 <+600>: e9 4b ff ff ff jmp 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d722d <+605>: 8d 76 00 lea esi,[esi+0x0] | |
| 0x080d7230 <+608>: f6 83 91 02 00 00 01 test BYTE PTR [ebx+0x291],0x1 | |
| 0x080d7237 <+615>: 0f 85 3b ff ff ff jne 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d723d <+621>: f6 83 95 02 00 00 01 test BYTE PTR [ebx+0x295],0x1 | |
| 0x080d7244 <+628>: 0f 85 2e ff ff ff jne 0x80d7178 <_ZN9gxtkInput11BeginUpdateEv+424> | |
| 0x080d724a <+634>: b8 10 00 00 00 mov eax,0x10 | |
| 0x080d724f <+639>: e9 d4 fe ff ff jmp 0x80d7128 <_ZN9gxtkInput11BeginUpdateEv+344> | |
| 0x080d7254 <+644>: 8b 83 a8 08 00 00 mov eax,DWORD PTR [ebx+0x8a8] | |
| 0x080d725a <+650>: c7 83 a8 08 00 00 00 00 00 00 mov DWORD PTR [ebx+0x8a8],0x0 | |
| 0x080d7264 <+660>: 89 83 b0 08 00 00 mov DWORD PTR [ebx+0x8b0],eax | |
| 0x080d726a <+666>: e9 98 fe ff ff jmp 0x80d7107 <_ZN9gxtkInput11BeginUpdateEv+311> | |
| 0x080d726f <+671>: e8 3c 53 f7 ff call 0x804c5b0 <__stack_chk_fail@plt> ; This is never called | |
| End of assembler dump. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment