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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x40
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x64]
mov dword [0x4f6024], ebx
mov eax, dword [esp + 0x58]
mov dword [0x4f6028], eax
mov eax, dword [esp + 0x5c]
mov dword [0x4f602c], eax
mov eax, dword [esp + 0x60]
mov dword [0x4f6030], eax
call dword [0x4ea930]
mov dword [0x4f6034], eax
call dword [0x4ea934]
mov dword [esp + 4], eax
movsx ebp, word [esp + 4]
mov dword [0x4f6038], ebp
shr eax, 0x10
mov dword [esp + 8], eax
movsx esi, word [esp + 8]
mov dword [0x4f6038], esi
push edi
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push ebx
call fcn.0043bed0
add esp, 0x14
test eax, eax
je 0x43c140
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
mov edx, dword [esp + 0x58]
mov eax, edx
sub eax, 3
je 0x43c761
sub eax, 2
je 0x43c810
sub eax, 1
je 0x43c2a0
sub eax, 9
je 0x43c5a0
sub eax, 1
je 0x43c846
sub eax, 1
je 0x43c225
sub eax, 3
je 0x43c430
sub eax, 8
je 0x43c307
sub eax, 4
je 0x43c870
sub eax, 1
je 0x43c275
sub eax, 1
je 0x43c8d5
sub eax, 0x5c
je 0x43c8d0
sub eax, 0x98
je 0x43c5b8
sub eax, 0xb
je 0x43c8c4
sub eax, 0x14
je 0x43c490
sub eax, 3
je 0x43c490
sub eax, 0xc8
je 0x43c717
sub eax, 1
je 0x43c5c5
sub eax, 1
je 0x43c6e0
sub eax, 2
je 0x43c5c5
sub eax, 1
je 0x43c6e0
sub eax, 0xf
je 0x43c7d5
sub eax, 0xe
je 0x43c3e0
sub eax, 0xed
je 0x43c241
jmp 0x43c8d5
call fcn.004a1850
test al, al
jne 0x43c234
mov dword [edi], 0
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push ebx
call dword [0x4ea8a8]
mov edi, eax
push 0
call fcn.0043e5d0
push eax
push edi
call dword [0x4ea614]
push edi
call dword [0x4ea618]
push edi
push ebx
call dword [0x4ea8ac]
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push ebx
call fcn.0043e530
pop ecx
test al, al
je 0x43c8d5
mov dword [edi], 4
push 0
call dword [0x4ea9d8]
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
mov byte [0x4c7a30], 1
push 0
push ebx
call dword [0x4ea90c]
mov ebx, eax
test ebx, ebx
je 0x43c2e2
mov eax, dword [esp + 0x5c]
and eax, 0xffff
test ax, ax
je 0x43c2d4
mov byte [ebx + 0x94], 1
mov ecx, ebx
mov esi, dword [ecx]
call dword [esi + 0x68]
jmp 0x43c2e2
mov byte [ebx + 0x94], 0
mov ecx, ebx
mov ebp, dword [ecx]
call dword [ebp + 0x6c]
mov dword [edi], 0
test ebx, ebx
je 0x43c2fa
cmp byte [ebx + 0x40], 0
jne 0x43c2fa
push 0
call fcn.00496f10
pop ecx
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x5c], 0
je 0x43c360
call fcn.00497d60
push ebx
call fcn.0043b7f0
pop ecx
mov edi, dword [0x4f5ff0]
test edi, edi
je 0x43c8d5
cmp byte [edi + 0x92], 0
je 0x43c350
cmp byte [edi + 0x88], 1
jne 0x43c350
push 0x13
push 0x64
push 0x64
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [edi + 0x58]
push eax
call dword [0x4ea9e4]
mov edi, dword [edi + 0x80]
test edi, edi
jne 0x43c328
jmp 0x43c8d5
mov ebp, dword [0x4f5ff0]
test ebp, ebp
je 0x43c3af
lea eax, [eax]
cmp byte [ebp + 0x92], 0
je 0x43c3a5
cmp byte [ebp + 0x88], 1
jne 0x43c3a5
push 0x13
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
mov eax, dword [ebp + 0x58]
push eax
call dword [0x4ea9e4]
call dword [0x4ea9e8]
push eax
call dword [0x4ea910]
mov ebp, dword [ebp + 0x80]
test ebp, ebp
jne 0x43c370
call fcn.0043b860
push 0
push ebx
call dword [0x4ea90c]
test eax, eax
je 0x43c8d5
cmp byte [eax + 0x40], 0
jne 0x43c8d5
call fcn.00497db0
jmp 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
test eax, eax
jne 0x43c3f7
xor eax, eax
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
cmp dword [esp + 0x60], ebx
jne 0x43c410
mov byte [eax + 0x94], 1
mov ecx, eax
mov edi, dword [ecx]
call dword [edi + 0x68]
jmp 0x43c8d5
cmp dword [esp + 0x5c], ebx
jne 0x43c8d5
mov byte [eax + 0x94], 0
mov ecx, eax
mov esi, dword [ecx]
call dword [esi + 0x6c]
jmp 0x43c8d5
mov ebp, dword [esp + 0x5c]
lea eax, [esp + 0xc]
push eax
push ebx
call dword [0x4ea8e8]
push ebx
call fcn.0040daf0
pop ecx
cmp byte [eax + 0x97], 0
je 0x43c458
mov eax, dword [eax + 0x98]
jmp 0x43c460
push 0xf
call dword [0x4ea8a4]
push eax
call dword [0x4ea620]
mov esi, eax
push esi
lea eax, [esp + 0x10]
push eax
push ebp
call dword [0x4ea8b4]
push esi
call dword [0x4ea5dc]
mov dword [edi], 1
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push 0x4c7ab6
push dword [esp + 0x64]
call dword [0x4ea984]
mov edi, eax
cmp byte [0x4ed624], 0
jne 0x43c4bb
mov dword [0x4ed620], 0
mov byte [0x4ed624], 1
test edi, edi
je 0x43c8d5
mov ecx, edi
mov ebx, dword [ecx]
call dword [ebx + 0x140]
test al, al
je 0x43c547
call fcn.00460cf0
test eax, eax
je 0x43c8d5
call fcn.00460f80
test eax, eax
je 0x43c8d5
push edi
call fcn.0045c4b0
pop ecx
test eax, eax
je 0x43c500
push 0
push dword [esp + 0x60]
jmp 0x43c509
push 0
push dword [esp + 0x60]
mov eax, dword [edi + 0x58]
push eax
call fcn.00460fe0
add esp, 0xc
cmp dword [0x4ed620], 0
je 0x43c527
mov eax, dword [0x4ed620]
push eax
call dword [0x4ea5dc]
mov dword [esp + 0x2c], 1
lea eax, [esp + 0x2c]
push eax
call dword [0x4ea61c]
mov dword [0x4ed620], eax
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push edi
call fcn.00450560
pop ecx
cmp byte [eax + 0x97], 0
je 0x43c8d5
mov ebp, dword [eax + 0x98]
cmp dword [0x4ed620], 0
je 0x43c576
mov eax, dword [0x4ed620]
push eax
call dword [0x4ea5dc]
push ebp
call dword [0x4ea620]
mov dword [0x4ed620], eax
push eax
push dword [esp + 0x60]
call dword [0x4ea5e4]
mov eax, dword [0x4ed620]
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push 0
push ebx
call dword [0x4ea90c]
mov ecx, eax
mov edi, dword [ecx]
call dword [edi + 0x17c]
jmp 0x43c8d5
push 0
call fcn.00496f10
pop ecx
jmp 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
mov esi, eax
test esi, esi
je 0x43c6d0
mov word [0x4f604e], 0
push 0x11
call dword [0x4ea9a4]
movsx eax, ax
and eax, 0x8000
je 0x43c5fc
or word [0x4f604e], 0x1000
push 0x10
call dword [0x4ea9a4]
movsx eax, ax
and eax, 0x8000
je 0x43c617
or word [0x4f604e], 0x200
push 0x12
call dword [0x4ea9a4]
movsx eax, ax
and eax, 0x8000
je 0x43c632
or word [0x4f604e], 0x800
mov byte [0x4f6058], 0
cmp dword [esp + 0x58], 0x201
jne 0x43c665
push 0
mov ebx, dword [esp + 0x64]
mov edx, ebx
shr edx, 0x10
movsx eax, dx
push eax
and ebx, 0xffff
movsx eax, bx
push eax
mov ecx, esi
mov ebp, dword [ecx]
call dword [ebp + 0x1c]
jmp 0x43c685
push 0
mov ebx, dword [esp + 0x64]
mov edx, ebx
shr edx, 0x10
movsx eax, dx
push eax
and ebx, 0xffff
movsx eax, bx
push eax
mov ecx, esi
mov ebp, dword [ecx]
call dword [ebp + 0x20]
call fcn.0044b360
mov ebx, eax
test ebx, ebx
je 0x43c6d0
cmp byte [0x4f6058], 0
je 0x43c6d0
lea eax, [esp + 0x38]
push eax
call dword [0x4ea940]
lea edx, [esp + 0x38]
push edx
mov eax, dword [esi + 0x58]
push eax
call dword [0x4ea8f4]
mov byte [0x4f6058], 0
call fcn.0044b3b0
mov ecx, dword [esp + 0x3c]
push ecx
mov eax, dword [esp + 0x3c]
push eax
mov ecx, ebx
mov ebp, dword [ecx]
call dword [ebp + 0x30]
mov dword [edi], 0
xor eax, eax
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.0044b360
mov esi, eax
test esi, esi
je 0x43c8d5
call fcn.0044b3b0
mov edx, dword [esp + 0x60]
mov ebx, edx
shr ebx, 0x10
movsx eax, bx
push eax
and edx, 0xffff
movsx eax, dx
push eax
mov ecx, esi
mov ebp, dword [ecx]
call dword [ebp + 0x30]
jmp 0x43c8d5
call fcn.0045bf90
test al, al
je 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
mov edi, eax
test edi, edi
je 0x43c8d5
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [0x4ea8f4]
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
mov ebx, dword [ecx]
call dword [ebx + 0x2c]
jmp 0x43c8d5
cmp byte [0x4c7a30], 0
je 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
mov ebp, eax
test ebp, ebp
je 0x43c8d5
mov ecx, ebp
call fcn.0040e0b0
mov ecx, ebp
mov ebx, dword [ecx]
call dword [ebx + 0x190]
mov eax, fcn.00449770
test eax, eax
je 0x43c8d5
cmp dword [0x4f5fd8], 0
je 0x43c8d5
mov esi, dword [0x4f5fd8]
test esi, esi
je 0x43c8d5
lea eax, [eax]
mov eax, dword [esi + 0x10]
push eax
call fcn.0044a370
pop ecx
mov esi, dword [esi]
test esi, esi
jne 0x43c7c0
jmp 0x43c8d5
cmp byte [0x4c7a30], 0
je 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
test eax, eax
je 0x43c8d5
push dword [esp + 0x60]
push dword [esp + 0x60]
push eax
call fcn.0043e260
add esp, 0xc
jmp 0x43c8d5
cmp byte [0x4c7a30], 0
je 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
mov esi, eax
test esi, esi
je 0x43c8d5
mov ecx, esi
call fcn.0040e0b0
mov ecx, esi
mov ebp, dword [ecx]
call dword [ebp + 0x19c]
jmp 0x43c8d5
push 0
push ebx
call dword [0x4ea90c]
mov ecx, eax
mov ebx, dword [ecx]
call dword [ebx + 0x1a4]
mov dword [edi], 0
mov eax, 1
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [esp + 0x60]
cmp ax, 1
je 0x43c884
xor eax, eax
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret
push 0
push ebx
call dword [0x4ea90c]
mov esi, eax
lea eax, [esp + 0x1c]
push eax
call dword [0x4ea940]
movsx edx, word [esp + 4]
mov dword [esp + 0x28], edx
movsx eax, word [esp + 8]
mov dword [esp + 0x24], eax
push 0x7f00
push dword [esp + 0x2c]
push eax
push esi
call fcn.0045c180
add esp, 0x50
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.0044a2e0
jmp 0x43c8d5
call fcn.004a1b30
xor eax, eax
add esp, 0x40
pop ebp
pop edi
pop esi
pop ebx
ret