Function at 0x42d970
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 1
call esi
test ax, ax
je 0x42d9e1
mov edx, dword [0x8ef594]
mov eax, dword [0x8de30c]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 4], eax
fild dword [esp + 4]
fmul qword [0x715680]
call fcn.005f275c
mov ecx, dword [0x8ccbc8]
mov edx, dword [0x8ef590]
add ecx, eax
mov eax, dword [0x8de310]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 4], eax
mov dword [0x8ccbc8], ecx
fild dword [esp + 4]
fmul qword [0x715680]
call fcn.005f275c
add dword [0x8ccbcc], eax
push 2
call esi
test ax, ax
je 0x42da72
mov eax, dword [0x8ebfd8]
fld dword [eax + 0x38]
mov ecx, dword [0x8de310]
fld dword [eax + 0x44]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x10], eax
sub ecx, dword [0x8ef590]
mov dword [esp + 4], ecx
fild dword [esp + 4]
fstp dword [esp + 4]
fxch st(1)
fmul dword [esp + 4]
fstp dword [esp + 0x14]
fmul dword [esp + 4]
fld dword [esp + 0x10]
fmul dword [esp + 4]
fld dword [esp + 0x14]
fadd st(0), st(0)
fstp dword [esp + 8]
fxch st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fadd st(0), st(0)
fld dword [0x8eaf7c]
fsub dword [esp + 8]
fstp dword [0x8eaf7c]
fld dword [0x8eaf80]
fsub dword [esp + 0xc]
fstp dword [0x8eaf80]
fld dword [0x8eaf84]
fsub st(1)
fstp dword [0x8eaf84]
fstp st(0)
push 0x26
call esi
test ax, ax
je 0x42da97
push 0x10
call esi
test ax, ax
jne 0x42daad
mov eax, dword [0x8ebfd8]
fld dword [eax + 0x38]
mov edx, dword [eax + 0x50]
fld dword [eax + 0x44]
jmp 0x42db6c
push 0x28
call esi
test ax, ax
je 0x42db35
push 0x10
call esi
test ax, ax
je 0x42dabe
fld dword [0x8eaf84]
fadd dword [0x71566c]
jmp 0x42dbc6
mov eax, dword [0x8ebfd8]
fld dword [eax + 0x38]
fld dword [eax + 0x44]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x1c], eax
fxch st(1)
fmul dword [0x71566c]
fstp dword [esp + 8]
fmul dword [0x71566c]
fld dword [esp + 0x1c]
fmul dword [0x71566c]
fld dword [esp + 8]
fadd st(0), st(0)
fstp dword [esp + 8]
fxch st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fadd st(0), st(0)
fld dword [0x8eaf7c]
fsub dword [esp + 8]
fstp dword [0x8eaf7c]
fld dword [0x8eaf80]
fsub dword [esp + 0xc]
fstp dword [0x8eaf80]
fld dword [0x8eaf84]
fsub st(1)
fstp dword [0x8eaf84]
fstp st(0)
jmp 0x42dbcc
push 0x25
call esi
test ax, ax
je 0x42db55
mov eax, dword [0x8ebfd8]
mov ecx, dword [eax + 0x58]
fld dword [eax + 0x40]
fld dword [eax + 0x4c]
mov dword [esp + 0x1c], ecx
jmp 0x42dad0
push 0x27
call esi
test ax, ax
je 0x42dbcc
mov eax, dword [0x8ebfd8]
fld dword [eax + 0x40]
mov edx, dword [eax + 0x58]
fld dword [eax + 0x4c]
fxch st(1)
mov dword [esp + 0x1c], edx
fmul dword [0x71566c]
fstp dword [esp + 8]
fmul dword [0x71566c]
fld dword [esp + 0x1c]
fmul dword [0x71566c]
fld dword [esp + 8]
fadd st(0), st(0)
fstp dword [esp + 8]
fxch st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fadd st(0), st(0)
fld dword [esp + 8]
fadd dword [0x8eaf7c]
fstp dword [0x8eaf7c]
fld dword [esp + 0xc]
fadd dword [0x8eaf80]
fstp dword [0x8eaf80]
fadd dword [0x8eaf84]
fstp dword [0x8eaf84]
mov eax, dword [0x8de30c]
mov ecx, dword [0x8de310]
mov dword [0x8ef594], eax
mov dword [0x8ef590], ecx
pop esi
add esp, 0x1c
ret