Function at 0x4c2e30
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x24
push ebx
push esi
push edi
mov esi, ecx
push 0x10
xor ebx, ebx
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [esp + 0x38]
and eax, 0x8000
neg eax
sbb eax, eax
and al, 0xee
add eax, 0x14
cmp ecx, 0x6b
mov dword [0x4e00f0], eax
jne 0x4c2e86
fld dword [esi + 0x94]
fcomp dword [0x4d4db4]
fnstsw ax
test ah, 1
je 0x4c3295
fld dword [esi + 0x94]
fadd dword [0x4d3dc4]
jmp 0x4c3101
cmp ecx, 0x31
jne 0x4c2e9a
mov dword [esi + 0x94], 0x3f800000
jmp 0x4c3107
cmp ecx, 0x51
jne 0x4c2eae
mov dword [esi + 0x94], 0x3faa3d71
jmp 0x4c3107
cmp ecx, 0x32
jne 0x4c2ec2
mov dword [esi + 0x94], 0x40000000
jmp 0x4c3107
cmp ecx, 0x57
jne 0x4c2ed6
mov dword [esi + 0x94], 0x3fd47ae1
jmp 0x4c3107
cmp ecx, 0x33
jne 0x4c2eea
mov dword [esi + 0x94], 0x40400000
jmp 0x4c3107
cmp ecx, 0x34
jne 0x4c2efe
mov dword [esi + 0x94], 0x40800000
jmp 0x4c3107
cmp ecx, 0x35
jne 0x4c2f12
mov dword [esi + 0x94], 0x40a00000
jmp 0x4c3107
cmp ecx, 0x36
jne 0x4c2f26
mov dword [esi + 0x94], 0x40c00000
jmp 0x4c3107
cmp ecx, 0x37
jne 0x4c2f3a
mov dword [esi + 0x94], 0x40e00000
jmp 0x4c3107
cmp ecx, 0x38
jne 0x4c2f4e
mov dword [esi + 0x94], 0x41000000
jmp 0x4c3107
cmp ecx, 0x39
jne 0x4c2f62
mov dword [esi + 0x94], 0x41100000
jmp 0x4c3107
cmp ecx, 0x50
jne 0x4c2f80
push 0
mov ecx, esi
call fcn.004c4570
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x43
jne 0x4c2f9e
push 1
mov ecx, esi
call fcn.004c4570
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x42
jne 0x4c2fbc
push 0
mov ecx, esi
call fcn.004c46f0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x54
jne 0x4c2fd8
mov ecx, esi
call fcn.004b8df0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x46
je 0x4c3284
cmp ecx, 0x7a
je 0x4c3284
cmp ecx, 0x45
jne 0x4c3018
mov ecx, dword [esi + 0x60]
xor eax, eax
test ecx, ecx
sete al
mov ecx, esi
mov dword [esi + 0x60], eax
call fcn.004c3960
mov ebx, 1
call fcn.004577d0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x70
jne 0x4c3048
mov ecx, esi
call fcn.004c3c30
mov ecx, dword [esi + 0x68]
push 0
push 0xe146
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x71
jne 0x4c3066
push 0
mov ecx, esi
call fcn.004c3a80
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x72
jne 0x4c3084
push 1
mov ecx, esi
call fcn.004c3a80
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x73
jne 0x4c30a2
push 2
mov ecx, esi
call fcn.004c3a80
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x58
jne 0x4c30be
mov ecx, esi
call fcn.004c3a50
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x6d
jne 0x4c31c6
fld dword [esi + 0x94]
fcomp dword [0x4d3de0]
fnstsw ax
test ah, 0x41
jne 0x4c3295
fld dword [esi + 0x94]
fcomp dword [0x4d3dc4]
fnstsw ax
test ah, 0x41
jne 0x4c3295
fld dword [esi + 0x94]
fsub dword [0x4d3dc4]
fstp dword [esi + 0x94]
fld dword [esi + 0x94]
sub esp, 8
mov ebx, 1
fstp qword [esp]
push str._.1f_X
push 0x4f2864
call fcn.004c5d39
mov edx, dword [esi + 0x64]
add esp, 0x10
push 0x2be2
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esi + 0x64]
push 0
push 0xbb8
push 0x2be2
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [esi + 0x54]
test eax, eax
je 0x4c31a3
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x4c31a3
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xc]
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x2c], 0x3f800000
mov eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [0x4f2858]
test eax, eax
je 0x4c31b6
lea ecx, [esp + 0xc]
push ecx
push edx
call eax
call fcn.004577d0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
mov edx, dword [esi + 0x64]
push 0x105
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
call fcn.004577d0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x1b
jne 0x4c31ee
push 0x5b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x4c3295
mov ecx, esi
call fcn.004c3c30
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x25
jne 0x4c31fb
sub dword [esi + 0x84], eax
jmp 0x4c3264
cmp ecx, 0x27
jne 0x4c322a
mov ecx, dword [esi + 0x84]
add ecx, eax
mov dword [esi + 0x84], ecx
mov edx, dword [esi + 0x88]
mov eax, ecx
push edx
push eax
mov ecx, esi
call fcn.004c2d90
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x26
jne 0x4c3259
mov edi, dword [esi + 0x88]
add edi, eax
mov dword [esi + 0x88], edi
mov edx, dword [esi + 0x84]
mov ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.004c2d90
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x28
jne 0x4c3295
sub dword [esi + 0x88], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x84]
push eax
push ecx
mov ecx, esi
call fcn.004c2d90
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
mov ecx, esi
call fcn.004c39b0
mov ebx, 1
call fcn.004577d0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc