Function at 0x10018c80
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x840
mov eax, dword [0x1020a06c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov byte [ebp - 0x815], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
movss xmm0, dword [ecx + 0xc]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push ecx
movss xmm0, dword [eax + 8]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push ecx
movss xmm0, dword [edx + 4]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
movss xmm0, dword [ecx]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10018190
mov byte [ebp - 0x817], al
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
movss xmm0, dword [eax + 0x1c]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018d1d
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
movss xmm0, dword [edx + 0x1c]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x81c], xmm0
jmp 0x10018d2d
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x81c], xmm0
movss xmm0, dword [ebp - 0x81c]
movss dword [0x10610040], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
movss xmm0, dword [ecx + 0x20]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018d72
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
movss xmm0, dword [eax + 0x20]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x820], xmm0
jmp 0x10018d82
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x820], xmm0
movss xmm0, dword [ebp - 0x820]
movss dword [0x10610044], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
movss xmm0, dword [edx + 0x1c]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018dc7
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
movss xmm0, dword [ecx + 0x1c]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x824], xmm0
jmp 0x10018dd7
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x824], xmm0
movss xmm0, dword [ebp - 0x824]
movss dword [0x10610048], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
movss xmm0, dword [eax + 0x20]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018e1c
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
movss xmm0, dword [edx + 0x20]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x828], xmm0
jmp 0x10018e2c
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x828], xmm0
movss xmm0, dword [ebp - 0x828]
movss dword [0x1061004c], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
movss xmm0, dword [ecx + 0x1c]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018e71
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
movss xmm0, dword [eax + 0x1c]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x82c], xmm0
jmp 0x10018e81
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x82c], xmm0
movss xmm0, dword [ebp - 0x82c]
movss dword [0x10610050], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
movss xmm0, dword [edx + 0x20]
ucomiss xmm0, dword [0x101f9014]
lahf
test ah, 0x44
jnp 0x10018ec6
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
movss xmm0, dword [ecx + 0x20]
divss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x830], xmm0
jmp 0x10018ed6
movss xmm0, dword [0xe7c3d4]
movss dword [ebp - 0x830], xmm0
movss xmm0, dword [ebp - 0x830]
movss dword [0x10610054], xmm0
mov dword [ebp - 0x834], 0x7ff
mov edx, dword [ebp - 0x834]
push edx
push 0
lea eax, [ebp - 0x804]
push eax
call fcn.1019aa40
add esp, 0xc
lea ecx, [ebp + 0x14]
mov dword [ebp - 0x838], ecx
mov edx, dword [ebp - 0x838]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x834]
push ecx
lea edx, [ebp - 0x804]
push edx
call sym.Main.dll_vsprintf_s
add esp, 0x10
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x838], 0
lea eax, [ebp - 0x804]
push eax
lea ecx, [ebp - 0x814]
push ecx
mov ecx, 0x1023cc80
call fcn.10018a20
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
movzx ecx, byte [eax + 0x19]
cmp ecx, 4
jne 0x100190bd
push 0
push ecx
movss xmm0, dword [0x1061004c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10610048]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
push ecx
movss xmm0, dword [eax + 0x18]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
push ecx
movss xmm0, dword [edx + 0x14]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
push ecx
movss xmm0, dword [ecx + 0x10]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
push ecx
movss xmm0, dword [eax + 0xc]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x10]
push ecx
movss xmm0, dword [edx + 8]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
push ecx
movss xmm0, dword [ecx + 4]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push ecx
movss xmm0, dword [eax + 4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push ecx
movss xmm0, dword [edx]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx]
push edx
mov ecx, 0x1023cc80
call fcn.10016f70
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [ebp - 0x808]
divss xmm0, dword [0x101f98d0]
addss xmm0, dword [ecx + 4]
movss dword [0x10610050], xmm0
lea ecx, [ebp - 0x804]
push ecx
push 3
cvttss2si edx, dword [ebp - 0x808]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
cvttss2si edx, dword [ecx + 8]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x28]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x24]
push edx
movss xmm0, dword [0x10610050]
addss xmm0, dword [0x101f958c]
cvttss2si eax, xmm0
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
cvttss2si eax, dword [edx]
push eax
mov ecx, dword [0x10260160]
push ecx
push 0x10260160
call fcn.10066750
add esp, 0x28
mov al, byte [ebp - 0x815]
jmp 0x10019553
movzx edx, byte [ebp - 0x817]
test edx, edx
je 0x10019407
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
je 0x10019274
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov esi, dword [edx + 0x20]
add esi, dword [ecx + 0x1c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp esi, eax
ja 0x1001912a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
movzx ecx, byte [eax + 0x18]
test ecx, ecx
jne 0x1001912a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov byte [eax + 0x18], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x83c], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x83c]
mov dword [edx + 0x20], eax
push 0
push ecx
movss xmm0, dword [0x10610054]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10610050]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
push ecx
movss xmm0, dword [edx + 0x18]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
push ecx
movss xmm0, dword [ecx + 0x14]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
push ecx
movss xmm0, dword [eax + 0x10]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
push ecx
movss xmm0, dword [edx + 0xc]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
push ecx
movss xmm0, dword [ecx + 8]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
push ecx
movss xmm0, dword [eax + 4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push ecx
movss xmm0, dword [edx + 4]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
movss xmm0, dword [ecx]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
push ecx
mov ecx, 0x1023cc80
call fcn.10016f70
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
movss xmm0, dword [edx + 0xc]
subss xmm0, dword [ebp - 0x808]
divss xmm0, dword [0x101f98d0]
addss xmm0, dword [eax + 4]
movss dword [0x10610050], xmm0
lea eax, [ebp - 0x804]
push eax
push 3
cvttss2si ecx, dword [ebp - 0x808]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
cvttss2si ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x28]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x24]
push ecx
movss xmm0, dword [0x10610050]
addss xmm0, dword [0x101f958c]
cvttss2si edx, xmm0
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
cvttss2si edx, dword [ecx]
push edx
mov eax, dword [0x10260160]
push eax
push 0x10260160
call fcn.10066750
add esp, 0x28
jmp 0x10019402
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
movzx eax, byte [edx + 0x18]
test eax, eax
je 0x100192bc
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
movzx eax, byte [edx + 0x19]
test eax, eax
jne 0x10019297
mov byte [ebp - 0x816], 1
jmp 0x1001929e
mov byte [ebp - 0x816], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov al, byte [ebp - 0x816]
mov byte [edx + 0x19], al
mov byte [ebp - 0x815], 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov byte [edx + 0x18], 0
push 0
push ecx
movss xmm0, dword [0x1061004c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10610048]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
push ecx
movss xmm0, dword [ecx + 0x18]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
push ecx
movss xmm0, dword [eax + 0x14]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
push ecx
movss xmm0, dword [edx + 0x10]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
push ecx
movss xmm0, dword [ecx + 0xc]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
push ecx
movss xmm0, dword [eax + 8]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
push ecx
movss xmm0, dword [edx + 4]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
movss xmm0, dword [ecx + 4]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push ecx
movss xmm0, dword [eax]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
push eax
mov ecx, 0x1023cc80
call fcn.10016f70
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [ebp - 0x808]
divss xmm0, dword [0x101f98d0]
addss xmm0, dword [edx + 4]
movss dword [0x10610050], xmm0
lea edx, [ebp - 0x804]
push edx
push 3
cvttss2si eax, dword [ebp - 0x808]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
cvttss2si eax, dword [edx + 8]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x24]
push eax
movss xmm0, dword [0x10610050]
addss xmm0, dword [0x101f958c]
cvttss2si ecx, xmm0
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
cvttss2si ecx, dword [eax]
push ecx
mov edx, dword [0x10260160]
push edx
push 0x10260160
call fcn.10066750
add esp, 0x28
jmp 0x1001954d
push 0
push ecx
movss xmm0, dword [0x10610044]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10610040]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
push ecx
movss xmm0, dword [ecx + 0x18]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
push ecx
movss xmm0, dword [eax + 0x14]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
push ecx
movss xmm0, dword [edx + 0x10]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
push ecx
movss xmm0, dword [ecx + 0xc]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
push ecx
movss xmm0, dword [eax + 8]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
push ecx
movss xmm0, dword [edx + 4]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
movss xmm0, dword [ecx + 4]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
push ecx
movss xmm0, dword [eax]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
push eax
mov ecx, 0x1023cc80
call fcn.10016f70
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [ebp - 0x808]
divss xmm0, dword [0x101f98d0]
addss xmm0, dword [edx + 4]
movss dword [0x10610050], xmm0
lea edx, [ebp - 0x804]
push edx
push 3
cvttss2si eax, dword [ebp - 0x808]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
cvttss2si eax, dword [edx + 8]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x24]
push eax
movss xmm0, dword [0x10610050]
addss xmm0, dword [0x101f958c]
cvttss2si ecx, xmm0
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
cvttss2si ecx, dword [eax]
push ecx
mov edx, dword [0x10260160]
push edx
push 0x10260160
call fcn.10066750
add esp, 0x28
mov al, byte [ebp - 0x815]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1014c2d1
mov esp, ebp
pop ebp
ret