Function at 0x100a6ab0
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.100a9100
mov ecx, dword [0x1028aef4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [0x1028aef4]
jne 0x100a6b63
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.100a8730
vmovq xmm0, qword [ebp - 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x10]
vmovq 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 0x100a6bc4
cmp dword [0x10339db0], 0
jne 0x100a6ba8
mov esi, dword [sym.imp.USER32.dll_FindWindowW]
push 0x1026c104
push 0
call esi
mov ecx, dword [ebp - 8]
xor edx, edx
test eax, eax
movzx ecx, cl
mov dword [0x10339db0], eax
cmovne edx, ecx
mov byte [ebp - 8], dl
je 0x100a6b85
mov byte [ebp - 8], dl
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [ebp - 8]
xor edx, edx
cmp eax, dword [0x10339db0]
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 0x100a6c87
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.1015d270
mov esi, eax
mov eax, dword [ebp - 8]
mov byte [ebp - 2], 0
test al, al
jne 0x100a6c13
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100a8730
mov byte [ebp - 3], 1
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x100a6c17
mov byte [ebp - 3], 0
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100a8730
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.100a8730
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.100a8730
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.100a8730
mov eax, dword [eax]
mov dword [eax + 0x10], esi
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100a8730
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 0x100a6bd5
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100a8730
mov eax, dword [eax]
cmp byte [eax + 0xc], 0
jne 0x100a6bd5
mov byte [ebp - 1], 1
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
push 0
push 0x2710
push edx
push eax
call fcn.1015d270
mov esi, eax
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100a8730
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 0x100a6bf2
mov al, byte [ebp - 1]
mov byte [ebp - 2], 1
mov byte [ebp - 8], dl
mov byte [ebp - 1], al
jmp 0x100a6c13