Function at 0x100a9f20
Capabilities:
Hash data using fnv
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
mov edx, dword [ebx + 8]
sub esp, 0x1c
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
sar eax, 8
movzx eax, al
push esi
xor ecx, eax
mov eax, edx
sar eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, edx
sar eax, 0x18
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.100ac7d0
mov ecx, dword [0x10245eb4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x10245eb4]
jne 0x100a9fd3
lea eax, [ebx + 8]
mov word [ebp - 0x18], 0
push eax
lea eax, [ebp - 0xc]
mov byte [ebp - 0x16], 0
push eax
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x10], 0
call fcn.100aba20
movq xmm0, qword [ebp - 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x10]
movq qword [ecx + 0xc], xmm0
mov dword [ecx + 0x14], eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov dword [ebp - 8], eax
je 0x100aa034
cmp dword [0x102eff2c], 0
jne 0x100aa018
mov esi, dword [sym.imp.USER32.dll_FindWindowW]
push 0x10227394
push 0
call esi
mov ecx, dword [ebp - 8]
xor edx, edx
test eax, eax
movzx ecx, cl
mov dword [0x102eff2c], eax
cmovne edx, ecx
mov byte [ebp - 8], dl
je 0x100a9ff5
mov byte [ebp - 8], dl
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [ebp - 8]
xor edx, edx
cmp eax, dword [0x102eff2c]
movzx ecx, cl
cmovne ecx, edx
mov al, cl
mov dword [ebp - 8], eax
cmp dword [ebx + 8], 0
mov byte [ebp - 3], al
jne 0x100aa0f7
mov byte [ebp - 8], 0
mov byte [ebp - 1], 0
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
push 0
push 0x2710
push edx
push eax
call fcn.10149f80
mov esi, eax
mov eax, dword [ebp - 8]
mov byte [ebp - 2], 0
test al, al
jne 0x100aa083
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov byte [ebp - 3], 1
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x100aa087
mov byte [ebp - 3], 0
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov byte [eax + 0xc], cl
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov cl, byte [ebp - 1]
mov eax, dword [eax]
mov byte [eax + 0xd], cl
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov cl, byte [ebp - 2]
mov eax, dword [eax]
mov byte [eax + 0xe], cl
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov eax, dword [eax]
mov dword [eax + 0x10], esi
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov cl, byte [ebp - 3]
pop esi
mov eax, dword [eax]
mov byte [eax + 0x14], cl
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
test al, al
je 0x100aa045
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x100aa045
mov byte [ebp - 1], 1
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
push 0
push 0x2710
push edx
push eax
call fcn.10149f80
mov esi, eax
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100aba20
mov dl, byte [ebp - 3]
mov ecx, dword [eax]
mov al, dl
mov dword [ebp - 8], eax
mov ecx, dword [ecx + 0x10]
add ecx, 0x1f4
cmp esi, ecx
jge 0x100aa062
mov al, byte [ebp - 1]
mov byte [ebp - 2], 1
mov byte [ebp - 8], dl
mov byte [ebp - 1], al
jmp 0x100aa083