Function at 0x1009754d
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
mov ecx, 0x108cb312
call fcn.1006d309
call fcn.1006d115
cmp dword [eax + 0x130], 0
jg 0x100974dc
call fcn.1006d115
movzx eax, byte [eax + 0xc]
test eax, eax
jne 0x100974dc
call fcn.1006d115
cmp dword [eax + 0x134], 0
jle 0x100974e5
mov byte [0x10348d78], 1
jmp 0x100974ec
mov byte [0x10348d78], 0
call fcn.1006d115
movzx eax, byte [eax + 0x128]
test eax, eax
jne 0x100975f9
call fcn.1006d115
mov eax, dword [eax + 0x124]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
sub ecx, 1
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 4
ja case.default.0x10097524
mov edx, dword [ebp - 0x44]
jmp dword [edx*4 + 0x10097b54]
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1014def0]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp case.default.0x10097524
mov eax, dword [0x10166a20]
xorps xmm0, xmm0
movss dword [eax + 0x10], xmm0
jmp case.default.0x10097524
mov eax, dword [0x108c6358]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x1014def4]
mov ecx, dword [0x10166a20]
addss xmm0, dword [ecx + 0x10]
mov edx, dword [0x10166a20]
movss dword [edx + 0x10], xmm0
jmp case.default.0x10097524
movzx eax, byte [0x1016501f]
test eax, eax
je 0x1009759d
mov dword [ebp - 0x44], 0x5a
jmp 0x100975a4
mov dword [ebp - 0x44], 0xffffffa6
cvtsi2ss xmm0, dword [ebp - 0x44]
mov ecx, dword [0x10166a20]
addss xmm0, dword [ecx + 0x10]
mov edx, dword [0x10166a20]
movss dword [edx + 0x10], xmm0
jmp case.default.0x10097524
movzx eax, byte [0x1016501f]
test eax, eax
je 0x100975d5
mov dword [ebp - 0x44], 0x5a
jmp 0x100975dc
mov dword [ebp - 0x44], 0xffffffa6
cvtsi2ss xmm0, dword [ebp - 0x44]
mov ecx, dword [0x10166a20]
addss xmm0, dword [ecx + 0x10]
mov edx, dword [0x10166a20]
movss dword [edx + 0x10], xmm0
jmp 0x1009761c
call fcn.1006d115
cmp dword [eax + 0x12c], 0
jne 0x1009760e
call fcn.1006ab59
jmp 0x1009761c
mov eax, dword [0x10166a20]
push eax
call fcn.1006bbb2
add esp, 4
call fcn.1006d115
cmp dword [eax + 0x130], 0
jle 0x10097b4d
movzx eax, byte [0x1016501c]
test eax, eax
jne 0x10097642
mov dword [ebp - 0x44], 1
jmp 0x10097649
mov dword [ebp - 0x44], 0
mov cl, byte [ebp - 0x44]
mov byte [0x1016501c], cl
call fcn.1006d115
cmp dword [eax + 0x130], 1
jne 0x10097784
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x24]
ucomiss xmm0, dword [0x1014dd78]
lahf
test ah, 0x44
jnp 0x1009768c
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x1009771a
movzx eax, byte [0x1016501c]
test eax, eax
je 0x100976cd
mov ecx, dword [0x10166a20]
mov edx, dword [ecx + 0x30]
and edx, 4
je 0x100976b4
movss xmm0, dword [0x1014ea28]
movss dword [ebp - 0x44], xmm0
jmp 0x100976c1
movss xmm0, dword [0x1014ea24]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x48], xmm0
jmp 0x10097700
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x100976e9
movss xmm0, dword [0x1014ded4]
movss dword [ebp - 0x4c], xmm0
jmp 0x100976f6
movss xmm0, dword [0x1014e9dc]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x48], xmm0
mov edx, dword [0x10166a20]
movss xmm0, dword [edx + 0x24]
addss xmm0, dword [ebp - 0x48]
mov eax, dword [0x10166a20]
movss dword [eax + 0x24], xmm0
movzx eax, byte [0x10165009]
test eax, eax
jne 0x1009777f
movzx eax, byte [0x1016501d]
test eax, eax
jne 0x10097739
mov dword [ebp - 0x44], 1
jmp 0x10097740
mov dword [ebp - 0x44], 0
mov cl, byte [ebp - 0x44]
mov byte [0x1016501d], cl
movzx eax, byte [0x1016501d]
test eax, eax
je 0x1009775d
mov dword [ebp - 0x44], 0x78
jmp 0x10097764
mov dword [ebp - 0x44], 0xffffff88
cvtsi2ss xmm0, dword [ebp - 0x44]
mov ecx, dword [0x10166a20]
addss xmm0, dword [ecx + 0x10]
mov edx, dword [0x10166a20]
movss dword [edx + 0x10], xmm0
jmp 0x10097b4d
call fcn.1006d115
cmp dword [eax + 0x130], 2
je 0x100977a3
call fcn.1006d115
movzx eax, byte [eax + 0xc]
test eax, eax
je 0x1009789e
mov ecx, 0x10348d48
call fcn.1006daa7
movzx eax, al
test eax, eax
je 0x10097822
mov byte [0x10165009], 0
call fcn.1006d115
movzx eax, byte [eax + 0x158]
test eax, eax
je 0x10097820
call fcn.1006d115
mov eax, dword [eax + 0x154]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
je 0x10097803
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1014ea18]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097820
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [0x1014ea18]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097899
movzx eax, byte [0x10165009]
test eax, eax
jne 0x10097899
mov byte [0x10348d79], 0
call fcn.1006d115
movzx eax, byte [eax + 0x158]
test eax, eax
je 0x10097899
call fcn.1006d115
mov eax, dword [eax + 0x154]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
je 0x1009787c
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [0x1014ea14]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097899
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1014ea14]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097b4d
call fcn.1006d115
cmp dword [eax + 0x130], 3
jne 0x100979db
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x24]
ucomiss xmm0, dword [0x1014dd78]
lahf
test ah, 0x44
jnp 0x100978d8
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x10097966
movzx eax, byte [0x1016501c]
test eax, eax
je 0x10097919
mov ecx, dword [0x10166a20]
mov edx, dword [ecx + 0x30]
and edx, 4
je 0x10097900
movss xmm0, dword [0x1014ea28]
movss dword [ebp - 0x44], xmm0
jmp 0x1009790d
movss xmm0, dword [0x1014ea24]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x48], xmm0
jmp 0x1009794c
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x10097935
movss xmm0, dword [0x1014ded4]
movss dword [ebp - 0x4c], xmm0
jmp 0x10097942
movss xmm0, dword [0x1014e9dc]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x48], xmm0
mov edx, dword [0x10166a20]
movss xmm0, dword [edx + 0x24]
addss xmm0, dword [ebp - 0x48]
mov eax, dword [0x10166a20]
movss dword [eax + 0x24], xmm0
movzx eax, byte [0x10165009]
test eax, eax
jne 0x100979d6
call fcn.1006d115
movzx eax, byte [eax + 0x158]
test eax, eax
je 0x100979d6
call fcn.1006d115
mov eax, dword [eax + 0x154]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
je 0x100979b9
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1014ea30]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x100979d6
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
addss xmm0, dword [0x1014ea18]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097b4d
call fcn.1006d115
cmp dword [eax + 0x130], 4
jne 0x10097b4d
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x24]
ucomiss xmm0, dword [0x1014dd78]
lahf
test ah, 0x44
jnp 0x10097a15
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x10097aa3
movzx eax, byte [0x1016501c]
test eax, eax
je 0x10097a56
mov ecx, dword [0x10166a20]
mov edx, dword [ecx + 0x30]
and edx, 4
je 0x10097a3d
movss xmm0, dword [0x1014ea28]
movss dword [ebp - 0x44], xmm0
jmp 0x10097a4a
movss xmm0, dword [0x1014ea24]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x48], xmm0
jmp 0x10097a89
mov eax, dword [0x10166a20]
mov ecx, dword [eax + 0x30]
and ecx, 4
je 0x10097a72
movss xmm0, dword [0x1014ded4]
movss dword [ebp - 0x4c], xmm0
jmp 0x10097a7f
movss xmm0, dword [0x1014e9dc]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x48], xmm0
mov edx, dword [0x10166a20]
movss xmm0, dword [edx + 0x24]
addss xmm0, dword [ebp - 0x48]
mov eax, dword [0x10166a20]
movss dword [eax + 0x24], xmm0
movzx eax, byte [0x10165009]
test eax, eax
jne 0x10097b4d
call fcn.1006d115
movzx eax, byte [eax + 0x158]
test eax, eax
je 0x10097b4d
call fcn.1006d115
mov eax, dword [eax + 0x154]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
je 0x10097b17
call fcn.1006d115
cvtsi2ss xmm0, dword [eax + 0x148]
movss dword [ebp - 0x44], xmm0
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x44]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
jmp 0x10097b4d
call fcn.1006d115
cvtsi2ss xmm0, dword [eax + 0x148]
movss dword [ebp - 0x44], xmm0
mov eax, dword [0x10166a20]
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [ebp - 0x44]
mov ecx, dword [0x10166a20]
movss dword [ecx + 0x10], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret