Function at 0x1006c1b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [edi + 0x74], 0
mov eax, dword [0x10269a4c]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x68]
mov dword [ebp - 4], eax
mov eax, dword [0x10269970]
vmovss xmm0, dword [eax + 0x20]
mov eax, dword [0x1026997c]
vmovss dword [ebp - 0x20], xmm0
cmp dword [eax + 0x4d30], 0
jne 0x1006c1f9
cmp byte [edi + 0x6c], 0
sete al
mov byte [edi + 0x6c], al
cmp dword [edi + 0x64], 0
je 0x1006c8eb
mov ecx, dword [0x10269974]
lea edx, [ebp - 0x1c]
vxorps xmm0, xmm0, xmm0
vmovss dword [ebp - 0x14], xmm0
vmovss dword [ebp - 0x18], xmm0
vmovss dword [ebp - 0x1c], xmm0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x48]
call eax
vmovss xmm0, dword [ebp - 0x18]
mov ecx, dword [sym.imp.USER32.dll_GetKeyState]
vmovss dword [esi], xmm0
mov eax, dword [edi + 0x54]
test eax, eax
je 0x1006c263
push eax
call ecx
test ax, ax
je 0x1006c25d
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x1016f178]
pop edi
vmovss dword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [sym.imp.USER32.dll_GetKeyState]
mov eax, dword [edi + 0x58]
test eax, eax
je 0x1006c28a
push eax
call ecx
test ax, ax
je 0x1006c28a
vmovss xmm0, dword [esi]
vsubss xmm0, xmm0, dword [0x1016f178]
pop edi
vmovss dword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret 8
push esi
mov ecx, edi
call fcn.100692a0
push esi
mov ecx, edi
call fcn.10069f90
test al, al
jne case.default.0x1006c2af
mov eax, dword [edi + 0x64]
dec eax
cmp eax, 5
ja case.default.0x1006c2af
jmp dword [eax*4 + 0x1006c8f4]
mov eax, dword [0x10269970]
vmovss xmm0, dword [eax + 0x10]
vmulss xmm0, xmm0, dword [0x1016f17c]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
fld qword [0x1016f360]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp dword [esi]
jmp case.default.0x1006c2af
mov eax, dword [0x10269970]
vmovss xmm0, dword [eax + 0x10]
vmulss xmm0, xmm0, dword [0x1016f380]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
fld qword [0x1016f360]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
fstp dword [esi]
jmp case.default.0x1006c2af
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [0x1016f17c]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vmovss xmm0, dword [0x1016f198]
mov dword [ebp - 0x14], eax
vmovss dword [esp], xmm0
call dword [ebp - 0x14]
fstp dword [esi]
add esp, 8
jmp case.default.0x1006c2af
vmovss xmm0, dword [0x1016f378]
jmp 0x1006c43a
mov eax, dword [0x10269a30]
mov eax, dword [eax + 0x48]
cmp eax, 0x64
je 0x1006c428
test eax, eax
jle 0x1006c428
mov ecx, edi
call fcn.1006b250
test al, al
je 0x1006c428
vmovss xmm0, dword [ebp - 0x20]
vdivss xmm0, xmm0, dword [0x10128f2c]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
fld qword [0x1016f368]
mov word [edi + 0x6d], 0x101
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
call fcn.10104a40
mov dword [edi + 0x84], eax
cmp eax, 1
jne 0x1006c3ca
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x1016f17c]
vmovss dword [esi], xmm0
cmp dword [edi + 0x84], 2
vmovss xmm1, dword [0x1016f37c]
jne 0x1006c3e3
vaddss xmm0, xmm1, dword [esi]
vmovss dword [esi], xmm0
cmp dword [edi + 0x84], 3
jne 0x1006c3fc
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x10129e20]
vmovss dword [esi], xmm0
cmp dword [edi + 0x84], 4
jne 0x1006c411
vmovss xmm0, dword [esi]
vsubss xmm0, xmm0, xmm1
vmovss dword [esi], xmm0
cmp dword [edi + 0x84], 5
jne case.default.0x1006c2af
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x10125328]
jmp 0x1006c43a
mov word [edi + 0x6d], 0
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x1016f17c]
vmovss dword [esi], xmm0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
cmp byte [ecx + 0x1b], 0
je 0x1006c48a
cmp byte [edi + 0x6e], 0
jne 0x1006c48a
cmp eax, 2
jne 0x1006c45c
vmovss xmm2, dword [edi + 0x2c]
jmp 0x1006c461
vmovss xmm2, dword [edi + 0x24]
cmp byte [edi + 0x6c], 0
je 0x1006c471
vmovss xmm1, dword [0x101252a8]
jmp 0x1006c479
vmovss xmm1, dword [0x10129e50]
vmulss xmm0, xmm1, dword [edi + 0x28]
vaddss xmm0, xmm0, xmm2
vaddss xmm0, xmm0, dword [esi]
vmovss dword [esi], xmm0
cmp byte [ecx + 0x1c], 0
je 0x1006c51e
cmp eax, 2
jne 0x1006c4a0
vmovss xmm0, dword [edi + 0x2c]
jmp 0x1006c4a5
vmovss xmm0, dword [edi + 0x24]
mov eax, dword [0x10269964]
sub esp, 8
cmp byte [edi + 0x6c], 0
vmovss dword [ebp - 0x14], xmm0
mov eax, dword [eax]
je 0x1006c4dd
vmovss xmm0, dword [0x10125348]
vmovss dword [esp + 4], xmm0
vmovss xmm0, dword [0x10107b88]
mov dword [ebp - 0x10], eax
vmovss dword [esp], xmm0
call dword [ebp - 0x10]
jmp 0x1006c4fe
vmovss xmm0, dword [0x10107b88]
vmovss dword [esp + 4], xmm0
vmovss xmm0, dword [0x10125348]
mov dword [ebp - 0x10], eax
vmovss dword [esp], xmm0
call dword [ebp - 0x10]
vmovss xmm0, dword [edi + 0x28]
mov ecx, dword [ebp - 0xc]
add esp, 8
fstp dword [ebp - 0x10]
vmulss xmm0, xmm0, dword [ebp - 0x10]
vaddss xmm0, xmm0, dword [ebp - 0x14]
vaddss xmm0, xmm0, dword [esi]
vmovss dword [esi], xmm0
cmp byte [ecx + 0x1d], 0
je 0x1006c8eb
cmp byte [edi + 0x6e], 0
jne 0x1006c8eb
cmp byte [ecx + 0x1e], 0
jne 0x1006c6fc
vmovss xmm1, dword [ebp - 0x20]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [ebp - 4]
vdivss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 8], xmm0
fld qword [ebp - 8]
fld qword [0x1016f368]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIfmod
mov ecx, dword [ebp - 0xc]
fstp qword [ebp - 8]
vcvttsd2si eax, qword [ebp - 8]
cmp byte [ecx + 0x1f], 0
jne 0x1006c5c2
cmp eax, 1
jne 0x1006c582
vmovss xmm0, dword [ecx + 0x30]
jmp 0x1006c5b0
cmp eax, 2
jne 0x1006c58e
vmovss xmm0, dword [ecx + 0x34]
jmp 0x1006c5b0
cmp eax, 3
jne 0x1006c59a
vmovss xmm0, dword [ecx + 0x38]
jmp 0x1006c5b0
cmp eax, 4
jne 0x1006c5a6
vmovss xmm0, dword [ecx + 0x3c]
jmp 0x1006c5b0
cmp eax, 5
jne 0x1006c5b8
vmovss xmm0, dword [ecx + 0x40]
vaddss xmm0, xmm0, dword [esi]
vmovss dword [esi], xmm0
cmp byte [ecx + 0x1f], 0
je 0x1006c6f2
test eax, eax
jne 0x1006c5fb
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
vxorps xmm1, xmm1, xmm1
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
mov dword [ebp - 4], eax
vmovss dword [esp], xmm1
call dword [ebp - 4]
vmovss xmm0, dword [esi]
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
jmp 0x1006c6e8
cmp eax, 1
jne 0x1006c63d
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
vxorps xmm0, xmm0, xmmword [0x101253e0]
vxorps xmm1, xmm1, xmm1
mov eax, dword [eax]
vmovss dword [esp + 4], xmm1
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
vmovss xmm0, dword [esi]
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
jmp 0x1006c6e8
cmp eax, 2
jne 0x1006c674
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
vxorps xmm1, xmm1, xmm1
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
mov dword [ebp - 4], eax
vmovss dword [esp], xmm1
call dword [ebp - 4]
vmovss xmm0, dword [esi]
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
jmp 0x1006c6e8
cmp eax, 3
jne 0x1006c6b3
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
vxorps xmm0, xmm0, xmmword [0x101253e0]
vxorps xmm1, xmm1, xmm1
mov eax, dword [eax]
vmovss dword [esp + 4], xmm1
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
vmovss xmm0, dword [esi]
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
jmp 0x1006c6e8
cmp eax, 4
jne 0x1006c6f2
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
vxorps xmm1, xmm1, xmm1
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
mov dword [ebp - 4], eax
vmovss dword [esp], xmm1
call dword [ebp - 4]
vmovss xmm0, dword [esi]
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
add esp, 8
vmovss dword [esi], xmm0
cmp byte [ecx + 0x1e], 0
je 0x1006c8eb
cmp byte [edi + 0x6e], 0
jne 0x1006c8eb
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [0x101252f8]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
add esp, 8
fstp dword [ebp - 4]
vcvttss2si eax, dword [ebp - 4]
cmp byte [ecx + 0x1f], 0
jne 0x1006c78c
test eax, eax
jne 0x1006c74c
vmovss xmm0, dword [ecx + 0x30]
jmp 0x1006c77a
cmp eax, 1
jne 0x1006c758
vmovss xmm0, dword [ecx + 0x34]
jmp 0x1006c77a
cmp eax, 2
jne 0x1006c764
vmovss xmm0, dword [ecx + 0x38]
jmp 0x1006c77a
cmp eax, 3
jne 0x1006c770
vmovss xmm0, dword [ecx + 0x3c]
jmp 0x1006c77a
cmp eax, 4
jne 0x1006c782
vmovss xmm0, dword [ecx + 0x40]
vaddss xmm0, xmm0, dword [esi]
vmovss dword [esi], xmm0
cmp byte [ecx + 0x1f], 0
je 0x1006c8eb
test eax, eax
jne 0x1006c7d3
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmmword [0x101253e0]
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
vmovss xmm0, dword [esi]
add esp, 8
fstp dword [ebp - 4]
vaddss xmm0, xmm0, dword [ebp - 4]
vmovss dword [esi], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 1
jne 0x1006c81b
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmmword [0x101253e0]
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
add esp, 8
fstp dword [ebp - 4]
vmovss xmm0, dword [ebp - 4]
vaddss xmm0, xmm0, dword [esi]
pop edi
vmovss dword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 2
jne 0x1006c863
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmmword [0x101253e0]
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
add esp, 8
fstp dword [ebp - 4]
vmovss xmm0, dword [ebp - 4]
vaddss xmm0, xmm0, dword [esi]
pop edi
vmovss dword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 3
jne 0x1006c8ab
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmmword [0x101253e0]
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
add esp, 8
fstp dword [ebp - 4]
vmovss xmm0, dword [ebp - 4]
vaddss xmm0, xmm0, dword [esi]
pop edi
vmovss dword [esi], xmm0
pop esi
mov esp, ebp
pop ebp
ret 8
cmp eax, 4
jne 0x1006c8eb
mov eax, dword [0x10269964]
sub esp, 8
vmovss xmm0, dword [ecx + 0x30]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmmword [0x101253e0]
mov dword [ebp - 4], eax
vmovss dword [esp], xmm0
call dword [ebp - 4]
fstp dword [ebp - 4]
vmovss xmm0, dword [ebp - 4]
vaddss xmm0, xmm0, dword [esi]
add esp, 8
vmovss dword [esi], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8