Function at 0x552350
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 8
push esi
mov esi, dword [esp + 0x10]
push esi
call fcn.00582ac0
add esp, 4
test eax, eax
jne 0x55236f
mov eax, 1
pop esi
add esp, 8
ret
mov eax, dword [esp + 0x20]
sub eax, 0
push ebx
push ebp
push edi
je 0x552582
dec eax
je 0x55244c
dec eax
jne 0x552833
cmp dword [esi + 0x71c], 9
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jne 0x5523be
mov eax, dword [esp + 0x20]
mov ecx, dword [esi]
push ebx
push edi
push eax
push ecx
call fcn.005521c0
push esi
call fcn.00582ac0
add esp, 0x14
test eax, eax
je 0x552833
cmp edi, 0x43
jne 0x5523e2
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x55242f
mov eax, dword [0x613878]
test eax, eax
je 0x55242f
cmp eax, dword [esi]
je 0x552675
jmp 0x55242f
cmp edi, 0x46
jne 0x552414
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, ah
jns 0x552833
mov edx, dword [esi]
push ebx
push edi
push 0x8040
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret
cmp edi, 0x10
je 0x552833
cmp edi, 0x11
je 0x552833
cmp edi, 0x12
je 0x552833
mov eax, dword [esi]
push ebx
push edi
push 0x8040
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret
cmp dword [esi + 0x71c], 9
mov edi, dword [esp + 0x24]
jne 0x55247d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
push ecx
push edi
push edx
push eax
call fcn.005521c0
push esi
call fcn.00582ac0
add esp, 0x14
test eax, eax
je 0x552833
cmp edi, 0x1b
jne 0x55248a
push 0
push edi
jmp 0x552843
cmp edi, 9
jne 0x5524cc
mov eax, dword [esi + 0x884]
test eax, eax
je 0x5524b5
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 4
push esi
call fcn.00506ee0
add esp, 8
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
mov edx, dword [esi + 0x88c]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 0x2d
jne 0x552525
mov ecx, dword [esi + 0x71c]
mov eax, 6
cmp ecx, eax
jne 0x552833
mov dword [0x609c58], eax
mov eax, dword [esi]
push 0x63b648
mov dword [0x63b648], eax
call fcn.00502c00
mov ecx, dword [0x645324]
add esp, 4
push 0
push 0x1b58
push 0x111
push ecx
mov dword [0x63b64c], eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 0x2e
jne 0x552833
mov ecx, dword [esi + 0x71c]
mov eax, 6
cmp ecx, eax
jne 0x552833
mov dword [0x609c58], eax
mov edx, dword [esi]
push 0x63b648
mov dword [0x63b648], edx
call fcn.00502c00
add esp, 4
push 0
push 0x1b5b
mov dword [0x63b64c], eax
mov eax, dword [0x645324]
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp dword [esi + 0x71c], 9
mov edi, dword [esp + 0x24]
mov ebp, 1
jne 0x5525ba
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
push ecx
push edi
push edx
push eax
call fcn.005521c0
push esi
mov ebp, eax
call fcn.00582ac0
add esp, 0x14
test eax, eax
je 0x552833
cmp edi, 0x26
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
je 0x5525ca
cmp edi, 0x28
jne 0x5525e4
mov eax, dword [esi + 0x8b4]
test eax, eax
je 0x552840
push 0x11
call ebx
test ah, ah
js 0x552840
cmp edi, 0x24
je 0x5525ee
cmp edi, 0x23
jne 0x552602
push 0x10
call ebx
test ah, ah
js 0x552602
push 0x11
call ebx
test ah, ah
js 0x552840
cmp edi, 0x21
je 0x55260c
cmp edi, 0x22
jne 0x55262f
push 0x10
call ebx
test ah, ah
js 0x55262f
mov edx, dword [esi]
push 0
push edi
push 0x8040
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 0x1b
jne 0x55264f
mov eax, dword [esi]
push 0
push edi
push 0x8040
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 0x43
jne 0x5526c7
push 0x11
call ebx
test ah, ah
jns 0x552833
mov eax, dword [0x613878]
test eax, eax
je 0x552833
cmp eax, dword [esi]
jne 0x552833
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esi]
lea edx, [esp + 0x10]
push edx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
movzx ecx, word [esp + 0x14]
movzx edx, word [esp + 0x10]
mov eax, dword [esi]
shl ecx, 0x10
or ecx, edx
push ecx
push eax
call fcn.00462ea0
mov ecx, dword [esi]
push ecx
call fcn.00461fc0
mov edx, dword [0x613878]
push edx
call fcn.00462da0
add esp, 0x10
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 9
jne 0x55281f
mov eax, dword [esi]
push eax
call fcn.00557c70
add esp, 4
push 0x10
mov edi, eax
call ebx
test ah, ah
jns 0x5526ee
mov eax, dword [0x63e0e0]
test eax, eax
je 0x55270f
push 0x10
call ebx
test ah, ah
js 0x5527ff
mov eax, dword [0x63e0e0]
test eax, eax
je 0x5527ff
test edi, edi
jne 0x5527ff
mov ebx, dword [esp + 0x30]
cmp ebx, dword [esi + 0x884]
mov ebp, dword [sym.imp.USER32.dll_IsWindowEnabled]
mov edi, dword [sym.imp.USER32.dll_SetFocus]
jne 0x552780
mov eax, dword [esi + 0x888]
test eax, eax
je 0x552741
push eax
call ebp
test eax, eax
je 0x552741
mov ecx, dword [esi + 0x888]
push ecx
jmp 0x552773
mov eax, dword [esi + 0x88c]
test eax, eax
je 0x55276c
push eax
call ebp
test eax, eax
jne 0x552761
push 3
push esi
call fcn.00506ee0
add esp, 8
test eax, eax
je 0x55276c
mov edx, dword [esi + 0x88c]
push edx
call edi
jmp 0x552780
mov eax, dword [esi + 0x884]
push eax
call edi
push 4
push esi
call fcn.00506ee0
add esp, 8
cmp ebx, dword [esi + 0x888]
jne 0x552851
mov eax, dword [esi + 0x88c]
test eax, eax
je 0x5527bf
push eax
call ebp
test eax, eax
jne 0x5527ac
push 3
push esi
call fcn.00506ee0
add esp, 8
test eax, eax
je 0x5527bf
mov ecx, dword [esi + 0x88c]
push ecx
call edi
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
mov eax, dword [esi + 0x884]
test eax, eax
je 0x5527e1
push eax
call edi
push 4
push esi
call fcn.00506ee0
add esp, 8
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
mov edx, dword [esi + 0x888]
push edx
call edi
push 4
push esi
call fcn.00506ee0
add esp, 8
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
test ebp, ebp
je 0x552833
mov eax, dword [esi]
push 0
push 9
push 0x8040
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret
cmp edi, 0xd
je 0x552829
cmp edi, 0xa
jne 0x552833
mov eax, dword [esi + 0x8b4]
test eax, eax
je 0x552851
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret
push 0
push edi
mov ecx, dword [esi]
push 0x8040
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 8
ret