Function at 0x5ba86312
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x224]
push edi
push dword [ebp + 8]
mov dword [ebp - 4], eax
call fcn.5ba865fe
test eax, eax
je 0x5ba86345
xor eax, eax
inc eax
jmp 0x5ba865f3
mov eax, dword [edi + 8]
mov ecx, 0xfffffcb7
cmp eax, ecx
push ebx
ja 0x5ba86502
je 0x5ba86473
sub eax, 0x700
je 0x5ba86447
dec eax
je 0x5ba863d6
dec eax
je 0x5ba8639c
sub eax, 0x200e
jne 0x5ba865f0
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x98]
call dword [sym.imp.USER32.dll_GetClientRect]
push 1
push dword [ebp - 8]
mov ecx, esi
call fcn.5ba89f91
xor eax, eax
inc eax
jmp 0x5ba865f2
push 0xffffffffffffffeb
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowLongA]
xor ebx, ebx
cmp eax, ebx
je 0x5ba863b0
and dword [eax + 0x1c], 0xfffffffd
lea eax, [esi + 0x24c]
cmp dword [eax], ebx
je 0x5ba863c2
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
lea eax, [esi + 0x248]
cmp dword [eax], ebx
je 0x5ba86394
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
jmp 0x5ba86394
mov eax, dword [edi]
add edi, 0xc
push edi
push eax
mov ecx, esi
mov dword [ebp + 0xc], eax
call fcn.5badae00
cmp eax, 1
je 0x5ba86394
xor ebx, ebx
cmp dword [esi + 0x74], ebx
jne 0x5ba86394
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push 0x43b
push dword [ebp + 0xc]
call edi
mov dword [ebp + 8], eax
and eax, 0xfffbffff
push eax
push ebx
push 0x445
push dword [ebp + 0xc]
call edi
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x98]
call dword [sym.imp.USER32.dll_GetClientRect]
push ebx
push dword [ebp - 8]
mov ecx, esi
call fcn.5ba89f91
push dword [ebp + 8]
push ebx
push 0x445
push dword [ebp + 0xc]
call edi
jmp 0x5ba86394
cmp dword [edi + 0xc], 0x100
jne 0x5ba865f0
cmp dword [edi + 0x10], 9
jne 0x5ba865f0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x5ba865f0
jmp 0x5ba86394
lea eax, [ebp + 0xc]
push eax
push 0x5ba520d4
push 1
xor ebx, ebx
push ebx
push 0x5ba52234
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x5ba865f0
mov ecx, dword [eax]
push 0x10000004
push ebx
push ebx
push ebx
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push 0x10000000
push ebx
push dword [esi + 0x94]
push eax
call dword [ecx + 0x30]
push 2
lea eax, [edi + 0x18]
push eax
push ebx
push dword [esi + 0xa8]
call dword [sym.imp.USER32.dll_MapWindowPoints]
push SysReAllocString
lea eax, [edi + 0x18]
mov ecx, dword [eax]
push eax
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 8]
push eax
push dword [esi + 0xa8]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push ecx
call dword [edx + 0x34]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x5ba865f0
cmp eax, 0xfffffd3a
je 0x5ba86585
cmp eax, 0xfffffdf8
je 0x5ba86551
cmp eax, 0xfffffff7
jbe 0x5ba865f0
cmp eax, 0xfffffff9
ja 0x5ba865f0
mov ecx, dword [esi + 0x224]
test ecx, ecx
je 0x5ba865f0
mov edi, dword [edi]
cmp edi, dword [ecx + 0x18]
jne 0x5ba865f0
xor ecx, ecx
cmp eax, 0xfffffff9
sete cl
push edi
push ecx
mov ecx, esi
call fcn.5ba92b98
jmp 0x5ba865f0
mov eax, dword [edi + 4]
xor ebx, ebx
mov dword [edi + 0x60], ebx
mov dword [edi + 0xc], ebx
cmp dword [ebx*8 + 0x5ba450bc], eax
je 0x5ba86570
inc ebx
cmp ebx, 6
jb 0x5ba8655c
jmp 0x5ba865f0
mov eax, dword [0x5bb73708]
mov dword [edi + 0x60], eax
movzx eax, word [ebx*8 + 0x5ba450c0]
mov dword [edi + 0xc], eax
jmp 0x5ba865f0
cmp dword [edi + 0xc], 0x9ddc
jne 0x5ba865f0
push 0x72
call fcn.5ba6db2a
xor ebx, ebx
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x5ba865f0
mov dword [ebp + 0xc], ebx
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
push 0x400
push dword [ebp + 0xc]
push dword [ebp + 8]
call ebx
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 3
jb 0x5ba865a7
lea ecx, [ebp + 0xc]
add esi, 8
mov eax, dword [esi]
push ecx
push esi
call dword [eax + 0x2c]
push 0x408
push 2
pop eax
sub eax, dword [ebp + 0xc]
push eax
push dword [ebp + 8]
call ebx
push dword [ebp + 8]
push edi
push dword [ebp - 4]
call fcn.5babdd1f
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DestroyMenu]
xor eax, eax
pop ebx
pop edi
pop esi
leave
ret 8