Function at 0x5698e0
Capabilities:
Check for unmoving mouse cursor
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ab834
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x5f300c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x108], edi
mov eax, dword [edi + 8]
cmp eax, 0xfffffdee
ja 0x569c88
je 0x569a00
cmp eax, 0x7d1
je 0x56999d
cmp eax, 0x7ec
je 0x569979
cmp eax, 0xfffffdd9
jne 0x569992
cmp dword [edi + 4], 0x162
jne 0x56a0ae
push 0
push 0
push 0x130b
push dword [esi + 0x804]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
mov ecx, esi
call fcn.00542d70
mov ecx, esi
call fcn.0054f9d0
jmp 0x56a0ae
mov eax, dword [edi + 4]
cmp eax, 0x15e
je 0x56998a
cmp eax, 0x15f
jne 0x569992
mov eax, dword [edi]
mov dword [esi + 0x1324], eax
push edi
call fcn.0053d440
jmp 0x56a0ae
cmp dword [edi + 4], 0x15f
jne 0x5699f3
mov al, byte [esi + 0xa4b]
test al, al
je 0x5699f3
mov ecx, dword [esi + 0x12c8]
test ecx, ecx
je 0x5699f3
mov al, byte [edi + 0x10]
mov byte [ebp - 0x101], al
cmp al, 0xd
je 0x56a0ae
push 0
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0
push eax
push 1
lea eax, [ebp - 0x101]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x56a0ae
push edi
mov ecx, esi
call fcn.0053d440
jmp 0x56a0ae
mov eax, dword [edi + 4]
add eax, 0xffffff9b
cmp eax, 0xd4
ja case.0x569a18.103
movzx eax, byte [eax + 0x56a110]
jmp dword [eax*4 + 0x56a0cc]
mov ecx, 0x5d74bc
jmp 0x569a8d
mov ecx, str.Open
jmp 0x569a8d
mov ecx, str.Save
jmp 0x569a8d
mov ecx, str.Close
jmp 0x569a8d
mov ecx, str.Print
jmp 0x569a8d
mov ecx, 0x5d7464
jmp 0x569a8d
mov ecx, str.Copy
jmp 0x569a8d
mov ecx, str.Paste
jmp 0x569a8d
mov ecx, str.Delete
jmp 0x569a8d
mov ecx, str.Undo
jmp 0x569a8d
mov ecx, str.Redo
jmp 0x569a8d
mov ecx, str.Find
jmp 0x569a8d
mov ecx, 0x5d750c
jmp 0x569a8d
mov ecx, str.Record_Macro
jmp 0x569a8d
mov ecx, str.Stop_Recording
jmp 0x569a8d
mov ecx, 0x5d7568
mov eax, dword [esi + 0xb78]
push ecx
lea ecx, [ebp - 0x100]
mov eax, dword [eax]
mov dword [ebp - 0x108], eax
call fcn.00519f70
lea edx, [ebp - 0x100]
mov dword [ebp - 4], 6
lea ecx, [ebp - 0xd0]
call fcn.00560610
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 0x10
jb 0x569acb
mov eax, dword [eax]
push 1
push eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [esi + 0xb78]
call dword [ebp - 0x108]
mov edx, dword [ebp - 0xbc]
cmp edx, 0x10
jb 0x569b1d
mov ecx, dword [ebp - 0xd0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x569b13
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x569b13
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.0059e222
add esp, 8
lea ecx, [ebp - 0x100]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
call fcn.0040ab30
cmp dword [ebp - 0xd4], 8
lea edx, [ebp - 0xe8]
jb 0x569b58
mov edx, dword [ebp - 0xe8]
lea ecx, [esi + 0xe44]
call fcn.0056c0e0
mov dword [edi + 0xc], ecx
lea ecx, [ebp - 0xe8]
call fcn.0040ab30
jmp 0x56a0ae
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x114]
push eax
push dword [esi + 0x804]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x94]
push eax
push 0
push 0x130d
push dword [esi + 0x804]
mov dword [ebp - 0x8c], 0
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
js 0x56a0ae
lea eax, [eax + eax*4]
shl eax, 5
add eax, 4
add eax, dword [esi + 0xbc4]
cmp dword [eax + 0x14], 8
jb 0x569c09
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x58]
call fcn.00519f70
mov dword [ebp - 4], 5
xor edi, edi
jmp 0x569c20
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x58]
jb 0x569c2c
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x48]
push 1
push 0x5d757c
push edi
call fcn.0051a330
mov edi, eax
add esp, 0xc
cmp edi, 0xffffffff
je 0x569c5b
push 1
push 0x5d7560
push edi
lea ecx, [ebp - 0x58]
call fcn.00541760
add edi, 2
jmp 0x569c20
cmp dword [ebp - 0x44], 8
lea edx, [ebp - 0x58]
jb 0x569c67
mov edx, dword [ebp - 0x58]
lea ecx, [esi + 0xe44]
call fcn.0056c0e0
mov eax, dword [ebp - 0x108]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x58]
call fcn.0040ab30
jmp 0x56a0ae
cmp eax, 0xfffffffb
je 0x569ce5
cmp eax, 0xfffffffe
jne 0x569992
cmp dword [edi + 4], 0x161
jne 0x56a0ae
cmp dword [edi + 0xc], 0
jne 0x56a0ae
inc dword [esi + 0x82c]
lea ecx, [esi + 0xb0c]
push 0
push str.statusbar.number
call fcn.00528190
cmp dword [esi + 0x82c], eax
jle 0x569cd7
mov dword [esi + 0x82c], 1
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x34]
jmp 0x56a0ae
cmp dword [edi + 4], 0x162
jne 0x56a0ae
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x10c]
push eax
push dword [esi + 0x804]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0xa0]
push eax
push 0
push 0x130d
push dword [esi + 0x804]
mov dword [ebp - 0x98], 0
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [esi + 0xbb0], eax
je 0x569d7f
push 1
push eax
mov ecx, esi
call fcn.00542d70
mov ecx, esi
call fcn.0054f9d0
mov eax, dword [esi + 0x808]
test eax, eax
je 0x569d90
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [esi + 0x808], 0
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 1
mov dword [esi + 0x808], eax
mov ecx, esi
mov eax, dword [esi]
push 0x69
push 0x5d7400
call dword [eax + 0x178]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0
push 0x5b3729
call dword [eax + 0x178]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x6a
push 0x5d745c
call dword [eax + 0x178]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x6e
push str.Save_As
call dword [eax + 0x178]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0
push 0x5b371b
call dword [eax + 0x178]
xor al, al
xor edi, edi
mov byte [ebp - 0x101], al
nop
push 0xd
push str.command.name.
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040af10
mov dword [ebp - 4], 0
mov edx, edi
lea ecx, [ebp - 0x13]
test edi, edi
jns 0x569e51
neg edx
call fcn.0045c300
mov byte [eax - 1], 0x2d
lea ecx, [eax - 1]
jmp 0x569e58
call fcn.0045c300
mov ecx, eax
lea eax, [ebp - 0x13]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
cmp ecx, eax
je 0x569e89
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0xb8]
call fcn.0040af10
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x40]
call fcn.004501c0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0xa4]
cmp edx, 0x10
jb 0x569eda
mov ecx, dword [ebp - 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x569ed0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x569b0d
push edx
push ecx
call fcn.0059e222
add esp, 8
push 0x5d7450
lea ecx, [ebp - 0x40]
call fcn.00415b50
lea edx, [esi + 0x258]
lea ecx, [ebp - 0x88]
call fcn.00560610
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x88]
cmp dword [ebp - 0x74], 0x10
jb 0x569f0e
mov ecx, dword [ebp - 0x88]
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
jb 0x569f1a
mov eax, dword [ebp - 0x40]
push ecx
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [esi + 0xb0c]
call fcn.00529660
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x74]
cmp edx, 0x10
jb 0x569f66
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x569f5c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x569b0d
push edx
push ecx
call fcn.0059e222
add esp, 8
cmp dword [ebp - 0x60], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
je 0x569faa
cmp dword [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x70]
mov eax, dword [esi]
mov edx, dword [eax + 0x178]
jb 0x569f95
mov ecx, dword [ebp - 0x70]
push 1
lea eax, [edi + 0x44c]
push eax
push ecx
mov ecx, esi
call edx
mov byte [ebp - 0x101], 1
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x569fe2
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x569fd8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x569b0d
push edx
push ecx
call fcn.0059e222
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
cmp edx, 0x10
jb 0x56a02f
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x56a025
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x569b0d
push edx
push ecx
call fcn.0059e222
add esp, 8
inc edi
cmp edi, 0x32
jl 0x569e10
cmp byte [ebp - 0x101], 0
je 0x56a055
mov eax, dword [esi]
mov ecx, esi
push 1
push 0
push 0x5b371a
call dword [eax + 0x178]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x83
push 0x5d7438
call dword [eax + 0x178]
mov eax, dword [ebp - 0x11c]
push 0
push dword [esi + 0x7b0]
add eax, 0xfffffffc
push 0
push dword [ebp - 0x118]
push eax
push 2
push dword [esi + 0x808]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov eax, dword [esi + 0x808]
test eax, eax
je 0x56a0a4
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [esi + 0x808], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 4