Function at 0x1003b050
Capabilities:
Check for unmoving mouse cursor

Disassembly:
mov al, byte [0x1012baae]
sub esp, 0x60
test al, al
push ebx
push ebp
push esi
push edi
mov esi, ecx
je 0x1003b089
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
mov edi, dword [esp + 0x78]
cmp edi, 0x14
mov ebx, dword [esp + 0x7c]
ja 0x1003b245
cmp edi, 0x14
je 0x1003b209
mov eax, edi
sub eax, 6
je 0x1003b158
sub eax, 9
je 0x1003b115
dec eax
jne 0x1003b271
mov eax, dword [esi + 0x58]
test eax, eax
je 0x1003b0f7
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x1003b0cd
mov eax, 0x10100444
mov ecx, dword [esi + 0x54]
test ecx, ecx
jne 0x1003b0d9
mov ecx, 0x10100444
push 0x50031
push eax
push ecx
mov ecx, dword [esp + 0x80]
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x1003b7d7
mov edx, dword [esi]
push 0
push 0
push 0x403
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov edi, dword [esp + 0x74]
lea eax, [esp + 0x30]
push eax
push edi
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, esi
call fcn.1003acf0
lea ecx, [esp + 0x30]
push ecx
push edi
call dword [sym.imp.USER32.dll_EndPaint]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
push edx
push eax
push 0xf
push edi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [0x1012ba1c]
mov ebp, 3
cmp eax, ebp
jne 0x1003b1ed
mov al, byte [0x1012baad]
test al, al
jne 0x1003b7d7
test dword [esp + 0x7c], 0xffff
jne 0x1003b7d7
mov ebx, 1
mov byte [0x1012baae], bl
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x1003b1a4
call fcn.10068ae0
cmp dword [0x1012ba1c], ebp
jne 0x1003b1ac
mov ecx, dword [esi + 0x10]
call fcn.100474e0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b1cf
cmp dword [0x1012ba1c], ebp
jne 0x1003b1c7
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1003b1c7
call fcn.10051960
mov ecx, dword [esi + 0xc]
call fcn.10051850
cmp dword [0x1012ba1c], ebp
mov byte [0x1012baad], bl
mov byte [0x1012baae], 0
jne 0x1003b5f1
jmp 0x1003b5ea
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b7d7
call fcn.10051850
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [0x1012ba1c]
test eax, eax
je 0x1003b221
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
push eax
push ecx
push 0x14
push edx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
cmp edi, 0x1c
je 0x1003b6b1
cmp edi, 0x20
je 0x1003b610
cmp edi, 0x105
jne 0x1003b271
cmp ebx, 9
je 0x1003b56c
cmp ebx, 0x1b
je 0x1003b7d7
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b54d
mov al, byte [0x1012baad]
test al, al
jne 0x1003b54d
mov edx, dword [0x1012ba1c]
mov ebp, 3
cmp edx, ebp
jne 0x1003b2cb
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1003b2cb
call fcn.100518a0
and eax, 0xff
mov dword [esi + 0x78], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
push eax
push ebx
push edi
push ecx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
cmp edi, 0x202
ja 0x1003b4a1
je 0x1003b47f
cmp edi, 0x105
ja 0x1003b36d
je 0x1003b33a
mov eax, edi
sub eax, 0x100
je 0x1003b2fb
dec eax
je 0x1003b33a
sub eax, ebp
jne case.0x1003b4b0.518
mov edx, dword [esp + 0x80]
test edx, 0x40000000
jne 0x1003b7d7
mov eax, edx
sar eax, 1
and eax, 0x800000
and edx, 0x7f0000
or eax, edx
sar eax, 0x10
je 0x1003b7d7
push eax
call fcn.10051790
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov edx, dword [esp + 0x80]
mov eax, edx
sar eax, 1
and eax, 0x800000
and edx, 0x7f0000
or eax, edx
sar eax, 0x10
je 0x1003b7d7
push eax
call fcn.100517b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov eax, edi
sub eax, 0x200
je 0x1003b384
dec eax
jne case.0x1003b4b0.518
push 1
jmp 0x1003b4b9
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1003b7d7
cmp edx, ebp
jne 0x1003b3c3
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x1003b3c3
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [esi + 0xc]
push edx
call fcn.10051810
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov edi, dword [esp + 0x80]
movsx ebp, di
sar edi, 0x10
cmp edx, 1
jne 0x1003b417
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esi + 0x10]
call fcn.10047e50
imul eax, ebp
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x10]
cdq
idiv ecx
mov ecx, dword [esi + 0x10]
mov ebp, eax
call fcn.10047e60
imul eax, edi
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
sub ecx, edx
cdq
idiv ecx
mov edi, eax
test ebp, ebp
jge 0x1003b41f
xor ebp, ebp
jmp 0x1003b436
mov ecx, dword [esi + 0x10]
call fcn.10047e50
cmp ebp, eax
jl 0x1003b436
mov ecx, dword [esi + 0x10]
call fcn.10047e50
mov ebp, eax
dec ebp
test edi, edi
jge 0x1003b452
mov ecx, dword [esi + 0xc]
xor edi, edi
push edi
push ebp
call fcn.10051810
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov ecx, dword [esi + 0x10]
call fcn.10047e60
cmp edi, eax
jl 0x1003b469
mov ecx, dword [esi + 0x10]
call fcn.10047e60
mov edi, eax
dec edi
mov ecx, dword [esi + 0xc]
push edi
push ebp
call fcn.10051810
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
push 1
call fcn.100517f0
test bl, 0x13
jne 0x1003b7d7
call dword [sym.imp.USER32.dll_ReleaseCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
lea eax, [edi - 0x204]
cmp eax, 6
ja case.0x1003b4b0.518
jmp dword [eax*4 + 0x1003b7e4]
push 2
call fcn.100517d0
mov edx, dword [esp + 0x74]
push edx
call dword [sym.imp.USER32.dll_SetCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
push 2
call fcn.100517f0
test bl, 0x13
jne 0x1003b7d7
call dword [sym.imp.USER32.dll_ReleaseCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
push ebp
call fcn.100517d0
mov eax, dword [esp + 0x74]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
push ebp
call fcn.100517f0
test bl, 0x13
jne 0x1003b7d7
call dword [sym.imp.USER32.dll_ReleaseCapture]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
shr ebx, 0x10
movsx edx, bx
push edx
call fcn.10051830
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
push edx
push ebx
push edi
push eax
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [0x1012ba1c]
mov ebp, 3
cmp eax, ebp
jne 0x1003b7d7
mov al, byte [0x1012baad]
test al, al
jne 0x1003b7d7
mov ebx, 1
mov byte [0x1012baae], bl
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x1003b5aa
call fcn.10068ae0
cmp dword [0x1012ba1c], ebp
jne 0x1003b5b2
mov ecx, dword [esi + 0x10]
call fcn.100474e0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b5d5
cmp dword [0x1012ba1c], ebp
jne 0x1003b5cd
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1003b5cd
call fcn.10051960
mov ecx, dword [esi + 0xc]
call fcn.10051850
cmp dword [0x1012ba1c], ebp
mov byte [0x1012baad], bl
mov byte [0x1012baae], 0
jne 0x1003b5f1
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
mov ecx, dword [0x1012ba08]
test ecx, ecx
je 0x1003b7d7
mov edx, dword [ecx]
call dword [edx + 4]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
cmp dword [0x1012ba1c], 3
jne 0x1003b630
push 0
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret 0x10
mov al, byte [esi + 0x3c]
test al, al
mov esi, dword [esp + 0x74]
jne 0x1003b691
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [esp + 0x10]
push ecx
push esi
call dword [sym.imp.USER32.dll_ScreenToClient]
lea edx, [esp + 0x20]
push edx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x1003b691
mov ecx, dword [esp + 0x14]
test ecx, ecx
jl 0x1003b691
cmp eax, dword [esp + 0x28]
jge 0x1003b691
cmp ecx, dword [esp + 0x2c]
jge 0x1003b691
push 0
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
push eax
push ecx
push 0x20
push esi
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x10
mov eax, dword [0x1012ba1c]
mov ebp, 3
cmp eax, ebp
jne 0x1003b7d7
mov eax, dword [esp + 0x7c]
test eax, eax
mov al, byte [0x1012baad]
je 0x1003b75e
test al, al
je 0x1003b7d7
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
mov byte [0x1012baae], 1
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b716
cmp dword [0x1012ba1c], ebp
jne 0x1003b70e
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1003b70e
call fcn.100518a0
and eax, 0xff
mov dword [esi + 0x78], eax
mov ecx, dword [esi + 0xc]
call fcn.10051850
cmp dword [0x1012ba1c], ebp
jne 0x1003b726
mov ecx, dword [esi + 0x10]
call fcn.100475a0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x1003b732
call fcn.10068ae0
mov ecx, dword [0x1012ba08]
test ecx, ecx
mov byte [0x1012baad], 0
mov byte [0x1012baae], 0
je 0x1003b7d7
mov edx, dword [ecx]
call dword [edx]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10
test al, al
jne 0x1003b7d7
mov ebx, 1
mov byte [0x1012baae], bl
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x1003b781
call fcn.10068ae0
cmp dword [0x1012ba1c], ebp
jne 0x1003b789
mov ecx, dword [esi + 0x10]
call fcn.100474e0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1003b7ac
cmp dword [0x1012ba1c], ebp
jne 0x1003b7a4
mov eax, dword [esi + 0x78]
test eax, eax
je 0x1003b7a4
call fcn.10051960
mov ecx, dword [esi + 0xc]
call fcn.10051850
cmp dword [0x1012ba1c], ebp
mov byte [0x1012baad], bl
mov byte [0x1012baae], 0
jne 0x1003b7c8
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
mov ecx, dword [0x1012ba08]
test ecx, ecx
je 0x1003b7d7
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 0x10