Function at 0x10012da0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
cmp byte [0x1024a295], 0
push ebx
push ebp
push esi
push edi
mov ebp, edx
mov dword [esp + 0x14], ecx
je 0x10013067
mov esi, dword [0x10210294]
mov eax, dword [0x1024a280]
cmp esi, 3
ja case.0x10012dca.0
jmp dword [esi*4 + 0x10013070]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10012e02
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10012e02
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10013067
mov edi, dword [0x10249c14]
test edi, edi
je 0x10013067
mov eax, dword [0x10249c10]
test eax, eax
jne 0x10012e4f
mov edx, 0xe80c2f78
mov ecx, 0x101e7481
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov dword [0x10249c10], eax
cmp dword [eax + edi], 0
jle 0x10013067
call fcn.1000ae70
cmp eax, 9
je 0x10013067
cmp eax, 8
je 0x10013067
mov eax, dword [0x10249c64]
mov esi, dword [0x10249c14]
mov edi, esi
test eax, eax
jne 0x10012eb5
mov edx, 0xe80c2f78
mov ecx, 0x101e75b1
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov esi, dword [0x10249c14]
mov dword [0x10249c64], eax
test byte [eax + edi], 1
jne 0x10013067
movss xmm1, dword [esi + 0x118]
movss xmm0, dword [esi + 0x114]
mulss xmm0, xmm0
mov dword [esp + 0x18], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x10], xmm0
sqrtss xmm0, dword [esp + 0x10]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x10209374]
comiss xmm0, dword [esp + 0x18]
jae 0x10013067
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x30]
mov ebx, eax
mov edx, eax
shr ebx, 3
mov ecx, eax
shr edx, 0xa
shr ecx, 9
and bl, 1
shr eax, 4
and dl, 1
and cl, 1
test al, 1
je 0x10012f73
movss xmm0, dword [0x102095d8]
mov dword [0x1024a244], 0xc3340000
test cl, cl
je 0x10012f5b
movss xmm0, dword [0x102095e0]
mov dword [0x1024a244], 0xc3610000
jmp 0x10012fdc
test dl, dl
je 0x10012fdc
movss xmm0, dword [0x102095d4]
mov dword [0x1024a244], 0xc3070000
jmp 0x10012fdc
test cl, cl
je 0x10012fa1
movss xmm0, dword [0x10209428]
mov dword [0x1024a244], 0x42b40000
test bl, bl
je 0x10012fdc
movss xmm0, dword [0x10209404]
mov dword [0x1024a244], 0x42340000
jmp 0x10012fdc
test dl, dl
je 0x10012fcf
movss xmm0, dword [0x102095cc]
mov dword [0x1024a244], 0xc2b40000
test bl, bl
je 0x10012fdc
movss xmm0, dword [0x102095c0]
mov dword [0x1024a244], 0xc2340000
jmp 0x10012fdc
mov dword [0x1024a244], 0
xorps xmm0, xmm0
addss xmm0, dword [ebp + 4]
mov eax, dword [0x10249c14]
movss dword [ebp + 4], xmm0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
movq xmm0, qword [eax + 0x114]
movq qword [esp + 0x18], xmm0
fld dword [esp + 0x1c]
fld dword [esp + 0x18]
fpatan
movss xmm0, dword [ebp + 4]
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
mulss xmm1, dword [0x10209414]
subss xmm0, xmm1
call fcn.10012630
movaps xmm2, xmm0
comiss xmm2, dword [0x10209114]
jbe 0x10013047
movss xmm1, dword [0x102095f0]
jmp 0x1001304f
movss xmm1, dword [0x102094f0]
movss dword [esi + 0x28], xmm1
movss xmm0, dword [ebp + 4]
subss xmm0, xmm2
call fcn.10012630
movss dword [ebp + 4], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret