Function at 0x4999e0
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x50b1a8
push eax
mov dword fs:[0], esp
sub esp, 0x38
push edi
mov edi, ecx
mov ecx, dword [edi + 0x54]
test ecx, ecx
je 0x49a668
mov ecx, dword [ecx + 0xdc]
push ebx
push esi
push 0
push dword [ebp + 8]
add ecx, 0x10
call fcn.004a5cf0
mov ecx, dword [edi + 0x54]
mov ebx, eax
push 0
push dword [ebp + 0xc]
mov ecx, dword [ecx + 0xdc]
add ecx, 0xcc
call fcn.004a5cf0
mov ecx, dword [edi + 0x54]
mov esi, eax
mov dword [ebp - 0x10], esi
mov ecx, dword [ecx + 0xdc]
add ecx, 0x10
call fcn.004a5ce0
mov ecx, dword [edi + 0x54]
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + 0xdc]
add ecx, 0xcc
call fcn.004a5ce0
xor ecx, ecx
test eax, eax
push 0
setg cl
xor eax, eax
cmp dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edi + 0x54]
setg al
push 0
mov dword [ebp - 0x20], eax
call fcn.0049f9e0
mov ecx, dword [ebp + 0x18]
and eax, 0x4000
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x38], ecx
lea ecx, [edi + 4]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x14]
push ebx
mov dword [edi + 0x40], 0
mov dword [edi + 0x34], 0
mov dword [ebp + 0xc], eax
call fcn.0044f6a0
test eax, eax
je 0x499ac8
mov eax, dword [ebp + 8]
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x58]
mov ecx, dword [0x65871c]
cmp ecx, eax
je 0x499afc
test byte [0x652fc0], 4
je 0x499af4
push eax
push ecx
push str.RightWingState:__d_____d_n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
add esp, 0x14
mov eax, dword [edi + 0x58]
mov dword [0x65871c], eax
mov ecx, dword [esi]
test ecx, ecx
jne 0x499b06
xor eax, eax
jmp 0x499b18
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000312
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
shr eax, 0x10
test al, 1
jne 0x499c60
mov ecx, dword [ebx]
test ecx, ecx
jne 0x499b2d
xor eax, eax
jmp 0x499b3f
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x10000312
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 8]
shr eax, 0x10
test al, 1
je 0x499c60
test byte [0x652fc0], 4
je 0x499b72
mov ecx, ebx
call fcn.00405f00
movzx eax, al
push eax
push str.Tap___d_n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
add esp, 0x10
cmp dword [edi + 0xf8], 0
je 0x499c60
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov eax, dword [edi + 0x54]
lea ecx, [edi + 4]
push ebx
mov dword [ebp - 4], 0
mov esi, dword [eax]
call fcn.0044f900
mov ecx, eax
call fcn.00420970
mov ecx, dword [edi + 0x54]
push eax
call dword [esi + 0x38]
test eax, eax
je 0x499bc4
mov dword [ebp + 8], 0xd
jmp 0x499c12
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [edi + 0x54]
push eax
call fcn.00495f40
mov esi, eax
test esi, esi
je 0x499c1e
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [edi + 0x54]
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.00495bb0
push dword [ebp - 0x24]
lea eax, [ebp - 0x44]
push dword [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov dword [ebp + 8], 0xd
test eax, eax
jne 0x499c12
mov dword [ebp + 8], 0x1b
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x34]
call fcn.0049c3b0
mov ecx, dword [edi + 0x54]
lea eax, [ebp - 0x34]
push eax
call fcn.0049b210
mov ecx, dword [edi + 0x54]
push 3
push 0
call fcn.0049bc80
mov ecx, edi
call fcn.00495600
lea ecx, [ebp - 0x34]
mov dword [edi + 0xf0], 0
mov dword [edi + 0xf8], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00409120
mov ecx, dword [edi + 0x54]
push 0
push 0
call fcn.0049ec60
cmp dword [ebp - 0x1c], 0
mov dword [ebp + 0xc], eax
je 0x49a65e
cmp dword [ebp - 0x20], 0
je 0x49a65e
mov ecx, dword [edi + 0x54]
push ebx
call fcn.004970a0
test eax, eax
jne 0x49a65e
mov ecx, dword [edi + 0x54]
push ebx
call fcn.00403e00
mov ecx, eax
call fcn.00420970
mov ecx, eax
call fcn.00408510
mov ecx, ebx
mov esi, eax
call fcn.00408510
mov ecx, dword [edi + 0x54]
sub eax, esi
push ebx
mov dword [ebp + 0x18], eax
mov esi, dword [ecx]
lea ecx, [edi + 4]
call fcn.0044f900
mov ecx, eax
call fcn.00420970
mov ecx, dword [edi + 0x54]
push eax
call dword [esi + 0x38]
mov ecx, dword [edi + 0x54]
push ebx
mov dword [ebp - 0x20], eax
mov edx, dword [ecx]
call dword [edx + 0x38]
test byte [0x652fc0], 4
mov ecx, eax
mov dword [ebp + 8], ecx
je 0x499d19
push dword [ebp + 0x18]
mov ecx, ebx
call fcn.00432ee0
push eax
mov ecx, ebx
call fcn.00432d20
push eax
push str.delta__d__d___ulTime_d_n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
mov ecx, dword [ebp + 8]
add esp, 0x18
mov esi, dword [edi + 0x58]
mov dword [ebp + 8], esi
cmp esi, 0xa
ja case.0x499d28.6
jmp dword [esi*4 + 0x49a67c]
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov edx, dword [ebp - 0x20]
mov dword [edi + 0xcc], 0
mov dword [edi + 0xd0], 0
test edx, edx
je 0x499d5f
test ecx, ecx
je 0x499d5f
mov eax, 1
jmp 0x499d61
xor eax, eax
test ecx, ecx
jne 0x499d6f
test edx, edx
je 0x499d6f
cmp dword [ebp + 0x18], 0x64
jb 0x499d77
test eax, eax
je case.0x499d28.6
lea eax, [edi + 0xb0]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 1
lea ecx, [edi + 4]
mov dword [edi + 0xc0], 0
mov dword [edi + 0xf0], 0
mov dword [edi + 0xfc], 0
call fcn.0044f900
mov ecx, eax
call fcn.0042e220
push ebx
mov ecx, edi
call fcn.00497270
test eax, eax
je 0x499e84
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [edi + 0x54]
push eax
call fcn.00495f40
test eax, eax
je 0x499e39
mov ecx, edi
call fcn.0049a890
mov esi, dword [edi + 0x60]
mov eax, 5
cmp esi, 8
cmove esi, eax
test byte [ebp + 0xc], 0x80
je case.0x499d28.6
cmp esi, eax
jne case.0x499d28.6
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
je case.0x499d28.6
mov ecx, ebx
call fcn.004056b0
test al, al
jne case.0x499d28.6
mov ecx, edi
call fcn.00497b00
mov ecx, dword [edi + 0x54]
push 3
push 0
call fcn.0049bc80
mov esi, 0xa
jmp case.0x499d28.6
test byte [ebp + 0xc], 0x80
je 0x499eb2
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
jne 0x499eb2
mov ecx, ebx
call fcn.004056b0
test al, al
je 0x499eb2
test byte [0x652fc0], 4
je 0x499e73
push str._Trigger_RW_gesture_by_clicking__ewsIdle___ewsWaitingForUnClicking_n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
add esp, 0xc
mov ecx, edi
mov esi, 9
call fcn.00497d10
jmp case.0x499d28.6
test byte [ebp + 0xc], 0x80
je 0x499eb2
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
jne 0x499eb2
mov ecx, ebx
call fcn.004056b0
test al, al
je 0x499eb2
mov ecx, edi
mov esi, 9
call fcn.00497d10
jmp case.0x499d28.6
mov esi, 1
jmp case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov ecx, ebx
call fcn.00432d20
add dword [edi + 0xcc], eax
mov ecx, ebx
call fcn.00432ee0
add dword [edi + 0xd0], eax
mov ecx, edi
push ebx
call fcn.0049a8d0
test eax, eax
je 0x499f1f
xor eax, eax
mov dword [edi + 0xd0], 0
cmp dword [ebp - 0x14], eax
mov esi, 8
mov dword [edi + 0xcc], 0
setne al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc4], eax
jmp 0x49a044
push ebx
mov ecx, edi
call fcn.00496970
test eax, eax
je 0x499f5e
xor eax, eax
mov dword [edi + 0xd0], 0
cmp dword [ebp - 0x14], eax
mov esi, 8
mov dword [edi + 0xcc], 0
setne al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc4], eax
jmp 0x49a044
mov eax, dword [ebp + 0xc]
test al, 0x20
je 0x499fbc
mov ecx, ebx
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x499fb9
mov ecx, ebx
call fcn.00432ee0
cmp eax, 0xfffffff6
jge 0x499fb9
mov ecx, dword [edi + 0x54]
push 1
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov ecx, dword [edi + 0x54]
push 3
push 1
call fcn.0049bc80
mov dword [edi + 0xd0], 0
mov esi, 3
mov dword [edi + 0xcc], 0
jmp 0x49a044
mov eax, dword [ebp + 0xc]
test al, 0x40
je 0x49a047
mov ecx, ebx
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a044
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a044
mov ecx, dword [edi + 0x54]
push ebx
call fcn.00403e00
mov ecx, eax
call fcn.00420970
mov ecx, eax
call fcn.00408510
mov ecx, ebx
mov esi, eax
call fcn.00408510
sub eax, esi
cmp eax, 0x64
jbe 0x49a041
mov ecx, dword [edi + 0x54]
push 1
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov ecx, dword [edi + 0x54]
push 3
push 1
call fcn.0049bc80
mov dword [edi + 0xd0], 0
mov esi, 2
mov dword [edi + 0xcc], 0
jmp 0x49a044
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test al, al
jns case.0x499d28.6
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
jne case.0x499d28.6
mov ecx, ebx
call fcn.004056b0
test al, al
je case.0x499d28.6
mov ecx, edi
mov esi, 9
call fcn.00497d10
test byte [0x652fc0], 4
je case.0x499d28.6
push str.Trigger_RW_gesture_by_clicking__ewsFirstTouchDown___ewsWaitingForUnClicking_n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
add esp, 0xc
jmp case.0x499d28.6
test byte [ebp + 0xc], 0x40
je case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
lea ecx, [edi + 4]
call fcn.0044f900
test eax, eax
je 0x49a0d5
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x49a0ce
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x49a0d5
mov ecx, edi
call fcn.00497d10
mov dword [edi + 0xd0], 0
mov esi, 3
mov dword [edi + 0xcc], 0
jmp case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov ecx, ebx
call fcn.00432d20
add dword [edi + 0xcc], eax
mov ecx, ebx
call fcn.00432ee0
add eax, dword [edi + 0xd0]
mov dword [edi + 0xd0], eax
test byte [0x652fc0], 4
je 0x49a141
push eax
push dword [edi + 0xcc]
push str.lDistance__d__d__n
push 3
push str.CWingStateMachine::ProcessPacketByRWStateMachine
call fcn.004cb3a0
add esp, 0x14
mov ecx, dword [ebp + 0xc]
test cl, 0x40
je 0x49a190
mov ecx, ebx
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a18d
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a18d
mov eax, dword [edi + 0x54]
mov ecx, 0x190
mov edx, 0x384
cmp dword [eax + 0x3a8], 0
cmovne ecx, edx
cmp dword [ebp + 0x18], ecx
jbe case.0x499d28.6
jmp 0x49a1d3
mov ecx, dword [ebp + 0xc]
test cl, 0x20
je 0x49a228
mov eax, dword [edi + 0xcc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jge 0x49a228
mov eax, dword [edi + 0xd0]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jle 0x49a228
lea ecx, [edi + 4]
call fcn.0044f900
test eax, eax
je 0x49a1da
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x49a1d3
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x49a1da
mov ecx, edi
call fcn.00497d10
xor eax, eax
mov esi, 5
cmp dword [edi + 0xcc], eax
mov dword [edi + 0xcc], 0
setge al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc4], eax
xor eax, eax
cmp dword [edi + 0xd0], eax
mov dword [edi + 0xd0], 0
setge al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc8], eax
jmp case.0x499d28.6
test cl, 0x10
je case.0x499d28.6
mov eax, dword [edi + 0xcc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jg 0x49a27f
mov ecx, ebx
call fcn.00408830
mov ecx, dword [edi + 0xdc]
mov esi, dword [ebp - 0x14]
sub ecx, eax
cmp ecx, 0x1ae
jle 0x49a25f
test esi, esi
je 0x49a27f
mov ecx, ebx
call fcn.00408830
sub eax, dword [edi + 0xe0]
cmp eax, 0x1ae
jle 0x49a640
test esi, esi
je 0x49a640
mov eax, dword [edi + 0xd0]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jge 0x49a640
mov ecx, edi
call fcn.00497d10
xor eax, eax
mov esi, 8
cmp dword [edi + 0xcc], eax
mov dword [edi + 0xcc], 0
setge al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc4], eax
xor eax, eax
cmp dword [edi + 0xd0], eax
mov dword [edi + 0xd0], 0
setge al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc8], eax
jmp case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov ecx, ebx
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle case.0x499d28.6
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x49a640
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a640
mov ecx, esi
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a640
mov dword [edi + 0xd0], 0
mov esi, 5
mov dword [edi + 0xcc], 0
jmp case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov ecx, ebx
call fcn.00432d20
add dword [edi + 0xcc], eax
mov ecx, ebx
call fcn.00432ee0
add eax, dword [edi + 0xd0]
mov dword [edi + 0xd0], eax
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x78
jle 0x49a3dd
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [edi + 0x54]
push eax
call fcn.00495f40
test eax, eax
je 0x49a3d1
xor ecx, ecx
cmp dword [edi + 0xd0], ecx
setle cl
lea ecx, [ecx*2 - 1]
push ecx
push ebx
mov dword [edi + 0xc8], ecx
mov ecx, dword [edi + 0x54]
push eax
call fcn.0049b9c0
mov dword [edi + 0xf0], 1
jmp 0x49a40f
push ebx
mov ecx, edi
call fcn.0049a8d0
test eax, eax
jne 0x49a3f5
push ebx
mov ecx, edi
call fcn.00496970
test eax, eax
je 0x49a423
xor eax, eax
mov esi, 8
cmp dword [ebp - 0x14], eax
setne al
lea eax, [eax*2 - 1]
mov dword [edi + 0xc4], eax
mov dword [edi + 0xcc], 0
mov dword [edi + 0xd0], 0
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
je case.0x499d28.6
mov ecx, ebx
call fcn.004056b0
test al, al
jne case.0x499d28.6
mov ecx, edi
call fcn.00497b00
mov ecx, dword [edi + 0x54]
push 3
push 0
mov dword [edi + 0xd0], 0
mov dword [edi + 0xcc], 0
call fcn.0049bc80
mov eax, dword [ebp + 0xc]
not al
movzx esi, al
shr esi, 7
or esi, 0xa
jmp case.0x499d28.6
cmp dword [ebp - 0x18], 1
jne case.0x499d28.6
mov ecx, ebx
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a4eb
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.00432d20
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a4e8
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x49a4e8
mov ecx, esi
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x49a4e8
mov dword [edi + 0xd0], 0
mov esi, 5
mov dword [edi + 0xcc], 0
jmp 0x49a4eb
mov esi, dword [ebp + 8]
cmp dword [edi + 0xc4], 0
jge 0x49a51a
mov ecx, ebx
call fcn.00432d20
cmp eax, 0xa
jle 0x49a513
mov ecx, dword [ebp - 0x10]
call fcn.00432d20
cmp eax, 0xa
jle 0x49a513
cmp dword [ebp - 0x14], 0
je 0x49a53b
cmp dword [edi + 0xc4], 0
jle 0x49a562
mov ecx, ebx
call fcn.00432d20
cmp eax, 0xfffffff6
jge 0x49a562
mov ecx, dword [ebp - 0x10]
call fcn.00432d20
cmp eax, 0xfffffff6
jge 0x49a562
cmp dword [ebp - 0x14], 0
je 0x49a562
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a562
mov ecx, dword [ebp - 0x10]
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jl 0x49a5ed
cmp dword [edi + 0xc4], 0
jle 0x49a591
mov ecx, ebx
call fcn.00432d20
cmp eax, 0xfffffff6
jge 0x49a58a
mov ecx, dword [ebp - 0x10]
call fcn.00432d20
cmp eax, 0xfffffff6
jge 0x49a58a
cmp dword [ebp - 0x14], 0
je 0x49a5c2
cmp dword [edi + 0xc4], 0
jge 0x49a423
mov ecx, ebx
call fcn.00432d20
cmp eax, 0xa
jle 0x49a423
mov ecx, dword [ebp - 0x10]
call fcn.00432d20
cmp eax, 0xa
jle 0x49a423
cmp dword [ebp - 0x14], 0
je 0x49a423
mov ecx, ebx
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a423
mov ecx, dword [ebp - 0x10]
call fcn.00432ee0
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x49a423
mov esi, 3
jmp 0x49a40f
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
je case.0x499d28.6
mov ecx, ebx
call fcn.004056b0
test al, al
jne case.0x499d28.6
mov esi, 5
jmp case.0x499d28.6
test byte [ebp + 0xc], 0x80
je case.0x499d28.6
mov ecx, dword [ebp - 0x10]
call fcn.004056b0
test al, al
jne case.0x499d28.6
mov ecx, ebx
call fcn.004056b0
test al, al
je case.0x499d28.6
mov ecx, edi
mov esi, 9
call fcn.00497d10
jmp case.0x499d28.6
mov esi, dword [ebp + 8]
cmp dword [edi + 0x58], esi
je 0x49a666
mov dword [edi + 0x58], esi
pop esi
pop ebx
pop edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x18
push ebx
mov ecx, edi
call fcn.0049b030
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x18