Function at 0x100176e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x824
mov eax, dword [0x1020b06c]
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 - 0x816], al
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
cvtss2sd xmm0, dword [eax + 8]
mulsd xmm0, qword [0x101fa9d0]
divsd xmm0, qword [0x101fab00]
cvtsd2ss xmm0, xmm0
movss dword [0x10611034], xmm0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
cvtss2sd xmm0, dword [edx + 0xc]
mulsd xmm0, qword [0x101fa9d0]
divsd xmm0, qword [0x101fab00]
cvtsd2ss xmm0, xmm0
movss dword [0x10611038], xmm0
cvtss2sd xmm0, dword [0xe7c3d4]
movsd xmm1, qword [0x101fa9d0]
divsd xmm1, xmm0
cvtss2sd xmm0, dword [0x10611034]
divsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [0x1061103c], xmm0
cvtss2sd xmm0, dword [0xe7c3d8]
movsd xmm1, qword [0x101fa9d0]
divsd xmm1, xmm0
cvtss2sd xmm0, dword [0x10611038]
divsd xmm1, xmm0
cvtsd2ss xmm0, xmm1
movss dword [0x10611040], xmm0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
movss xmm0, dword [ecx]
addss xmm0, dword [eax + 8]
movss xmm1, dword [0x101fa9e8]
mulss xmm1, dword [0xe7c3d4]
addss xmm0, xmm1
movss dword [0x10611044], xmm0
mov dword [ebp - 0x81c], 0x7ff
mov ecx, dword [ebp - 0x81c]
push ecx
push 0
lea edx, [ebp - 0x804]
push edx
call fcn.1019bb90
add esp, 0xc
lea eax, [ebp + 0x14]
mov dword [ebp - 0x820], eax
mov ecx, dword [ebp - 0x820]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x81c]
push eax
lea ecx, [ebp - 0x804]
push ecx
call sym.Client_Clean_.dll_vsprintf_s
add esp, 0x10
mov dword [ebp - 0x824], eax
mov dword [ebp - 0x820], 0
movzx edx, byte [ebp - 0x816]
test edx, edx
je 0x10017bda
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
je 0x10017a4a
mov ecx, dword [ebp + 0xc]
movsx esi, word [ecx + 6]
mov edx, dword [ebp + 0xc]
add esi, dword [edx + 8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp esi, eax
ja 0x100178e4
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
cmp ecx, 0x40
jge 0x100178e4
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
test eax, eax
jne 0x100178d1
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 4], 0x40
jmp 0x100178d8
mov edx, dword [ebp + 0xc]
mov byte [edx + 4], 0x41
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
cmp eax, 1
je 0x10017900
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 4]
cmp edx, 0x40
jne 0x100179a5
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb444]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb83c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
jmp 0x10017a45
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb378]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb860]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
jmp 0x10017bd5
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
cmp eax, 0x40
jne 0x10017a66
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 4], 1
mov byte [ebp - 0x815], 1
jmp 0x10017a80
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
cmp eax, 0x41
jne 0x10017a80
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 4], 0
mov byte [ebp - 0x815], 1
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 4]
cmp eax, 1
jne 0x10017b35
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb40c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb848]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
jmp 0x10017bd5
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb40c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb830]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
jmp 0x10017d65
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
cmp ecx, 0x40
jne 0x10017bf6
mov edx, dword [ebp + 0xc]
mov byte [edx + 4], 1
mov byte [ebp - 0x815], 1
jmp 0x10017c10
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
cmp ecx, 0x41
jne 0x10017c10
mov edx, dword [ebp + 0xc]
mov byte [edx + 4], 0
mov byte [ebp - 0x815], 1
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 4]
cmp ecx, 1
jne 0x10017cc5
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb40c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb84c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
jmp 0x10017d65
push 0
push ecx
movss xmm0, dword [0x10611040]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061103c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb40c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb838]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb120]
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
push 0xf1008
mov ecx, 0x1023dc90
call fcn.10016f70
lea ecx, [ebp - 0x804]
push ecx
lea edx, [ebp - 0x814]
push edx
mov ecx, 0x1023dc90
call fcn.10018a20
lea eax, [ebp - 0x804]
push eax
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
cvttss2si eax, dword [edx + 4]
push eax
cvttss2si ecx, dword [0x10611044]
push ecx
mov edx, dword [0x10261170]
push edx
push 0x10261170
call fcn.10066c20
add esp, 0x28
mov al, byte [ebp - 0x815]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1014d1c5
mov esp, ebp
pop ebp
ret