Function at 0x1008c7d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x10141f08]
sub esp, 0x28
cmp byte [eax + 0xd], 0
push esi
push edi
je 0x1008cac9
mov eax, dword [0x10141b50]
mov edi, dword [eax]
test edi, edi
je 0x1008cac9
mov eax, dword [0x10141b00]
test al, 1
jne 0x1008c875
mov esi, dword [0x10141ef0]
lea ecx, [ebp - 0x28]
push 0x16
or eax, 1
mov dword [ebp - 0x28], 0
push str.CBasePlayer__m_iHealth
mov dword [0x10141b00], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
call fcn.10004660
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [ebp - 0x14]
mov dword [0x10141af0], eax
cmp edx, 0x10
jb 0x1008c875
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008c86b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008c8f8
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141af0]
mov eax, dword [eax + 4]
cmp dword [edi + eax], 0
jle 0x1008cac9
mov eax, dword [0x10141adc]
test al, 1
jne 0x1008c908
mov esi, dword [0x10141ef0]
lea ecx, [ebp - 0x28]
push 0x18
or eax, 1
mov dword [ebp - 0x28], 0
push str.CBasePlayer__m_lifeState
mov dword [0x10141adc], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
call fcn.10004660
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [ebp - 0x14]
mov dword [0x10141aec], eax
cmp edx, 0x10
jb 0x1008c908
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008c8fe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008c8fe
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141aec]
mov eax, dword [eax + 4]
cmp byte [edi + eax], 0
jne 0x1008cac9
mov ecx, dword [0x10141b24]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1008cac9
mov eax, dword [0x10141f04]
vxorps xmm1, xmm1, xmm1
vmovss dword [ebp - 4], xmm1
vmovq xmm0, qword [eax + 0x120]
mov edi, dword [eax + 0x128]
vmovq qword [ebp - 0x10], xmm0
vmovq qword [ebp - 0x1c], xmm0
vmovss xmm0, dword [ebp - 0x1c]
vucomiss xmm0, xmm1
mov dword [ebp - 0x14], edi
lahf
test ah, 0x44
jnp 0x1008cac9
vmovss xmm0, dword [ebp - 0x18]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1008cac9
vmovss xmm0, dword [ebp - 0x14]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1008cac9
mov eax, dword [0x10141f08]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push dword [eax + 0x20]
call esi
test ax, ax
jne 0x1008c9c0
vmovss xmm0, dword [0x10141dc8]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1008cac9
mov eax, dword [0x10141f08]
push dword [eax + 0x20]
call esi
test ax, ax
mov eax, dword [0x10141b18]
vmovss xmm0, dword [eax + 0x14]
je 0x1008c9eb
vmulss xmm0, xmm0, dword [0x101336f4]
vaddss xmm1, xmm0, dword [0x10141dc8]
jmp 0x1008c9ff
vmulss xmm1, xmm0, dword [0x101336f4]
vmovss xmm0, dword [0x10141dc8]
vsubss xmm1, xmm0, xmm1
vmovss xmm0, dword [0x10133680]
vcomiss xmm1, xmm0
ja 0x1008ca1b
vxorps xmm0, xmm0, xmm0
vcomiss xmm0, xmm1
ja 0x1008ca20
vmovaps xmm0, xmm1
vmovss dword [ebp - 4], xmm0
mov eax, dword [0x10141b64]
vmovss dword [0x10141dc8], xmm0
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, dword [0x10141b50]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10141b64]
push eax
call esi
mov ecx, dword [0x10141b18]
mov esi, eax
vmovss xmm1, dword [ebp - 4]
vmovss xmm0, dword [ecx + 0x10]
vaddss xmm0, xmm0, dword [0x101335bc]
vmovss dword [esi + 0x18], xmm0
vmulss xmm0, xmm1, dword [0x10133784]
vmaxss xmm0, xmm0, dword [0x101336d8]
vsubss xmm0, xmm0, dword [0x10133680]
vmovss dword [esi + 0x10], xmm0
mov dword [esi + 0x14], 0x6af00ff
mov eax, dword [0x10141b50]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
vmovq xmm0, qword [ebp - 0x10]
and dword [esi], 3
vmovq qword [esi + 4], xmm0
vmovss xmm0, dword [0x10133804]
mov dword [esi + 0x24], eax
mov dword [esi + 0xc], edi
vmovss dword [esi + 0x3c], xmm0
mov dword [esi + 0x28], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret