Function at 0x52e780
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 [0x551380], eax
jne 0x52e7d6
fld dword [esi + 0x94]
fcomp dword [0x5431f4]
fnstsw ax
test ah, 1
je 0x52ebe5
fld dword [esi + 0x94]
fadd dword [0x541e94]
jmp 0x52ea51
cmp ecx, 0x31
jne 0x52e7ea
mov dword [esi + 0x94], 0x3f800000
jmp 0x52ea57
cmp ecx, 0x51
jne 0x52e7fe
mov dword [esi + 0x94], 0x3faa3d71
jmp 0x52ea57
cmp ecx, 0x32
jne 0x52e812
mov dword [esi + 0x94], 0x40000000
jmp 0x52ea57
cmp ecx, 0x57
jne 0x52e826
mov dword [esi + 0x94], 0x3fd47ae1
jmp 0x52ea57
cmp ecx, 0x33
jne 0x52e83a
mov dword [esi + 0x94], 0x40400000
jmp 0x52ea57
cmp ecx, 0x34
jne 0x52e84e
mov dword [esi + 0x94], 0x40800000
jmp 0x52ea57
cmp ecx, 0x35
jne 0x52e862
mov dword [esi + 0x94], 0x40a00000
jmp 0x52ea57
cmp ecx, 0x36
jne 0x52e876
mov dword [esi + 0x94], 0x40c00000
jmp 0x52ea57
cmp ecx, 0x37
jne 0x52e88a
mov dword [esi + 0x94], 0x40e00000
jmp 0x52ea57
cmp ecx, 0x38
jne 0x52e89e
mov dword [esi + 0x94], 0x41000000
jmp 0x52ea57
cmp ecx, 0x39
jne 0x52e8b2
mov dword [esi + 0x94], 0x41100000
jmp 0x52ea57
cmp ecx, 0x50
jne 0x52e8d0
push 0
mov ecx, esi
call fcn.0052fec0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x43
jne 0x52e8ee
push 1
mov ecx, esi
call fcn.0052fec0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x42
jne 0x52e90c
push 0
mov ecx, esi
call fcn.00530040
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x54
jne 0x52e928
mov ecx, esi
call fcn.0048d880
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x46
je 0x52ebd4
cmp ecx, 0x7a
je 0x52ebd4
cmp ecx, 0x45
jne 0x52e968
mov ecx, dword [esi + 0x60]
xor eax, eax
test ecx, ecx
sete al
mov ecx, esi
mov dword [esi + 0x60], eax
call fcn.0052f2b0
mov ebx, 1
call fcn.00471d10
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x70
jne 0x52e998
mov ecx, esi
call fcn.0052f580
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 0x52e9b6
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, 0x72
jne 0x52e9d4
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, 0x73
jne 0x52e9f2
push 2
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, 0x58
jne 0x52ea0e
mov ecx, esi
call fcn.0052f3a0
mov ebx, 1
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x6d
jne 0x52eb16
fld dword [esi + 0x94]
fcomp dword [0x541eb0]
fnstsw ax
test ah, 0x41
jne 0x52ebe5
fld dword [esi + 0x94]
fcomp dword [0x541e94]
fnstsw ax
test ah, 0x41
jne 0x52ebe5
fld dword [esi + 0x94]
fsub dword [0x541e94]
fstp dword [esi + 0x94]
fld dword [esi + 0x94]
sub esp, 8
mov ebx, 1
fstp qword [esp]
push str._.1f_X
push 0x563c44
call fcn.00532b29
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 0x52eaf3
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x52eaf3
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 [0x563c38]
test eax, eax
je 0x52eb06
lea ecx, [esp + 0xc]
push ecx
push edx
call eax
call fcn.00471d10
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.00471d10
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x1b
jne 0x52eb3e
push 0x5b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x52ebe5
mov ecx, esi
call fcn.0052f580
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x25
jne 0x52eb4b
sub dword [esi + 0x84], eax
jmp 0x52ebb4
cmp ecx, 0x27
jne 0x52eb7a
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.0052e6e0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x26
jne 0x52eba9
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.0052e6e0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
cmp ecx, 0x28
jne 0x52ebe5
sub dword [esi + 0x88], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x84]
push eax
push ecx
mov ecx, esi
call fcn.0052e6e0
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc
mov ecx, esi
call fcn.0052f300
mov ebx, 1
call fcn.00471d10
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x24
ret 0xc