Function at 0x1000d0b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push edi
push 0x25
mov edi, ecx
call esi
test al, 1
je 0x1000d0ef
cmp byte [0x102ca546], 0
sete al
xor cl, cl
xor dl, dl
mov byte [0x102ca546], al
xor bl, bl
mov byte [0x102ca540], cl
mov byte [0x102ca548], dl
mov byte [0x102ca544], bl
jmp 0x1000d1bb
push 0x27
call esi
test al, 1
je 0x1000d12f
cmp byte [0x102ca540], 0
sete cl
xor al, al
xor dl, dl
mov byte [0x102ca540], cl
xor bl, bl
mov byte [0x102ca546], al
mov byte [0x102ca548], dl
mov byte [0x102ca544], bl
test cl, cl
je 0x1000d15e
movss xmm2, dword [0x1005e58c]
jmp 0x1000d1d0
push 0x26
call esi
test al, 1
je 0x1000d173
cmp byte [0x102ca548], 0
sete dl
xor cl, cl
xor al, al
mov byte [0x102ca548], dl
xor bl, bl
mov byte [0x102ca540], cl
mov byte [0x102ca546], al
mov byte [0x102ca544], bl
test dl, dl
jne 0x1000d1cd
test bl, bl
je 0x1000d1cd
movss xmm0, dword [0x1005e574]
movaps xmm2, xmm0
jmp 0x1000d1d8
push 0x28
call esi
test al, 1
je 0x1000d1a4
cmp byte [0x102ca544], 0
sete bl
xor cl, cl
xor dl, dl
mov byte [0x102ca544], bl
xor al, al
mov byte [0x102ca540], cl
mov byte [0x102ca548], dl
mov byte [0x102ca546], al
jmp 0x1000d162
mov al, byte [0x102ca546]
mov cl, byte [0x102ca540]
mov dl, byte [0x102ca548]
mov bl, byte [0x102ca544]
test al, al
je 0x1000d11e
movss xmm2, dword [0x1005e540]
jmp 0x1000d1d0
xorps xmm2, xmm2
movss xmm0, dword [0x1005e574]
cmp byte [0x102ca61d], 0
xorps xmm3, xmm3
sete ch
mov byte [0x102ca61d], ch
test bl, bl
jne case.default.0x1000d21a
test cl, cl
jne case.default.0x1000d21a
test dl, dl
jne case.default.0x1000d21a
test al, al
jne case.default.0x1000d21a
mov eax, dword [0x100e5170]
dec eax
cmp eax, 3
ja case.default.0x1000d21a
jmp dword [eax*4 + 0x1000d388]
movss xmm2, dword [0x100e519c]
pop edi
pop esi
movaps xmm0, xmm2
pop ebx
ret 4
cmp byte [0x100e516b], 0
je 0x1000d255
cmp byte [0x102ca4f1], 0
jne 0x1000d255
movss xmm2, dword [0x1005e5a4]
pop edi
pop esi
movaps xmm0, xmm2
pop ebx
ret 4
test ch, ch
je 0x1000d273
mov eax, dword [0x100e5194]
add eax, 0xb4
pop edi
pop esi
pop ebx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
ret 4
mov eax, 0xb4
sub eax, dword [0x100e5194]
pop edi
pop esi
pop ebx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
ret 4
cmp byte [0x102ca4f1], 0
jne 0x1000d2b9
movss xmm2, dword [0x100e51a0]
comiss xmm2, xmm0
jbe case.default.0x1000d21a
subss xmm2, dword [0x1005e5a4]
pop edi
pop esi
pop ebx
movaps xmm0, xmm2
ret 4
movss xmm2, dword [0x100e519c]
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jnp case.default.0x1000d21a
subss xmm2, dword [0x1005e5a4]
pop edi
pop esi
pop ebx
movaps xmm0, xmm2
ret 4
cmp byte [0x102ca4f1], 0
je 0x1000d30e
mov byte [0x102ca542], 1
mov cl, byte [0x102ca549]
mov byte [edi + 0xc], cl
movss xmm2, dword [0x100e519c]
test cl, cl
je 0x1000d330
mulss xmm2, dword [0x1005e5e0]
jmp 0x1000d338
cmp byte [0x102ca542], 0
je 0x1000d2ef
cmp byte [0x102ca549], 0
mov byte [0x102ca542], 0
sete cl
mov byte [0x102ca549], cl
jmp 0x1000d2f5
mulss xmm2, dword [0x1005e3f8]
test cl, cl
mov eax, 0xffffffa7
mov edx, 0x59
cmovne eax, edx
cmp byte [0x102ca4f1], 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm2, xmm0
jne 0x1000d373
movss xmm0, dword [0x100e51a0]
test cl, cl
je 0x1000d36f
mulss xmm0, dword [0x1005e5e4]
addss xmm2, xmm0
movss xmm1, dword [edi + 0x10]
ucomiss xmm1, xmm3
lahf
pop edi
pop esi
movaps xmm0, xmm2
pop ebx
ret 4