Function at 0x10005a6e
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x5c
mov eax, 0x100687b2
call fcn.10066b97
mov ecx, dword [0x10083614]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x34], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10082ef0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
mov dword [ebp - 0x38], edi
test edi, edi
je 0x10005e09
cmp byte [0x100824c0], 0
je 0x10005e09
lea ecx, [ebp - 0x28]
call fcn.10065984
and dword [ebp - 4], 0
mov ecx, edi
call fcn.10002400
mov esi, eax
push esi
call fcn.10005e0f
test byte [ebx + 0x30], 1
pop ecx
jne 0x10005ae8
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10005e01
push ebx
call fcn.1000496d
pop ecx
test eax, eax
je 0x10005e01
mov ecx, dword [0x10082ef0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov ebx, eax
mov dword [ebp - 0x30], ebx
test esi, esi
je 0x10005e01
mov ecx, esi
call fcn.100048b0
cmp dword [eax], 0
je 0x10005e01
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.10002afd
push eax
push ebx
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.10004760
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
mov bl, al
call fcn.10017f29
test bl, bl
je 0x10005e01
push esi
call fcn.100055cb
pop ecx
test al, al
jne 0x10005e01
push esi
call fcn.10005442
pop ecx
test al, al
jne 0x10005e01
push esi
call fcn.100052a4
pop ecx
test al, al
jne 0x10005e01
push esi
call fcn.100059b9
pop ecx
test al, al
je 0x10005ba1
mov ecx, edi
call fcn.10005846
cmp byte [eax], 0
jne 0x10005ba1
cmp byte [0x100824c2], 0
je 0x10005e01
cmp byte [0x100824c3], 0
jne 0x10005bba
mov ecx, dword [ebp - 0x30]
call fcn.10005355
test al, al
je 0x10005e01
mov ecx, dword [0x10082ef8]
push str.weapon_recoil_scale
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, edi
mov esi, eax
call fcn.10004697
mov ecx, dword [esi]
mov edi, eax
mov ecx, dword [ecx + 0x30]
mov dword [ebp - 0x2c], ecx
mov ecx, esi
call dword [ebp - 0x2c]
push ecx
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
lea eax, [ebp - 0x1c]
movss dword [esp], xmm0
mov ecx, edi
push eax
call fcn.100017d9
movss xmm2, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x18]
mulss xmm2, dword [0x10083748]
movzx eax, byte [0x10083745]
mulss xmm1, dword [0x1008374c]
mov ebx, dword [ebp - 0x34]
mov byte [ebp - 4], 2
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm1
sub eax, 0
je 0x10005cd5
sub eax, 1
jne 0x10005d71
movss xmm0, dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
addss xmm0, dword [ebx + 0x14]
addss xmm1, dword [ebx + 0x10]
addss xmm2, dword [ebx + 0xc]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call fcn.1006595e
mov esi, dword [ebp - 0x30]
push ebx
push esi
mov byte [ebp - 4], 6
call fcn.10004e2a
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
call fcn.10004bee
mov esi, eax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 7
call fcn.10002afd
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 8
push ecx
push esi
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.1005eea2
mov esi, eax
lea ecx, [ebp - 0x50]
mov edi, 0x10083060
add esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10017f29
lea ecx, [ebp - 0x5c]
call fcn.10017f29
lea ecx, [ebp - 0x68]
jmp 0x10005d60
movss xmm0, dword [ebp - 0x14]
lea ecx, [ebp - 0x44]
addss xmm0, dword [ebx + 0x14]
addss xmm1, dword [ebx + 0x10]
addss xmm2, dword [ebx + 0xc]
sub esp, 0xc
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call fcn.1006595e
push dword [0x10083750]
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 3
call fcn.10004c8f
mov esi, eax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 4
call fcn.10002afd
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
push ecx
push esi
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.1005eea2
mov esi, eax
lea ecx, [ebp - 0x68]
mov edi, 0x10083060
add esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10017f29
lea ecx, [ebp - 0x5c]
call fcn.10017f29
lea ecx, [ebp - 0x50]
call fcn.10017f29
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 2
call fcn.10017f29
movss xmm1, dword [0x1008373c]
lea edx, [ebx + 0xc]
movss xmm0, dword [0x10083064]
divss xmm0, xmm1
movss xmm2, dword [0x10083060]
movss dword [0x10083064], xmm0
movss xmm0, dword [0x10083068]
divss xmm0, xmm1
divss xmm2, xmm1
movss dword [0x10083068], xmm0
movss dword [0x10083060], xmm2
addss xmm2, dword [edx]
movss dword [edx], xmm2
movss xmm0, dword [0x10083064]
addss xmm0, dword [edx + 4]
movss dword [edx + 4], xmm0
movss xmm0, dword [0x10083068]
addss xmm0, dword [edx + 8]
movss dword [edx + 8], xmm0
cmp byte [0x10083744], 0
jne 0x10005df9
mov ecx, dword [0x10083614]
push edx
mov eax, dword [ecx]
call dword [eax + 0x4c]
lea ecx, [ebp - 0x1c]
call fcn.10017f29
lea ecx, [ebp - 0x28]
call fcn.10017f29
call fcn.10066b55
ret