Function at 0x10055490
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
mov eax, dword [0x10137008]
xor eax, esp
mov dword [esp + 0x84], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [0x10141f04]
push esi
mov esi, ecx
push edi
mov ecx, dword [eax + 0xd8]
mov dword [esp + 0x88], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
je 0x100554ed
mov eax, 0x64
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.100eeb4d
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x1c], 4
jne 0x100554fb
mov edi, dword [esi + 0x40]
jmp 0x100554fe
mov edi, dword [esi + 0x44]
mov eax, dword [esi + 0x4c]
inc edi
test eax, eax
je 0x10055518
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x10055518
mov edi, dword [esi + 0x48]
cmp byte [esi + 0xb], 0
je 0x100555d6
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [0x10141b00]
test al, 1
jne 0x100555bf
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x30]
push 0x16
or eax, 1
mov dword [esp + 0x34], 0
push str.CBasePlayer__m_iHealth
mov dword [0x10141b00], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
call fcn.10004660
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x44]
mov dword [0x10141af0], eax
cmp edx, 0x10
jb 0x100555b8
mov ecx, dword [esp + 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100555ae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100558c7
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov esi, dword [esp + 0x88]
mov eax, dword [0x10141af0]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx]
add eax, 5
cmp eax, edi
cmovl edi, eax
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [esi + 0x18]
vdivss xmm1, xmm0, dword [0x101337b8]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edi
vmulss xmm0, xmm1, xmm0
vcvttss2si edi, xmm0
cmp edi, 0x64
jle 0x10055606
mov dword [esp + 0x24], 0x64
jmp 0x10055614
mov eax, 1
cmp edi, eax
cmovl edi, eax
mov dword [esp + 0x24], edi
mov esi, dword [ebp + 0xc]
vmovss xmm0, dword [esi]
vmulss xmm0, xmm0, dword [0x101335a0]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x28], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0x1c], xmm0
vmovsd xmm0, qword [esp + 0x28]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0x10], xmm0
vmovss xmm0, dword [esi + 4]
vmulss xmm0, xmm0, dword [0x101335a0]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x28], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0x18], xmm0
vmovsd xmm0, qword [esp + 0x28]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0x84], xmm0
vmovss xmm0, dword [esi + 8]
vmulss xmm0, xmm0, dword [0x101335a0]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x28], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0xc], xmm0
vmovsd xmm0, qword [esp + 0x28]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vmovss xmm2, dword [esp + 0x1c]
vxorps xmm3, xmm2, xmmword [0x10133b20]
vmovss xmm1, dword [esp + 0x18]
vmovss xmm7, dword [esp + 0xc]
vxorps xmm5, xmm1, xmmword [0x10133b20]
vcvtsd2ss xmm6, xmm0, xmm0
vmovss xmm0, dword [esp + 0x84]
vmulss xmm0, xmm0, dword [esp + 0x10]
vmovss dword [esp + 0x54], xmm0
vmulss xmm0, xmm1, dword [esp + 0x10]
mov eax, dword [0x10141f04]
vmovss dword [esp + 0x64], xmm0
vmulss xmm2, xmm7, xmm2
vmulss xmm0, xmm2, dword [esp + 0x84]
mov edi, dword [eax + 0x14c]
mov eax, dword [0x10141ab8]
vmovss dword [esp + 0x70], xmm3
vmulss xmm3, xmm6, dword [0x10133894]
vmulss xmm1, xmm5, xmm3
vsubss xmm0, xmm1, xmm0
vmulss xmm1, xmm3, dword [esp + 0x84]
vmovss dword [esp + 0x50], xmm0
vmulss xmm0, xmm2, dword [esp + 0x18]
vmulss xmm2, xmm6, dword [esp + 0x1c]
vsubss xmm0, xmm1, xmm0
vmulss xmm1, xmm2, dword [esp + 0x84]
vmovss dword [esp + 0x60], xmm0
vmulss xmm0, xmm7, dword [0x10133894]
vmulss xmm0, xmm0, dword [esp + 0x10]
vmovss dword [esp + 0x6c], xmm0
vmulss xmm0, xmm5, xmm7
vsubss xmm0, xmm1, xmm0
vmulss xmm1, xmm2, dword [esp + 0x18]
vmovss dword [esp + 0x5c], xmm0
vmulss xmm0, xmm7, dword [esp + 0x84]
vsubss xmm0, xmm1, xmm0
vmovss dword [esp + 0x68], xmm0
vmulss xmm0, xmm6, dword [esp + 0x10]
vmovss dword [esp + 0x74], xmm0
test al, 1
jne 0x10055830
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x30]
push 0x2d
or eax, 1
mov dword [esp + 0x34], 0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [0x10141ab8], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
call fcn.10004660
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x44]
mov dword [0x10141ad4], eax
cmp edx, 0x10
jb 0x10055830
mov ecx, dword [esp + 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10055826
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100558c7
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141ad4]
mov eax, dword [eax + 4]
movzx edi, word [edi + eax]
mov eax, dword [0x10141f04]
mov dword [esp + 0x48], edi
mov eax, dword [eax + 0x14c]
mov dword [esp + 0xc], eax
mov eax, dword [0x10141c94]
test al, 1
jne 0x100558d7
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x30]
push 0x1e
or eax, 1
mov dword [esp + 0x34], 0
push str.CWeaponCSBase__m_flRecoilIndex
mov dword [0x10141c94], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
call fcn.10004660
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x44]
mov dword [0x10141c68], eax
cmp edx, 0x10
jb 0x100558d7
mov ecx, dword [esp + 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100558cd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100558cd
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 [0x10141c68]
xor esi, esi
mov ecx, dword [esp + 0xc]
cmp edi, 0x1f
mov edi, dword [esp + 0x88]
mov dword [esp + 0x18], 0
mov eax, dword [eax + 4]
vmovss xmm0, dword [ecx + eax]
sete al
vmovss dword [esp + 0x1c], xmm0
mov byte [esp + 0x28], al
nop dword [eax]
mov eax, dword [0x10141f04]
inc esi
push esi
mov ecx, dword [eax + 0x150]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 0xf8]
mov dword [esp + 0x18], ecx
call eax
mov eax, dword [0x10141f04]
vmovss xmm0, dword [0x10133680]
vmovss dword [esp], xmm0
push ecx
mov eax, dword [eax]
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x14], eax
vmovss dword [esp], xmm0
call dword [esp + 0x14]
mov eax, dword [0x10141f04]
vmovss xmm0, dword [0x10133738]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
mov eax, dword [eax]
fstp dword [esp + 0x18]
mov dword [esp + 0x14], eax
vmovss dword [esp], xmm0
call dword [esp + 0x14]
mov eax, dword [0x10141f04]
add esp, 8
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x84], xmm0
vmovss dword [esp + 0x88], xmm0
mov ecx, dword [eax + 0xf0]
fstp dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jle 0x100559e6
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [esp + 0x14]
vmulss xmm0, xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x8c]
push eax
vcvttss2si eax, xmm0
push eax
mov eax, dword [0x10141f04]
push 0
push dword [esp + 0x58]
mov eax, dword [eax + 0x44]
call eax
jmp 0x10055a46
mov eax, dword [0x10141f04]
sub esp, 8
vmovss xmm0, dword [0x10133680]
mov eax, dword [eax]
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x1c], eax
vmovss dword [esp], xmm0
call dword [esp + 0x1c]
mov eax, dword [0x10141f04]
vmovss xmm0, dword [0x10133738]
vmovss dword [esp + 4], xmm0
fstp dword [esp + 0x8c]
mov eax, dword [eax]
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x1c], eax
vmovss dword [esp], xmm0
call dword [esp + 0x1c]
fstp dword [esp + 0x90]
add esp, 8
vmovss xmm3, dword [esp + 0x1c]
vmovss xmm0, dword [0x101336f4]
vcomiss xmm0, xmm3
jbe 0x10055ab2
cmp word [esp + 0x48], 0x1c
jne 0x10055ab2
vcomiss xmm0, xmm3
vmovss xmm1, dword [esp + 0x10]
vmovss xmm2, dword [esp + 0x84]
mov eax, 3
jbe 0x10055a97
nop dword [eax]
dec eax
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vcomiss xmm0, xmm3
vmulss xmm1, xmm1, xmm1
vmulss xmm2, xmm2, xmm2
ja 0x10055a80
vmovss xmm0, dword [0x10133680]
vsubss xmm3, xmm0, xmm1
vsubss xmm1, xmm0, xmm2
vmovss dword [esp + 0x84], xmm1
jmp 0x10055ac1
vmovss xmm3, dword [esp + 0x10]
vmovss xmm1, dword [esp + 0x84]
mov eax, dword [0x10141ef4]
vmulss xmm0, xmm3, dword [eax + 0xd8]
vmovss dword [esp + 0xc], xmm0
vmulss xmm0, xmm1, dword [eax + 0xd4]
vmovss dword [esp + 0x10], xmm0
vmovss xmm0, dword [esp + 0x88]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [esp + 0x10]
vmovss dword [esp + 0x14], xmm0
vmovss xmm0, dword [esp + 0x20]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm1, xmm0, dword [esp + 0xc]
vaddss xmm0, xmm1, dword [esp + 0x14]
vmovss dword [esp + 0x58], xmm0
vmovss xmm0, dword [esp + 0x88]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vcvtsd2ss xmm1, xmm0, xmm0
vmulss xmm0, xmm1, dword [esp + 0x10]
vmovss dword [esp + 0x14], xmm0
vmovss xmm0, dword [esp + 0x20]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vmovss xmm3, dword [esp + 0x58]
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [esp + 0xc]
vaddss xmm2, xmm0, dword [esp + 0x14]
vmulss xmm0, xmm2, dword [esp + 0x50]
vaddss xmm1, xmm0, dword [esp + 0x54]
vmulss xmm0, xmm3, dword [esp + 0x5c]
vaddss xmm4, xmm1, xmm0
vmulss xmm0, xmm2, dword [esp + 0x60]
vaddss xmm1, xmm0, dword [esp + 0x64]
vmulss xmm0, xmm3, dword [esp + 0x68]
vaddss xmm5, xmm1, xmm0
vmulss xmm0, xmm2, dword [esp + 0x6c]
vaddss xmm1, xmm0, dword [esp + 0x70]
vmulss xmm0, xmm3, dword [esp + 0x74]
vaddss xmm2, xmm1, xmm0
vmulss xmm1, xmm5, xmm5
vmulss xmm0, xmm4, xmm4
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
vmovss dword [esp + 0xc], xmm4
vmovss dword [esp + 0x20], xmm5
vmovss dword [esp + 0x10], xmm2
ja 0x10055bec
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10055bf1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vmovss xmm2, dword [esp + 0xc]
vmovss xmm3, dword [esp + 0x20]
vmovss xmm4, dword [esp + 0x10]
vcvtsd2ss xmm0, xmm0, xmm0
vucomiss xmm0, dword [0x10133560]
lahf
test ah, 0x44
jnp 0x10055c21
vdivss xmm2, xmm2, xmm0
vdivss xmm3, xmm3, xmm0
vdivss xmm4, xmm4, xmm0
mov eax, dword [0x10141f04]
lea ecx, [esp + 0x78]
push ecx
sub esp, 0xc
mov ecx, esp
mov edx, dword [eax + 0x150]
push dword [esp + 0x38]
vmovss xmm1, dword [edx + 0x108]
vmulss xmm0, xmm1, xmm2
vaddss xmm0, xmm0, dword [eax + 0x108]
vmovss dword [esp + 0x8c], xmm0
vmulss xmm0, xmm1, xmm3
vaddss xmm0, xmm0, dword [eax + 0x10c]
vmovss dword [esp + 0x90], xmm0
vmulss xmm0, xmm1, xmm4
vaddss xmm0, xmm0, dword [eax + 0x110]
vmovss dword [esp + 0x94], xmm0
vmovq xmm0, qword [eax + 0x108]
mov eax, dword [eax + 0x110]
vmovq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x60]
push edx
mov eax, dword [eax]
push dword [eax]
mov eax, dword [0x10141b50]
push dword [eax]
lea eax, [esp + 0x50]
push eax
call fcn.100626d0
mov eax, dword [esp + 0x34]
cmp eax, 1
jl 0x10055cd0
cmp dword [edi + 0x18], 1
jl 0x10055cc5
cmp eax, dword [esp + 0x24]
jl 0x10055cd0
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x10055cd4
mov eax, dword [esp + 0x18]
cmp esi, 0xff
jb 0x10055910
mov ecx, dword [esp + 0x8c]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, dword [0x101337f0]
vmulss xmm0, xmm0, dword [0x101337b8]
pop edi
pop esi
xor ecx, esp
vcvttss2si eax, xmm0
call fcn.100eeb4d
mov esp, ebp
pop ebp
ret 0xc