Function at 0x10018ee0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10101395
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
mov eax, dword [0x1017d040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.10016670
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
nop
cmp byte [0x1017d0ce], 0
je 0x10019160
push 0x6b
call esi
test al, 1
je 0x10018ffb
inc dword [0x101ada18]
lea ecx, [ebp - 0x2c]
sub esp, 8
mov eax, esp
mov dword [eax], str.Macro_recoil_increased:_
mov dword [eax + 4], 0x1a
call fcn.1001a1f0
sub esp, 0x10
mov dword [ebp - 4], 0
mov ecx, esp
mov dword [ebp - 0x30], esp
xorps xmm0, xmm0
push 0
movups xmmword [ecx], xmm0
push 0x1011425f
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.1000a670
sub esp, 0x18
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
call fcn.10008af0
mov edx, 0xbb8
mov byte [ebp - 4], 0
mov ecx, 4
call fcn.100988c0
mov dword [ebp - 4], 0xffffffff
add esp, 0x30
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x10018ffb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018ff1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019179
push ecx
push edx
call fcn.100fec39
add esp, 8
push 0x6d
call esi
test al, 1
je 0x100190b9
dec dword [0x101ada18]
lea ecx, [ebp - 0x2c]
sub esp, 8
mov eax, esp
mov dword [eax], str.Macro_recoil_decreased:_
mov dword [eax + 4], 0x1a
call fcn.1001a1f0
sub esp, 0x10
mov dword [ebp - 4], 2
mov ecx, esp
mov dword [ebp - 0x34], esp
xorps xmm0, xmm0
push 0
movups xmmword [ecx], xmm0
push 0x1011425f
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.1000a670
sub esp, 0x18
mov byte [ebp - 4], 3
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
call fcn.10008af0
mov edx, 0xbb8
mov byte [ebp - 4], 2
mov ecx, 4
call fcn.100988c0
mov dword [ebp - 4], 0xffffffff
add esp, 0x30
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x100190b9
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100190af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019179
push ecx
push edx
call fcn.100fec39
add esp, 8
cmp byte [0x1017d0ce], 0
je 0x10019160
cmp dword [0x101ad8a8], 0
jbe 0x10019160
cmp byte [0x1017d0cf], 0
jne 0x10019160
cmp dword [0x101ad8ac], 0
jbe 0x10019160
push 1
call esi
test ax, ax
jns 0x10019160
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x14
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.USER32.dll_GetCursorInfo]
test eax, eax
je 0x10019160
cmp dword [ebp - 0x24], 0
jne 0x10019160
cmp byte [0x101ad766], 0
je 0x1001913f
push 0
push 1
push 0x201
push dword [0x101ada04]
call edi
push 0
push 1
push 0x202
push dword [0x101ada04]
call edi
mov eax, dword [0x101ada18]
test eax, eax
jle 0x10019160
cmp dword [0x101ad8b0], 0
je 0x10019160
push 0
push 0
push eax
push 0
push 1
call dword [sym.imp.USER32.dll_mouse_event]
mov eax, dword [0x1017d2d4]
lea ecx, [ebp - 0x40]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
call fcn.1001a010
jmp 0x10018f30
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3