Function at 0x4731a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0x48], ebx
je 0x47346e
call fcn.005ee85b
test ah, 8
jne 0x47346e
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
mov eax, dword [esp + 0x14]
setl cl
cmp eax, 0x2e
mov edi, ecx
jne 0x4732ea
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0xc]
lea eax, [esp + 0x14]
push edx
push eax
push 0xb0
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x48]
cmp ecx, eax
jge 0x473475
mov eax, dword [esp + 0xc]
cmp ecx, eax
jne 0x47328a
inc eax
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00472cd0
test eax, eax
je 0x47323b
mov edx, dword [esp + 0x14]
mov ecx, esi
push edx
call fcn.00472ff0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
je 0x473475
mov ecx, dword [esp + 0x14]
inc ecx
inc eax
push eax
mov dword [esp + 0x18], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00472cd0
test eax, eax
jne 0x473277
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
jne 0x47324a
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00472ff0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
push eax
push ecx
mov ecx, esi
call fcn.00472cd0
test eax, eax
je 0x4732aa
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00472ff0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
je 0x473475
mov ecx, dword [esp + 0x14]
inc ecx
inc eax
push eax
mov dword [esp + 0x18], ecx
push ecx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00472cd0
test eax, eax
jne 0x473228
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x48]
cmp eax, ecx
jne 0x4732b9
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x24
jne 0x473332
mov ecx, esi
call fcn.005ebb86
cmp edi, ebx
jne 0x473475
mov edx, dword [esi + 0x1c]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0xb0
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00473090
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x25
jne 0x47337a
mov ecx, esi
call fcn.005ebb86
cmp edi, ebx
jne 0x473475
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0xb0
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00473120
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x26
jne 0x4733c2
mov ecx, esi
call fcn.005ebb86
cmp edi, ebx
jne 0x473475
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0xc]
lea eax, [esp + 0x14]
push edx
push eax
push 0xb0
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x14]
mov ecx, esi
push edx
call fcn.00473120
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x27
jne 0x47340a
mov ecx, esi
call fcn.005ebb86
cmp edi, ebx
jne 0x473475
mov edx, dword [esi + 0x1c]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0xb0
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.00473090
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x28
jne 0x47344e
mov ecx, esi
call fcn.005ebb86
cmp edi, ebx
jne 0x473475
mov eax, dword [esi + 0x1c]
lea ecx, [esp + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0xb0
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.00473090
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
cmp eax, 0x2d
mov ecx, esi
jne 0x473470
call fcn.00472be0
neg eax
sbb eax, eax
mov ecx, esi
inc eax
push eax
call fcn.00472bf0
pop edi
pop esi
pop ebx
pop ecx
ret 0xc
mov ecx, esi
call fcn.005ebb86
pop edi
pop esi
pop ebx
pop ecx
ret 0xc