Function at 0x1009e800
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x10269a34]
sub esp, 0x28
cmp byte [eax + 0xd], 0
je 0x1009eb4e
mov eax, dword [0x102699d4]
push edi
mov edi, dword [eax]
test edi, edi
je 0x1009eb4d
mov eax, dword [0x10269a24]
push esi
test al, 1
jne 0x1009e8a7
mov esi, dword [0x10269968]
lea ecx, [ebp - 0x28]
push 0x16
or eax, 1
mov dword [ebp - 0x18], 0
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_iHealth
mov dword [0x10269a24], eax
vmovdqu xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0
call fcn.10002ab0
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x14]
mov dword [0x10269a20], eax
cmp ecx, 0xf
jbe 0x1009e8a7
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009e89d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009e92c
push ecx
push edx
call fcn.101042db
add esp, 8
mov eax, dword [0x10269a20]
mov eax, dword [eax + 4]
cmp dword [edi + eax], 0
jle 0x1009eb4c
mov eax, dword [0x10269a1c]
test al, 1
jne 0x1009e93c
mov esi, dword [0x10269968]
lea ecx, [ebp - 0x28]
push 0x18
or eax, 1
mov dword [ebp - 0x18], 0
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_lifeState
mov dword [0x10269a1c], eax
vmovdqu xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0
call fcn.10002ab0
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [ebp - 0x14]
mov dword [0x10269a18], eax
cmp ecx, 0xf
jbe 0x1009e93c
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009e932
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1009e932
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101042db
add esp, 8
mov eax, dword [0x10269a18]
mov eax, dword [eax + 4]
cmp byte [edi + eax], 0
jne 0x1009eb4c
mov ecx, dword [0x10269974]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1009eb4c
mov eax, dword [0x10269964]
vxorps xmm1, xmm1, xmm1
vmovq xmm0, qword [eax + 0x134]
mov edi, dword [eax + 0x13c]
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 0x1009eb4c
vmovss xmm0, dword [ebp - 0x18]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1009eb4c
vmovss xmm0, dword [ebp - 0x14]
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1009eb4c
mov eax, dword [0x10269a34]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push dword [eax + 0x28]
call esi
test ax, ax
jne 0x1009e9ef
vmovss xmm0, dword [0x1026a1bc]
vucomiss xmm0, dword [0x10107b84]
lahf
test ah, 0x44
jnp 0x1009eb4c
mov eax, dword [0x10269a34]
push dword [eax + 0x28]
call esi
test ax, ax
mov eax, dword [0x10269970]
vmovss xmm0, dword [eax + 0x14]
je 0x1009ea1a
vmulss xmm0, xmm0, dword [0x101252f0]
vaddss xmm2, xmm0, dword [0x1026a1bc]
jmp 0x1009ea2e
vmulss xmm1, xmm0, dword [0x101252f0]
vmovss xmm0, dword [0x1026a1bc]
vsubss xmm2, xmm0, xmm1
vmovss xmm0, dword [0x10107b88]
vxorps xmm1, xmm1, xmm1
vcomiss xmm1, xmm2
mov eax, 0x1026a1bc
lea ecx, [ebp - 4]
cmovbe ecx, eax
lea eax, [ebp - 8]
vcomiss xmm2, xmm0
vmovss dword [0x1026a1bc], xmm2
cmovbe eax, ecx
vmovss dword [ebp - 8], xmm0
vmovss dword [ebp - 4], xmm1
vmovss xmm0, dword [eax]
mov eax, dword [0x1026999c]
vmovss dword [0x1026a1bc], xmm0
vmovss dword [ebp - 8], xmm0
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, dword [0x102699d4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x1026999c]
push eax
call esi
mov ecx, dword [0x10269970]
mov esi, eax
vmovss xmm0, dword [ecx + 0x10]
vaddss xmm0, xmm0, dword [0x10125284]
vmovss dword [esi + 0x18], xmm0
vmovss xmm0, dword [ebp - 8]
vmulss xmm0, xmm0, dword [0x10129e14]
vmaxss xmm0, xmm0, dword [0x101252e8]
vsubss xmm0, xmm0, dword [0x10107b88]
vaddss xmm0, xmm0, dword [0x1016f180]
vmovss dword [esi + 0x10], xmm0
mov eax, dword [0x10269a58]
vcvttss2si eax, dword [eax + 0x1ec]
mov byte [esi + 0x14], al
mov eax, dword [0x10269a58]
vcvttss2si eax, dword [eax + 0x1f0]
mov byte [esi + 0x15], al
mov eax, dword [0x10269a58]
vcvttss2si eax, dword [eax + 0x1f4]
mov byte [esi + 0x16], al
mov byte [esi + 0x17], 4
mov eax, dword [0x102699d4]
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 [0x10129e20]
mov dword [esi + 0x24], eax
mov dword [esi + 0xc], edi
vmovss dword [esi + 0x3c], xmm0
mov dword [esi + 0x28], 1
pop esi
pop edi
mov esp, ebp
pop ebp
ret