Function at 0x51b2f0
Capabilities:
Check for unmoving mouse cursor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov ebx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], eax
mov esi, dword [ebp + 0x10]
xor eax, eax
push ebp
push 0x51bde0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx]
xor edx, edx
push ebp
push 0x51bdbe
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
call fcn.0051a798
cmp dword [ebp + 0xc], 0
je 0x51b487
mov eax, dword [ebp - 4]
cmp byte [eax + 0x81], 0
jne 0x51b360
mov eax, dword [ebp - 4]
cmp byte [eax + 0x82], 0
je 0x51b470
mov eax, dword [ebp - 4]
cmp dword [eax + 0x64], 0
jne 0x51b487
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
test edi, edi
je 0x51b3b9
mov eax, edi
mov edx, dword [0x45ce30]
call fcn.00403a28
test al, al
je 0x51b3b9
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
call fcn.004679a0
mov edi, eax
call sub.user32.dll_GetForegroundWindow
cmp edi, eax
je 0x51b3b9
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0051c4f4
jmp 0x51b487
mov eax, dword [ebp + 0xc]
mov edx, dword [0x45ce30]
call fcn.00403a28
test al, al
je 0x51b419
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 4]
cmp byte [eax + 0x85], 3
je 0x51b487
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.user32.dll_WindowFromPoint
mov edi, eax
mov eax, dword [ebp + 0xc]
call fcn.004679a0
cmp edi, eax
je 0x51b487
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0051c4f4
jmp 0x51b487
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x51b487
test eax, eax
je 0x51b487
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 4]
cmp byte [eax + 0x85], 3
je 0x51b487
push dword [ebp - 0x20]
push dword [ebp - 0x24]
call sub.user32.dll_WindowFromPoint
mov edi, eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x30]
call fcn.004679a0
cmp edi, eax
je 0x51b487
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0051c4f4
jmp 0x51b487
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x78], 0xc8
je 0x51b487
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
mov eax, dword [ebp - 4]
call fcn.0051c60c
test al, al
je 0x51bd78
cmp byte [ebp + 8], 0
jne 0x51b4b3
mov eax, dword [ebp - 4]
cmp byte [eax + 0x68], 0
jne 0x51b4b3
mov eax, dword [ebp - 4]
cmp byte [eax + 0x69], 0
je 0x51bd78
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp ebx, eax
jne 0x51b4db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
cmp esi, eax
je 0x51b541
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov dword [ebp - 0x3c], ebx
fild dword [ebp - 0x3c]
fdivrp st(1)
mov eax, dword [ebp - 4]
fstp qword [eax + 0x70]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov dword [ebp - 0x3c], esi
fild dword [ebp - 0x3c]
fdivrp st(1)
fstp qword [ebp - 0x30]
wait
fld qword [ebp - 0x30]
mov eax, dword [ebp - 4]
fcomp qword [eax + 0x70]
fnstsw ax
sahf
jae 0x51b550
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x30]
mov dword [eax + 0x70], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x74], edx
jmp 0x51b550
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov dword [eax + 0x74], 0x3ff00000
mov eax, dword [ebp - 4]
fld qword [eax + 0x70]
fcomp dword [0x51bdf0]
fnstsw ax
sahf
jne 0x51b86c
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x68]
or al, byte [ebp + 8]
je 0x51b7f6
mov eax, dword [ebp - 4]
mov byte [eax + 0x68], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x69], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x51], 0
push ebp
call fcn.0051a9dc
pop ecx
cmp byte [ebp - 5], 0
je 0x51b758
cmp dword [ebp - 0x10], 0
jle 0x51b5e6
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
cmp eax, dword [ebp - 0x18]
jle 0x51b657
push 0xcc0020
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 0x18]
inc eax
push eax
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
cmp dword [ebp - 0xc], 0
jle 0x51b69e
push 0xcc0020
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x10]
inc eax
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, dword [ebp - 0x14]
jle 0x51b70a
push 0xcc0020
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
inc eax
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x10]
inc eax
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
sub eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
inc eax
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
push 0xcc0020
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x10]
inc eax
push eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0xc]
inc eax
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
jmp 0x51ba24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov edi, eax
test edi, edi
jle 0x51ba24
mov dword [ebp - 0x34], edi
cmp dword [ebp - 0x34], 0x20
jle 0x51b782
mov dword [ebp - 0x34], 0x20
push 0xcc0020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, edi
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, edi
push eax
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
sub edi, dword [ebp - 0x34]
test edi, edi
jg 0x51b772
jmp 0x51ba24
mov eax, dword [ebp - 4]
mov byte [eax + 0x69], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x51], 0
je 0x51b860
push 0xcc0020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 4]
mov byte [eax + 0x51], 0
push ebp
call fcn.0051a9dc
pop ecx
jmp 0x51ba24
mov eax, dword [ebp - 4]
fld qword [eax + 0x70]
fcomp dword [0x51bdf0]
fnstsw ax
sahf
jbe 0x51b939
mov eax, dword [ebp - 4]
mov byte [eax + 0x68], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x69], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x51], 0
push ebp
call fcn.0051a9dc
pop ecx
push 0xcc0020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push eax
push 0
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_StretchBlt
jmp 0x51ba24
mov eax, dword [ebp - 4]
mov byte [eax + 0x68], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x69], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x51], 0
push ebp
call fcn.0051a9dc
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x83], 0
je 0x51b971
push 4
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_SetStretchBltMode
push 0xcc0020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
call fcn.0042bf9c
call fcn.00427a78
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x3c], eax
fild dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push eax
push 0
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_StretchBlt
mov eax, dword [ebp - 4]
cmp byte [eax + 0x83], 0
je 0x51ba24
push 3
mov eax, dword [ebp - 0x1c]
call fcn.00427a78
push eax
call sub.gdi32.dll_SetStretchBltMode
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push edx
push eax
mov eax, ebx
cdq
cmp edx, dword [esp + 4]
jne 0x51ba59
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x51bab3
jmp 0x51ba5d
pop edx
pop eax
jle 0x51bab3
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00427138
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.00426e58
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00427254
push ebx
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
mov edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
call fcn.004276b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
push edx
push eax
mov eax, esi
cdq
cmp edx, dword [esp + 4]
jne 0x51bae8
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x51bb42
jmp 0x51baec
pop edx
pop eax
jle 0x51bb42
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00427138
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
xor edx, edx
call fcn.00426e58
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.00427254
push ebx
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.005198ac
mov edx, dword [eax]
call dword [edx + 0x20]
mov dword [ebp - 0x38], eax
fild dword [ebp - 0x38]
mov eax, dword [ebp - 4]
fmul qword [eax + 0x70]
call fcn.00403040
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x1c]
call fcn.004276b8
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x4c]
cmp byte [ebx + 8], 0
jne 0x51bb8e
cmp dword [ebp + 0xc], 0
je 0x51bda5
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x78], 0xc8
je 0x51bda5
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x51bda5
cmp dword [ebp + 0xc], 0
jne 0x51bba0
push ebp
call fcn.0051ad1c
pop ecx
jmp 0x51bda5
mov eax, dword [ebp - 4]
call fcn.004dd798
call fcn.004b795c
lea edx, [ebp - 0x40]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0x34]
call fcn.00404b1c
je 0x51bc26
push ebp
call fcn.0051ad1c
pop ecx
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x78], 0xc8
je 0x51bda5
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
mov eax, dword [ebp - 4]
cmp dword [eax + 0x64], 0
jne 0x51bda5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x85], 2
jne 0x51bda5
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0051c4f4
jmp 0x51bda5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x81], 0
je 0x51bcf0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
cmp byte [eax + 0x20], 0
jne 0x51bc52
mov eax, dword [ebp - 4]
cmp byte [eax + 0x84], 0
jne 0x51bcf0
mov eax, dword [ebp - 4]
call fcn.004dd798
call fcn.004b795c
lea edx, [ebp - 0x44]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov eax, dword [eax + 0x34]
call fcn.00404b1c
jne 0x51bcf0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
cmp byte [eax + 0x20], 0
je 0x51bcbd
mov edx, dword [ebp + 0xc]
movsx edx, word [edx + 0x78]
cmp edx, dword [eax + 0x1c]
je 0x51bda5
mov dx, word [eax + 0x1c]
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x51bda5
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x78], 0
je 0x51bda5
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x51bda5
push ebp
call fcn.0051ad1c
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x81], 0
je 0x51bd49
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
cmp byte [eax + 0x20], 0
je 0x51bd49
mov edx, dword [ebp + 0xc]
movsx edx, word [edx + 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
cmp edx, dword [eax + 0x1c]
je 0x51bda5
mov dx, word [eax + 0x1c]
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x51bda5
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x78], 0xc8
je 0x51bda5
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
lea eax, [ebp - 0x24]
push eax
call sub.user32.dll_GetCursorPos
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.user32.dll_SetCursorPos
jmp 0x51bda5
mov eax, dword [ebp - 4]
call fcn.0051c60c
test al, al
jne 0x51bda5
cmp dword [ebp + 0xc], 0
je 0x51bda5
mov dx, 0xc8
mov eax, dword [ebp + 0xc]
call fcn.004612b0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x70], edx
mov dword [eax + 0x74], 0x3ff00000
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51bdc5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 4]
ret