Function at 0x4ac3cf
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
movzx eax, bx
add eax, 0xffffff9b
cmp eax, 0x21
ja case.0x4ac3ea.110
jmp dword [eax*4 + 0x4ac3f1]
cmp dword [0x52b4e0], 0
jne 0x4ac49d
cmp dword [0x537b60], 0xffffffff
jne 0x4ac49d
cmp dword [0x52b4d4], 0
jne 0x4ac49d
cmp dword [0x52b4d0], 0
je 0x4ac4b6
mov byte [0x548fd4], 0
xor edx, edx
mov dword [0x529884], edx
call fcn.0043d96c
jmp 0x4acd5f
cmp dword [0x537b60], 0xffffffff
jne 0x4acd5f
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x4ac4d9
push 0x555aeb
call fcn.004de2ff
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x4ac516
mov esi, 0x555aeb
mov edi, 0x533bc4
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x555aeb
call fcn.004de3a9
push 1
call fcn.0043d3de
jmp 0x4acd5f
cmp dword [0x533a2c], 0
jne 0x4acd5f
xor eax, eax
mov dword [0x533fbc], eax
mov edx, dword [ebp + 0x10]
mov dword [0x532a48], edx
push 0x4b5d59
push 0x29e
push dword [ebp + 8]
call fcn.0044ea80
xor ecx, ecx
mov dword [0x532a48], ecx
jmp 0x4acd5f
cmp dword [0x533a2c], 0
jne 0x4acd5f
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
push 0x4b5d59
push 0x29e
push dword [ebp + 8]
call fcn.0044ea80
xor edx, edx
mov dword [0x532a48], edx
jmp 0x4acd5f
push 0
push 0
push 0x10
push dword [ebp + 8]
call sub.USER32.dll_PostMessageA
jmp 0x4acd5f
cmp dword [0x529a84], 0
jne 0x4acd5f
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
dec eax
je 0x4ac5db
mov eax, dword [0x53742c]
test eax, eax
je 0x4ac5db
cmp eax, dword [0x537434]
jne 0x4ac5db
mov dword [ebp + 8], eax
mov dword [0x532a48], 2
push dword [ebp + 8]
call fcn.0041d137
xor edx, edx
mov dword [0x532a48], edx
jmp 0x4acd5f
cmp dword [0x532aa8], 0
jne 0x4ac65c
cmp dword [0x529bfc], 0
jne 0x4ac65c
mov dword [0x532aa8], 1
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
dec eax
je 0x4ac635
mov eax, dword [0x53742c]
test eax, eax
je 0x4ac635
cmp eax, dword [0x537434]
jne 0x4ac635
mov dword [ebp + 8], eax
mov dword [0x532a48], 2
push 0x41ea7b
push 0xdc
push dword [ebp + 8]
call fcn.0044ea80
xor edx, edx
mov dword [0x532a48], edx
xor ecx, ecx
mov dword [0x532aa8], ecx
jmp 0x4acd5f
push 0
call fcn.00415bea
jmp 0x4acd5f
cmp dword [0x535730], 0
jne 0x4ac682
xor eax, eax
mov dword [0x535734], eax
call fcn.004d9c8c
jmp 0x4acd5f
push 0
call fcn.004d9cd9
jmp 0x4acd5f
cmp dword [0x535730], 0
jne 0x4ac6ab
mov dword [0x535734], 1
call fcn.004d9c8c
jmp 0x4acd5f
push 1
call fcn.004d9cd9
jmp 0x4acd5f
cmp dword [0x535730], 0
jne 0x4ac6dd
cmp dword [0x535734], 2
jge 0x4ac6d3
mov dword [0x535734], 2
call fcn.004d9c8c
jmp 0x4acd5f
cmp dword [0x535734], 2
jge 0x4ac6f2
push 2
call fcn.004d9cd9
jmp 0x4acd5f
push dword [0x535734]
call fcn.004d9cd9
jmp 0x4acd5f
cmp dword [0x528d08], 0
jne 0x4acd5f
cmp dword [0x53742c], 0
je 0x4ac75b
push dword [0x53742c]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4ac75b
push dword [0x53742c]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4ac75b
push dword [0x53742c]
call fcn.004f7e1e
test eax, eax
je 0x4ac750
mov edx, dword [0x537420]
mov dword [ebp + 8], edx
jmp 0x4ac763
mov ecx, dword [0x53742c]
mov dword [ebp + 8], ecx
jmp 0x4ac763
mov eax, dword [0x537420]
mov dword [ebp + 8], eax
mov edx, dword [ebp + 0x10]
mov dword [0x532a48], edx
mov eax, dword [0x53742c]
test eax, eax
je 0x4ac792
push eax
call fcn.004f7e1e
test eax, eax
jne 0x4ac792
mov edx, dword [0x53742c]
mov dword [ebp + 8], edx
mov dword [0x532a48], 2
push 0x40cf55
push 0x1e
push dword [ebp + 8]
call fcn.0044ea80
xor ecx, ecx
mov dword [0x532a48], ecx
jmp 0x4acd5f
cmp dword [0x532aac], 0
jne 0x4acd5f
mov dword [0x532aac], 1
cmp dword [0x52e2bc], 0
je 0x4ac7fb
mov ebx, dword [0x537444]
test ebx, ebx
je 0x4ac7f1
push dword [0x52a378]
push 0
push 0xf46
call fcn.00415c87
push eax
push ebx
call fcn.004c7cd0
push 0x532c8a
call fcn.00465238
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
mov eax, dword [0x53742c]
test eax, eax
je 0x4ac823
cmp eax, dword [0x537444]
jne 0x4ac823
mov dword [ebp + 8], eax
mov dword [0x532a48], 2
jmp 0x4ac82f
cmp dword [0x532a48], 2
jne 0x4ac82f
mov dword [ebp + 8], eax
push 0x450585
push 0x1b8
push dword [ebp + 8]
call fcn.0044ea80
xor edx, edx
mov dword [0x532a48], edx
xor ecx, ecx
mov dword [0x532aac], ecx
jmp 0x4acd5f
cmp dword [0x532ab0], 0
jne 0x4acd5f
mov dword [0x532ab0], 1
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
push 0x44ed75
push 0x30c
push dword [ebp + 8]
call fcn.0044ea80
xor edx, edx
mov dword [0x532a48], edx
xor ecx, ecx
mov dword [0x532ab0], ecx
jmp 0x4acd5f
cmp dword [0x532ab4], 0
jne 0x4acd5f
mov dword [0x532ab4], 1
mov eax, dword [ebp + 0x10]
mov dword [0x532a48], eax
push 0x4258a1
push 0xaa
push dword [ebp + 8]
call fcn.0044ea80
xor edx, edx
mov dword [0x532a48], edx
xor ecx, ecx
mov dword [0x532ab4], ecx
jmp 0x4acd5f
cmp dword [0x532ab8], 0
jne 0x4acd5f
mov dword [0x532ab8], 1
push dword [0x53742c]
call fcn.00468949
xor eax, eax
mov dword [0x532ab8], eax
jmp 0x4acd5f
cmp dword [0x532abc], 0
jne 0x4acd5f
mov dword [0x532abc], 1
mov edx, dword [ebp + 0x10]
mov dword [0x532a48], edx
push 0
push 0
push 0
push 0
push 0
call fcn.004db8f0
xor ecx, ecx
mov dword [0x532a48], ecx
xor eax, eax
mov dword [0x532abc], eax
jmp 0x4acd5f
cmp dword [0x532ac0], 0
jne 0x4acd5f
mov dword [0x532ac0], 1
mov edx, dword [ebp + 0x10]
mov dword [0x532a48], edx
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.0041fa74
xor ecx, ecx
mov dword [0x532a48], ecx
xor eax, eax
mov dword [0x532ac0], eax
jmp 0x4acd5f
cmp dword [0x533a2c], 0
jne 0x4acd5f
mov dword [0x533fc4], 5
mov dword [0x533fe4], 1
push 0x4b5d59
push 0x29e
push dword [ebp + 8]
call fcn.0044ea80
jmp 0x4acd5f
mov eax, dword [0x53743c]
test eax, eax
je 0x4ac9f2
cmp eax, dword [0x53742c]
jne 0x4ac9f2
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_PostMessageA
jmp 0x4acd5f
call fcn.004b4cb5
jmp 0x4acd5f
mov eax, dword [0x537438]
test eax, eax
je 0x4aca1e
cmp eax, dword [0x53742c]
jne 0x4aca1e
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_PostMessageA
jmp 0x4acd5f
call fcn.004f32bd
jmp 0x4acd5f
cmp dword [ebp + 0x10], 0
je 0x4aca50
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x4aca50
push 0
push 0
push 0x226
push dword [0x537424]
call sub.USER32.dll_SendMessageA
jmp 0x4aca64
push 0
push 1
push 0x226
push dword [0x537424]
call sub.USER32.dll_SendMessageA
mov ebx, dword [0x537418]
test ebx, ebx
je 0x4acd5f
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4acaa9
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4acaa9
push 0
lea eax, [ebp - 0x10]
push eax
push dword [ebx]
call fcn.004f9e67
push 1
lea edx, [ebp - 0x10]
push edx
push dword [ebx]
call sub.USER32.dll_InvalidateRect
push dword [ebx]
call sub.USER32.dll_UpdateWindow
mov ebx, dword [ebx + 0x9a8]
test ebx, ebx
jne 0x4aca72
jmp 0x4acd5f
push 0
push 0
push 0x227
push dword [0x537424]
call sub.USER32.dll_SendMessageA
mov ebx, dword [0x537418]
test ebx, ebx
je 0x4acd5f
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4acb11
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x4acb11
push 0
lea eax, [ebp - 0x20]
push eax
push dword [ebx]
call fcn.004f9e67
push 1
lea edx, [ebp - 0x20]
push edx
push dword [ebx]
call sub.USER32.dll_InvalidateRect
push dword [ebx]
call sub.USER32.dll_UpdateWindow
mov ebx, dword [ebx + 0x9a8]
test ebx, ebx
jne 0x4acada
jmp 0x4acd5f
mov ebx, dword [0x537418]
test ebx, ebx
je 0x4acb5d
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x4acb40
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
jne 0x4acb53
push 0x13
push 0
push 0
push 0
push 0
push 1
push dword [ebx]
call sub.USER32.dll_SetWindowPos
mov ebx, dword [ebx + 0x9a8]
test ebx, ebx
jne 0x4acb2a
push 0
push 0
push 0x228
push dword [0x537424]
call sub.USER32.dll_SendMessageA
jmp 0x4acd5f
mov eax, dword [0x53742c]
test eax, eax
je 0x4acd5f
push 0
push 0
push 0x10
push eax
call sub.USER32.dll_SendMessageA
jmp 0x4acd5f
mov eax, dword [0x532a30]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x532a30], eax
test eax, eax
je 0x4acbd7
push 8
push 0x7e
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
push 0
push 0x80
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
xor edx, edx
mov dword [0x532a34], edx
jmp 0x4acd5f
push 0
push 0x7e
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
jmp 0x4acd5f
mov eax, dword [0x532a34]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x532a34], eax
test eax, eax
je 0x4acc2e
push 8
push 0x80
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
push 0
push 0x7e
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
xor edx, edx
mov dword [0x532a30], edx
jmp 0x4acd5f
push 0
push 0x80
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
jmp 0x4acd5f
mov eax, dword [0x532a38]
cmp eax, 1
sbb eax, eax
neg eax
mov dword [0x532a38], eax
test eax, eax
je 0x4acc6e
push 8
push 0x7f
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
jmp 0x4acd5f
push 0
push 0x7f
push dword [0x532528]
call sub.USER32.dll_CheckMenuItem
jmp 0x4acd5f
push 0xa
call fcn.0041675f
jmp 0x4acd5f
push 0
call fcn.0041675f
jmp 0x4acd5f
cmp dword [0x532ac4], 0
jne 0x4acd5f
mov dword [0x532ac4], 1
mov edx, dword [ebp + 0x10]
mov dword [0x532a48], edx
push 0x40a213
push 0xa
push dword [ebp + 8]
call fcn.0044ea80
xor ecx, ecx
mov dword [0x532a48], ecx
cmp dword [0x528c40], 0
je 0x4acce6
xor eax, eax
mov dword [0x528c40], eax
call fcn.004a9914
xor edx, edx
mov dword [0x532ac4], edx
jmp 0x4acd5f
cmp dword [0x532ac8], 0
jne 0x4acd5f
mov dword [0x532ac8], 1
push 0x49d783
push 0x2c6
push dword [ebp + 8]
call fcn.0044ea80
xor ecx, ecx
mov dword [0x532ac8], ecx
jmp 0x4acd5f
movzx esi, bx
push esi
push dword [0x53742c]
call fcn.004a63c8
test eax, eax
je 0x4acd39
mov eax, 1
jmp 0x4acd64
push esi
call fcn.004a4b5e
test eax, eax
je 0x4acd4a
mov eax, 1
jmp 0x4acd64
push ebx
call fcn.004a517a
test eax, eax
je 0x4acd5b
mov eax, 1
jmp 0x4acd64
xor eax, eax
jmp 0x4acd64
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc