Function at 0x1000a227
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x104
cmp byte [0x10132b28], 0
push ebx
push esi
push edi
mov dword [esp + 0xc], ecx
je 0x1000a894
mov edx, dword [0x10131148]
mov eax, dword [0x10132b2c]
cmp edx, 3
ja case.0x1000a220.0
jmp dword [edx*4 + 0x1000a89c]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1000a258
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1000a258
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1000a894
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1000a894
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1000a894
mov edi, dword [0x10132ac8]
test edi, edi
je 0x1000a894
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x1000a2cf
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ac4], eax
cmp dword [eax + edi], 0
jle 0x1000a894
call fcn.1000a160
cmp eax, 8
je 0x1000a894
call fcn.1000a160
cmp eax, 9
je 0x1000a894
call fcn.1000a160
cmp eax, 0xa
je 0x1000a894
cmp byte [0x10131094], 0
jne 0x1000a894
mov edi, dword [0x10132ac8]
mov edx, 0xe80c2f78
mov ecx, 0x101114dd
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [0x10132a94]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
and edx, 0xfff
push edx
mov eax, dword [eax + 0xc]
call eax
mov ebx, eax
test ebx, ebx
je 0x1000a894
mov eax, dword [0x10132b30]
test eax, eax
jne 0x1000a397
mov edx, 0xe80c2f78
mov ecx, 0x10111681
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x1011142d
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132b30], eax
cmp dword [eax + ebx], 0
jle 0x1000a894
mov ecx, dword [0x10132aa4]
mov eax, dword [ecx]
mov edi, dword [eax + 8]
mov eax, dword [0x10132a84]
test eax, eax
jne 0x1000a3e9
mov edx, 0xe80c2f78
mov ecx, 0x10111441
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x10111459
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [0x10132aa4]
mov dword [0x10132a84], eax
movsx eax, word [eax + ebx]
push eax
call edi
test eax, eax
je 0x1000a894
mov edi, dword [0x10132ab0]
test edi, edi
jne 0x1000a433
mov edx, 0xe80c2f78
mov ecx, 0x10111415
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x1011142d
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov edi, eax
mov dword [0x10132ab0], edi
mov ecx, dword [0x10132ac8]
mov eax, dword [0x10132acc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x1000a482
mov edx, 0xe80c2f78
mov ecx, 0x101114d1
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113e5
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [0x10132ac8]
mov dword [0x10132acc], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
movss xmm0, dword [edi + ebx]
movd xmm1, dword [eax + ecx]
mov eax, dword [0x10132a9c]
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
comiss xmm0, xmm1
ja 0x1000a894
mov eax, dword [0x10132ac0]
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x18], vtable.trace_filter.0
test eax, eax
jne 0x1000a542
mov edx, 0xe80c2f78
mov ecx, 0x101114b1
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113e5
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ac0], eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
movss xmm1, dword [ecx + eax]
addss xmm1, dword [edi + 0xc]
movss xmm2, dword [edi + 0x10]
addss xmm2, dword [ecx + eax + 4]
mulss xmm1, dword [0x1012c780]
mulss xmm2, dword [0x1012c780]
movaps xmm0, xmm1
movaps xmm1, xmm2
call fcn.100d7b20
mov ecx, dword [0x10132aa4]
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xe
movaps xmm1, xmm0
movaps xmm3, xmm2
shufps xmm1, xmm0, 1
shufps xmm3, xmm2, 1
mov eax, dword [ecx]
mulss xmm3, xmm1
mulss xmm2, xmm1
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [0x10132a84]
movaps xmmword [esp + 0xf0], xmm2
movups xmmword [esp + 0xe0], xmm0
movups xmmword [esp + 0xd0], xmm3
test eax, eax
jne 0x1000a5fb
mov edx, 0xe80c2f78
mov ecx, 0x10111441
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x10111459
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [0x10132aa4]
mov dword [0x10132a84], eax
movsx eax, word [eax + ebx]
push eax
call dword [esp + 0x10]
mov ecx, dword [0x10132ac8]
movss xmm0, dword [eax + 0x10c]
lea eax, [esp + 0x104]
push eax
movss dword [esp + 0x10], xmm0
mov dword [esp + 0x20], ecx
call fcn.10004950
movss xmm0, dword [esp + 0xc]
movups xmm2, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xf0]
movss xmm4, dword [eax]
movss xmm5, dword [eax + 4]
movss xmm6, dword [eax + 8]
movups xmm3, xmmword [esp + 0xe0]
mov dword [esp + 0x3c], 0
mulss xmm1, xmm0
mov byte [esp + 0x65], 1
mulss xmm2, xmm0
mulss xmm3, xmm0
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x30], xmm2
mulss xmm1, xmm1
movaps xmm0, xmm3
xorps xmm0, xmmword [0x1012cb90]
mulss xmm2, xmm2
mulss xmm3, xmm3
addss xmm1, xmm2
movss dword [esp + 0x38], xmm0
xorps xmm0, xmm0
addss xmm1, xmm3
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1000a6af
mov byte [esp + 0x65], 0
mov ecx, dword [0x10132a98]
lea edx, [esp + 0x78]
push edx
lea edx, [esp + 0x1c]
mov dword [esp + 0x5c], 0
push edx
mov dword [esp + 0x5c], 0
lea edx, [esp + 0x28]
mov dword [esp + 0x58], 0
mov byte [esp + 0x6c], 1
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
movss dword [esp + 0x28], xmm4
movss dword [esp + 0x2c], xmm5
movss dword [esp + 0x30], xmm6
mov dword [esp + 0x34], 0
mov eax, dword [ecx]
push 0x46004003
push edx
call dword [eax + 0x14]
mov ecx, dword [esp + 0xc4]
test ecx, ecx
je 0x1000a894
mov eax, dword [0x10132ac4]
mov ebx, ecx
test eax, eax
jne 0x1000a76c
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [esp + 0xc4]
mov dword [0x10132ac4], eax
cmp dword [ebx + eax], 0
jle 0x1000a894
mov edx, dword [0x10132a90]
mov ebx, ecx
test edx, edx
jne 0x1000a7ba
mov edx, 0xe80c2f78
mov ecx, 0x10111409
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113c9
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [esp + 0xc4]
mov edx, eax
mov dword [0x10132a90], edx
mov eax, dword [0x10132ac8]
add ebx, edx
mov dword [esp + 0xc], eax
test edx, edx
jne 0x1000a801
mov edx, 0xe80c2f78
mov ecx, 0x10111409
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113c9
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [esp + 0xc4]
mov edx, eax
mov dword [0x10132a90], edx
mov esi, dword [esp + 0xc]
mov eax, dword [ebx]
cmp eax, dword [esi + edx]
je 0x1000a894
mov eax, dword [0x10132a88]
mov ebx, ecx
test eax, eax
jne 0x1000a850
mov edx, 0xe80c2f78
mov ecx, 0x10111471
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [esp + 0xc4]
mov dword [0x10132a88], eax
cmp byte [eax + ebx], 0
jne 0x1000a894
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x1000a894
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x278]
call eax
test al, al
je 0x1000a894
mov eax, dword [esp + 0xbc]
cmp eax, 1
je 0x1000a890
cmp eax, 2
je 0x1000a890
cmp eax, 3
jne 0x1000a894
or dword [edi + 0x30], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret