Function at 0x1000e560
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
test edi, edi
je 0x1000e981
cmp dword [edi + 0x28], 0
jne 0x1000e981
mov ecx, edi
call fcn.10016da0
test al, al
je 0x1000e981
cmp dword [edi + 0x30], 5
je 0x1000e981
push 0
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.10016d20
cmp dword [ebp - 0x20], 0
xorps xmm0, xmm0
jl 0x1000e674
lea ecx, [ebp - 0x20]
call fcn.10016f60
mov dword [esi + 8], eax
movsx eax, byte [0x10050c11]
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1000e603
mov cl, byte [esi]
test cl, cl
sete al
mov byte [esi], al
test cl, cl
jne 0x1000e5f9
mov ecx, edi
call fcn.100026c0
mov dword [esi + 4], eax
test eax, eax
je 0x1000e600
mov eax, dword [esi + 0xc]
mov dword [eax], 0
jmp 0x1000e603
mov dword [esi + 4], 0
mov byte [esi], 0
mov ecx, dword [esi + 8]
call fcn.10016ee0
test al, al
je 0x1000e645
mov eax, dword [0x10052520]
cmp dword [eax + 0x478], 0
ja 0x1000e645
cmp dword [esi + 4], 0
je 0x1000e64f
mov ecx, dword [0x10052548]
push 0xa
call fcn.10013150
movzx eax, al
mov ecx, edi
push eax
mov eax, dword [esi + 4]
push dword [eax + 8]
call fcn.10016330
test al, al
jne 0x1000e64f
mov byte [esi], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 8]
call fcn.10016ed0
mov ecx, dword [edi + 0x6e4]
xorps xmm0, xmm0
test al, al
je 0x1000e66c
cmp ecx, 0xb7
jmp 0x1000e672
cmp ecx, 0xb3
jne 0x1000e67e
mov byte [esi], 0
mov dword [esi + 4], 0
cmp byte [0x10050c80], 0
jne 0x1000e68f
movss xmm0, dword [0x10050c78]
mov eax, dword [esi + 0xc]
addss xmm0, dword [eax]
movss dword [eax], xmm0
movss xmm1, dword [0x10050c30]
comiss xmm0, xmm1
jbe 0x1000e6ab
movss dword [eax], xmm1
cmp byte [esi], 0
je 0x1000e988
mov ecx, dword [esi + 4]
call fcn.10016da0
test al, al
je 0x1000e988
sub esp, 8
lea ecx, [ebp - 0x70]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10015d00
sub esp, 8
lea ecx, [ebp - 0x30]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10015d00
mov ecx, dword [esi + 4]
call fcn.10016e20
mov ebx, dword [esi + 4]
test al, al
je 0x1000e717
mov ecx, ebx
call fcn.100028e0
movups xmm0, xmmword [eax + 0x5f68]
jmp 0x1000e71e
movups xmm0, xmmword [ebx + 0x5e90]
mov ecx, ebx
movups xmmword [ebp - 0x70], xmm0
call fcn.10016e20
test al, al
mov ecx, edi
cvttss2si eax, dword [0x10050c3c]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
je 0x1000e77f
call fcn.10016d20
mov ecx, eax
call fcn.10016f30
mov ecx, dword [esi + 4]
push eax
call fcn.10016e30
test al, al
je 0x1000e76b
mov ecx, 8
lea eax, [ebp - 0x40]
push ecx
mov ecx, dword [esi + 4]
push eax
call fcn.10016720
jmp 0x1000e7b1
mov ecx, 9
lea eax, [ebp - 0x60]
push ecx
mov ecx, dword [esi + 4]
push eax
call fcn.10016720
jmp 0x1000e7b1
call fcn.10016d20
mov ecx, eax
call fcn.10016f30
mov ecx, dword [esi + 4]
push eax
call fcn.10016e30
mov ecx, dword [esi + 4]
test al, al
je 0x1000e7a8
push 8
lea eax, [ebp - 0x40]
push eax
call fcn.10016720
jmp 0x1000e7b1
lea eax, [ebp - 0x60]
push eax
call fcn.10016ac0
movups xmm0, xmmword [eax]
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
movups xmmword [ebp - 0x30], xmm0
call fcn.10016ac0
mov ecx, eax
call fcn.10015dd0
mov ecx, eax
call fcn.10015fa0
fstp qword [ebp - 0x10]
mov ebx, 0x4a8b40
mov ecx, edi
call ebx
fdivr qword [ebp - 0x10]
mov ecx, edi
fstp dword [ebp - 4]
movss xmm0, dword [ebp - 4]
mulss xmm0, dword [0x1004b3f8]
cvttss2si eax, xmm0
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call ebx
push ecx
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
lea eax, [ebp - 0x40]
fstp dword [esp]
push dword [esi + 4]
mov ecx, edi
push eax
call fcn.10016380
cmp dword [ebp + 8], 0
mov ecx, eax
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x30], xmm0
jl 0x1000e867
movss xmm0, dword [ebp - 4]
sub esp, 0x14
mov eax, esp
movss dword [esp + 0x10], xmm0
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x70]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
lea eax, [ebp - 0x40]
push eax
call fcn.10016270
add esp, 0x28
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x30], xmm0
lea eax, [ebp - 0xa0]
mov ecx, edi
push eax
call fcn.10016ac0
mov esi, dword [esi + 0xc]
lea ecx, [ebp - 0x50]
sub esp, 8
movups xmm0, xmmword [eax]
mov dword [esp + 4], 0
movups xmmword [ebp - 0x40], xmm0
mov dword [esp], 0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [ebp - 0x60], xmm0
call fcn.10015d00
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x40]
call fcn.10015dd0
mov ecx, eax
call fcn.10016120
mov ecx, eax
call fcn.100160d0
mov ecx, dword [0x10052520]
lea eax, [ebp - 0x90]
push eax
call fcn.10015c60
movss xmm0, dword [ebp - 0x80]
sub esp, 8
mov dword [esp + 4], 0
movss dword [esp], xmm0
call fcn.10016210
movss xmm0, dword [ebp - 0x90]
fstp dword [ebp - 0xc]
mov dword [esp + 4], 0
movss dword [esp], xmm0
call fcn.10016210
fsubr dword [ebp - 0xc]
mov dword [esp + 4], 0x43340000
fstp dword [ebp - 0xc]
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
call fcn.10016210
movss xmm0, dword [ebp - 0x7c]
lea ecx, [ebp - 0x50]
subss xmm0, dword [ebp - 0x8c]
add esp, 4
fstp dword [ebp - 0x50]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [esi]
divss xmm0, dword [0x10050c30]
movss dword [esp], xmm0
call fcn.10015e70
movups xmm0, xmmword [ebp - 0x50]
mov ecx, dword [0x10052520]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.10015cb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [esi + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8