Function at 0x52dc90
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 [0x550310], eax
jne 0x52dce6
fld dword [esi + 0x94]
fcomp dword [0x5421f4]
fnstsw ax
test ah, 1
je 0x52e0f5
fld dword [esi + 0x94]
fadd dword [0x540e94]
jmp 0x52df61
cmp ecx, 0x31
jne 0x52dcfa
mov dword [esi + 0x94], 0x3f800000
jmp 0x52df67
cmp ecx, 0x51
jne 0x52dd0e
mov dword [esi + 0x94], 0x3faa3d71
jmp 0x52df67
cmp ecx, 0x32
jne 0x52dd22
mov dword [esi + 0x94], 0x40000000
jmp 0x52df67
cmp ecx, 0x57
jne 0x52dd36
mov dword [esi + 0x94], 0x3fd47ae1
jmp 0x52df67
cmp ecx, 0x33
jne 0x52dd4a
mov dword [esi + 0x94], 0x40400000
jmp 0x52df67
cmp ecx, 0x34
jne 0x52dd5e
mov dword [esi + 0x94], 0x40800000
jmp 0x52df67
cmp ecx, 0x35
jne 0x52dd72
mov dword [esi + 0x94], 0x40a00000
jmp 0x52df67
cmp ecx, 0x36
jne 0x52dd86
mov dword [esi + 0x94], 0x40c00000
jmp 0x52df67
cmp ecx, 0x37
jne 0x52dd9a
mov dword [esi + 0x94], 0x40e00000
jmp 0x52df67
cmp ecx, 0x38
jne 0x52ddae
mov dword [esi + 0x94], 0x41000000
jmp 0x52df67
cmp ecx, 0x39
jne 0x52ddc2
mov dword [esi + 0x94], 0x41100000
jmp 0x52df67
cmp ecx, 0x50
jne 0x52dde0
push 0
mov ecx, esi
call fcn.0052f3d0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x43
jne 0x52ddfe
push 1
mov ecx, esi
call fcn.0052f3d0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x42
jne 0x52de1c
push 0
mov ecx, esi
call fcn.0052f550
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x54
jne 0x52de38
mov ecx, esi
call fcn.0048c930
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x46
je 0x52e0e4
cmp ecx, 0x7a
je 0x52e0e4
cmp ecx, 0x45
jne 0x52de78
mov ecx, dword [esi + 0x60]
xor eax, eax
test ecx, ecx
sete al
mov ecx, esi
mov dword [esi + 0x60], eax
call fcn.0052e7c0
mov ebx, 1
call fcn.00471440
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x70
jne 0x52dea8
mov ecx, esi
call fcn.0052ea90
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 0x52dec6
push 0
mov ecx, esi
call fcn.0052e8e0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x72
jne 0x52dee4
push 1
mov ecx, esi
call fcn.0052e8e0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x73
jne 0x52df02
push 2
mov ecx, esi
call fcn.0052e8e0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x58
jne 0x52df1e
mov ecx, esi
call fcn.0052e8b0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x6d
jne 0x52e026
fld dword [esi + 0x94]
fcomp dword [0x540eb0]
fnstsw ax
test ah, 0x41
jne 0x52e0f5
fld dword [esi + 0x94]
fcomp dword [0x540e94]
fnstsw ax
test ah, 0x41
jne 0x52e0f5
fld dword [esi + 0x94]
fsub dword [0x540e94]
fstp dword [esi + 0x94]
fld dword [esi + 0x94]
sub esp, 8
mov ebx, 1
fstp qword [esp]
push str._.1f_X
push 0x562b8c
call fcn.00532039
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 0x52e003
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x52e003
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 [0x562b80]
test eax, eax
je 0x52e016
lea ecx, [esp + 0xc]
push ecx
push edx
call eax
call fcn.00471440
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.00471440
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x1b
jne 0x52e04e
push 0x5b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x52e0f5
mov ecx, esi
call fcn.0052ea90
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x25
jne 0x52e05b
sub dword [esi + 0x84], eax
jmp 0x52e0c4
cmp ecx, 0x27
jne 0x52e08a
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.0052dbf0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x26
jne 0x52e0b9
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.0052dbf0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x28
jne 0x52e0f5
sub dword [esi + 0x88], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x84]
push eax
push ecx
mov ecx, esi
call fcn.0052dbf0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
mov ecx, esi
call fcn.0052e810
mov ebx, 1
call fcn.00471440
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc