Function at 0x417f50
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4bf0f8
push eax
mov dword fs:[0], esp
mov eax, dword [0x50b3a4]
sub esp, 0x5c
cmp byte [eax + 0x127d2], 0
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
je 0x417f94
mov ecx, dword [ebp + 0x10]
push 0
push ebx
push ecx
push edi
call fcn.0049edd0
add esp, 0x10
mov ecx, dword [esi + 0x4230]
call fcn.0043dcf0
test eax, eax
je 0x417fec
mov ecx, dword [esi + 0x4240]
test ecx, ecx
je 0x417fb2
call fcn.004ade50
mov edx, dword [0x50b3a4]
cmp byte [edx + 0x127d2], 0
je 0x418a64
mov esi, dword [esi + 0x4244]
test esi, esi
je 0x418a64
push 0
push 1
push 0
push 1
push str.Mouse_event_skipped_due_to__mp_Menu__GetTrackMenuPlace_____tmp_None_
mov ecx, esi
call fcn.004ae810
jmp 0x418a64
movsx eax, bx
mov ecx, ebx
shr ecx, 0x10
movsx ecx, cx
lea edx, [ebp - 0xe]
push edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], ecx
push eax
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x40]
push edx
push edi
mov ecx, esi
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0xe], 0
call fcn.00408380
mov byte [ebp - 0xd], al
cmp edi, 0x201
jne 0x4180ef
cmp dword [esi + 0x4260], 0x520
jne 0x418055
mov eax, dword [0x50b384]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4180ef
cmp dword [esi + 0x4260], 0x521
jne 0x418072
mov ecx, dword [0x50b384]
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4180ef
mov edx, dword [0x50b3a0]
cmp byte [edx + 0x1220], 0
jne 0x4180ef
push 0
push 0
push 0
push 1
push 0x100
lea ecx, [esi + 0x118]
call fcn.004270c0
test al, al
je 0x4180ef
lea ecx, [esi + 0x4304]
mov eax, 0x4000
or word [esi + 0x42c0], ax
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [0x50b384]
add esi, 0x430c
push esi
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x50b384]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
push 0x7f86
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x418a64
mov ecx, 0x4000
test word [esi + 0x42c0], cx
je 0x4181cf
cmp edi, 0x202
je 0x4181b8
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, 0x8000
and ax, dx
mov ecx, edx
cmp ax, cx
jne 0x4181b8
xor eax, eax
lea edx, [ebp - 0x38]
push edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esi + 0x430c]
mov edi, dword [esi + 0x4310]
xor ebx, ebx
mov eax, edx
sub eax, dword [esi + 0x4304]
mov dword [ebp - 0x60], ebx
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x5c], ebx
mov ebx, dword [esi + 0x4314]
mov dword [ebp - 0x68], eax
mov ecx, edi
sub ecx, dword [esi + 0x4308]
sub ebx, edx
add ecx, dword [ebp - 0x34]
add ebx, eax
mov eax, dword [esi + 0x4318]
sub eax, edi
add eax, ecx
mov dword [ebp - 0x64], ecx
push 1
lea ecx, [ebp - 0x68]
push ecx
mov ecx, esi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], eax
call fcn.0040a930
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x68]
push 1
sub edx, eax
push edx
mov edx, dword [ebp - 0x60]
sub edx, ecx
push edx
push eax
mov eax, dword [0x50b384]
push ecx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
jmp 0x418a64
mov ecx, 0xbfff
and word [esi + 0x42c0], cx
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x418a64
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x2c]
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esi + 0x423c]
push ebx
push edx
push edi
push eax
call fcn.00490af0
test al, al
je 0x41820a
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebp - 0xd], 0
je 0x418a64
xor ebx, ebx
cmp dword [esi + 0x4238], ebx
je 0x41824a
cmp edi, 0x201
je 0x41822e
cmp edi, 0x204
jne 0x41824a
mov ecx, dword [0x50b384]
push ecx
call fcn.004acc10
mov edx, dword [0x50b384]
add esp, 4
push edx
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x18], ebx
call fcn.004a4720
mov dword [ebp - 4], ebx
cmp edi, 0x202
jne 0x4182a8
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.0049f8f0
add esp, 8
test eax, eax
jl 0x4182a8
lea ecx, [ebp - 0x14]
call fcn.004a4800
mov ecx, eax
call fcn.004a4a70
mov ecx, eax
call fcn.0047c1c0
test al, al
je 0x4182a8
lea ecx, [ebp - 0x14]
call fcn.004a4800
mov ebx, eax
mov dword [ebp - 0x18], ebx
jmp 0x4182d1
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x14]
push ecx
push edx
push eax
call fcn.004a0340
add esp, 0xc
test al, al
je 0x418363
lea ecx, [ebp - 0x14]
call fcn.004a4800
mov ebx, eax
mov dword [ebp - 0x18], eax
test ebx, ebx
je 0x418361
mov ecx, ebx
call fcn.004a4a70
lea ecx, [ebx + 8]
mov dword [ebp - 0x20], eax
call fcn.0049ca00
mov dword [ebp - 0x28], eax
test eax, eax
je 0x418311
lea ecx, [ebp - 0x58]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x50b384]
push 2
lea edx, [ebp - 0x58]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
xor ebx, ebx
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
mov eax, dword [0x50b384]
push 7
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_ChildWindowFromPointEx]
mov dword [ebp - 0x34], eax
cmp edi, 0x20a
je 0x418340
cmp edi, 0x20e
jne 0x41843c
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cmp ax, bx
je 0x41843c
cmp edi, 0x20a
jne 0x41836b
cmp ax, bx
setle al
add al, 0xd0
jmp 0x41837b
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], ebx
jmp 0x418313
cmp edi, 0x20e
jne 0x4183a3
test ax, ax
setg al
add al, 0xd2
test al, al
je 0x4183a3
mov ecx, dword [ebp - 0x20]
push ecx
push 0
movzx edx, al
push 0
push edx
push 0x100
lea ecx, [esi + 0x118]
call fcn.004270c0
test al, al
jne 0x418a55
cmp dword [esi + 0x50b4], 0
jne 0x41851e
cmp dword [ebp - 0x28], 0
je 0x4185a7
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x28]
jne 0x4185a7
cmp edi, 0x201
je 0x418421
cmp edi, 0x204
je 0x418421
cmp edi, 0x207
je 0x418421
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 1
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x418421
push 2
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x418421
push 4
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
jne 0x4185a7
mov dword [esi + 0x50b4], 1
mov eax, dword [0x50b384]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x4185a7
lea eax, [edi - 0x201]
cmp eax, 8
ja 0x4183a3
cmp edi, 0x203
ja 0x418457
mov bl, 1
jmp 0x418467
lea ecx, [edi - 0x204]
cmp ecx, 2
seta bl
lea ebx, [ebx + ebx + 2]
lea ecx, [esi + 0x118]
mov dword [ebp - 0x30], ecx
call fcn.00425340
cmp edi, 0x201
je 0x418491
cmp edi, 0x204
je 0x418491
mov byte [ebp - 0x24], 0
cmp edi, 0x207
jne 0x418495
mov byte [ebp - 0x24], 1
cmp edi, 0x202
je 0x4184b1
cmp edi, 0x205
je 0x4184b1
mov byte [ebp - 0xd], 0
cmp edi, 0x208
jne 0x4184b5
mov byte [ebp - 0xd], 1
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
push edx
movzx ebx, bl
push eax
push ebx
call fcn.004254e0
mov ecx, dword [0x50b3a4]
push eax
call fcn.0044d580
test eax, eax
je 0x4183a3
cmp eax, dword [0x4ec194]
je 0x418a55
cmp byte [ebp - 0x24], 0
jne 0x4184f9
cmp byte [ebp - 0xd], 0
je 0x418a55
mov ecx, dword [ebp - 0x20]
xor edx, edx
cmp byte [ebp - 0x24], dl
push ecx
mov ecx, dword [ebp - 0x30]
sete dl
push 0
push 0
push ebx
add edx, 0x100
push edx
call fcn.004270c0
jmp 0x418a55
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 1
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x4185a7
push 2
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x4185a7
push 4
call ebx
mov ecx, 0x8000
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x4185a7
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0x50b4], 0
test ecx, ecx
je 0x4185a7
call fcn.00479050
test eax, eax
je 0x4185a7
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x58]
cmp eax, ecx
jl 0x41858f
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
jl 0x418592
dec ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x54]
cmp eax, ecx
jl 0x4185a4
mov ecx, dword [ebp - 0x4c]
cmp eax, ecx
jl 0x4185a7
dec ecx
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x18], 0
je 0x418a55
mov ecx, dword [0x50b3a4]
call fcn.00450dc0
test eax, eax
je 0x418a55
mov ecx, dword [0x50b3a4]
call fcn.00450de0
test eax, eax
je 0x418a55
mov eax, dword [0x50b39c]
cmp edi, 0x202
je 0x4185ec
cmp edi, 0x200
jne 0x418617
mov ecx, 0x200
test word [eax + 0x42c0], cx
je 0x418617
cmp edi, 0x202
jne 0x418a55
mov edx, 0xfdff
and word [eax + 0x42c0], dx
jmp 0x418a55
cmp edi, 0x20a
je 0x41863b
cmp edi, 0x20e
je 0x41863b
mov ecx, esi
call fcn.0040a8b0
test eax, eax
jne 0x418a55
mov eax, dword [0x50b39c]
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x4186cd
mov ecx, ebx
call fcn.0049ca00
test eax, eax
je 0x41868d
mov ecx, ebx
call fcn.00476e20
test eax, eax
jne 0x41868d
cmp edi, 0x20a
je 0x418670
cmp edi, 0x20e
jne 0x418a55
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
push edi
mov ecx, ebx
call fcn.0049ca00
push eax
mov ecx, ebx
call fcn.0047a2c0
jmp 0x418a55
mov ecx, ebx
call fcn.00478f90
test al, al
je 0x4186c8
mov edx, dword [ebp + 0x10]
test dl, 1
jne 0x4186a8
cmp edi, 0x202
jne 0x4186c8
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x54]
push 0
push 0
push ecx
push eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x40], eax
push edx
mov ecx, ebx
jmp 0x418a4f
mov eax, dword [0x50b39c]
cmp edi, 0x200
je 0x418709
cmp edi, 0x20a
je 0x418709
cmp edi, 0x20e
je 0x418709
mov edx, 0x200
test word [eax + 0x42c0], dx
je 0x4186ff
mov ecx, 0xfdff
and word [eax + 0x42c0], cx
cmp dword [ebp - 0x28], 0
je 0x418a55
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x58]
xor ebx, ebx
push ebx
push ecx
push eax
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x18]
push edx
mov dword [ebp - 0x40], eax
call fcn.004a6810
cmp edi, 0x20a
je 0x418750
cmp edi, 0x20e
je 0x418750
cmp word [ebp - 0x1c], bx
jl 0x418a55
cmp word [ebp - 0x1a], bx
jl 0x418a55
mov eax, dword [0x50b3a0]
cmp byte [eax + 0x123c], 0
je 0x41876f
push ebx
push ebx
mov ecx, esi
call fcn.004068c0
test al, al
je 0x418a55
mov ecx, dword [0x50b39c]
mov edx, dword [ecx + 0x42f4]
cmp edx, ebx
je 0x418783
cmp edx, edi
je 0x41879d
mov eax, dword [ecx + 0x42f8]
cmp eax, ebx
je 0x4187bf
cmp eax, edi
je 0x418799
cmp edi, 0x200
jne 0x4187bf
cmp edx, edi
jne 0x4187a8
mov dword [ecx + 0x42f4], ebx
jmp 0x418a55
cmp dword [ecx + 0x42f8], edi
jne 0x418a55
mov dword [ecx + 0x42f8], ebx
jmp 0x418a55
mov eax, dword [esi + 0x42fc]
cmp eax, ebx
je 0x41883a
mov ecx, dword [0x50b3a0]
cmp byte [ecx + 0x123b], 0
je 0x418834
cmp edi, 0x201
jne 0x4187e9
cmp eax, 0x203
jne 0x418809
jmp 0x418834
cmp edi, 0x204
jne 0x4187fa
cmp eax, 0x206
jne 0x418809
jmp 0x418834
cmp edi, 0x207
jne 0x418809
cmp eax, 0x209
je 0x418834
cmp eax, edi
jne 0x41883a
sub eax, 0x203
je 0x41882c
sub eax, 3
je 0x418825
sub eax, 3
jne 0x418834
mov edi, 0x207
jmp 0x418831
mov edi, 0x204
jmp 0x418831
mov edi, 0x201
mov dword [ebp + 0xc], edi
mov dword [esi + 0x42fc], ebx
mov eax, dword [esi + 0x43a8]
cmp eax, ebx
je 0x41886f
lea ecx, [eax + 8]
call fcn.0042dd50
test eax, eax
je 0x41886f
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x43a8]
push edx
push eax
push edi
add ecx, 8
call fcn.0042dd90
test eax, eax
jne 0x418a55
push ebx
call fcn.0049f600
add esp, 4
test al, al
je 0x418a18
mov ebx, dword [ebp - 0x3c]
cmp edi, 0x20a
je 0x4188a1
cmp edi, 0x20e
je 0x4188a1
movzx ecx, word [ebp - 0x40]
movzx edx, bx
shl edx, 0x10
or edx, ecx
jmp 0x4188ae
movzx edx, word [ebp - 0x44]
movzx eax, word [ebp - 0x48]
shl edx, 0x10
or edx, eax
mov dword [esi + 0x42e8], edi
cmp edi, 0x200
jne 0x4188e7
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
push ecx
mov ecx, dword [ebp + 0x10]
push ebx
push eax
mov eax, dword [ebp - 0x18]
push edx
mov edx, dword [ebp + 8]
push ecx
push edi
push edx
push eax
mov ecx, esi
call fcn.004165a0
test eax, eax
jne 0x418a18
jmp 0x418a55
or eax, 0xffffffff
mov dword [esi + 0x42ec], eax
mov dword [esi + 0x42f0], eax
cmp edi, 0x203
jne 0x41892c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
push ecx
mov ecx, dword [ebp + 0x10]
push ebx
push eax
mov eax, dword [ebp + 8]
push edx
push ecx
mov ecx, dword [ebp - 0x18]
lea edx, [ebp + 0xc]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0040d7f0
test eax, eax
jne 0x418a18
jmp 0x418a55
cmp edi, 0x206
jne 0x418960
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
push eax
mov eax, dword [ebp + 0x10]
push ebx
push ecx
push edx
push eax
mov eax, dword [ebp + 8]
lea ecx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
push ecx
mov ecx, esi
call fcn.00408950
test eax, eax
je 0x418a55
mov edi, dword [ebp + 0xc]
cmp edi, 0x201
jne 0x418993
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
push eax
mov eax, dword [ebp + 8]
push ebx
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp + 0x10]
push edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.0040d520
test eax, eax
jne 0x418a18
jmp 0x418a55
cmp edi, 0x202
jne 0x4189c2
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
push eax
mov eax, dword [ebp + 8]
push ebx
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp + 0x10]
push edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.0040d740
test eax, eax
jne 0x418a18
jmp 0x418a55
cmp edi, 0x204
jne 0x4189ee
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
push eax
mov eax, dword [ebp + 8]
push ebx
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp + 0x10]
push edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.004086c0
test eax, eax
jne 0x418a18
jmp 0x418a55
cmp edi, 0x205
jne 0x418a1b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x40]
push eax
mov eax, dword [ebp + 8]
push ebx
push ecx
mov ecx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp + 0x10]
push edx
push edi
push eax
push ecx
mov ecx, esi
call fcn.00416a60
test eax, eax
je 0x418a55
mov ebx, dword [ebp - 0x3c]
movzx ecx, word [ebp - 0x40]
mov eax, dword [ebp + 0x10]
movzx edx, bx
shl edx, 0x10
or edx, ecx
cmp byte [ebp - 0xe], 0
mov dword [esi + 0x42ec], eax
mov dword [esi + 0x42f0], edx
jne 0x418a55
cmp dword [ebp - 0x20], 0
je 0x418a55
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
push 0
push 0
push ebx
push edx
push eax
push edi
call fcn.004809b0
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.004a4770
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10