Function at 0x100a919
Capabilities:
Hide graphical window
Log keystrokes
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x1038008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 0x106
mov eax, dword [ebp + 8]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x9c], eax
je 0x100d238
cmp dword [ebp + 0xc], 0x107
je 0x100d238
movzx eax, word [ebp + 0x10]
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push edi
push 0x11
mov dword [ebp - 0x94], eax
call esi
movzx edi, ax
mov ebx, 0x8000
and edi, ebx
cmp word [ebp - 0x94], 0x1b
je 0x100d252
test dword [ebp + 0x14], 0x20000000
je 0x100a9fa
cmp word [ebp - 0x94], 0xd
je 0x100d299
push 0x11
call esi
test bx, ax
jne 0x100a9d3
cmp word [ebp - 0x94], 0x20
je 0x100d3dc
cmp word [ebp - 0x94], 0x1b
je 0x100d3ee
cmp word [ebp - 0x94], 9
je 0x100d3f7
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x98]
call fcn.0100a2cf
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100158a
leave
ret 0x14
cmp word [ebp - 0x94], 0xd
jne 0x100a9d3
jmp 0x100d28d
mov eax, dword [ebp + 0x14]
shr eax, 0x10
movzx eax, al
push 1
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
movzx eax, ax
jmp 0x100a95e
test edi, edi
je 0x100a989
push 0x12
call esi
mov ecx, ebx
test cx, ax
jne 0x100a989
push 0x10
call esi
mov ecx, ebx
test cx, ax
jne 0x100a989
test byte [0x10382ca], 0x40
jne 0x100a989
xor eax, eax
inc eax
jmp 0x100a9e9
test byte [0x10382f8], 2
jmp 0x100d3e3
test edi, edi
jne 0x100a9a0
test byte [0x10382ca], 8
jne 0x100a9a0
test byte [ebp + 0xc], 1
jne 0x100a9e7
test dword [0x10382cc], 0x10000000
je 0x100d32d
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x100d32d
cmp word [0x10382f8], ax
jne 0x100d2fc
call fcn.0102199a
xor eax, eax
push 4
push dword [0x1038260]
inc eax
mov word [0x10382f8], ax
call fcn.0102058e
jmp 0x100a9e7
call fcn.01021b93
push 0
push dword [0x1038260]
mov eax, 0xfffe
and word [0x10382f8], ax
call fcn.0102058e
push 9
push dword [0x1038260]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x100a9e7
mov eax, dword [0x10382b0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100d335
sub eax, edx
sar eax, 1
lea esi, [eax + 1]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
lea ecx, [esi + esi]
push ecx
push dword [0x1038030]
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x100a9e7
push dword [0x10382b0]
push esi
push edi
call fcn.010054b6
call fcn.01001505
mov eax, dword [ebp - 0x9c]
mov dword [eax], ebx
push 0x46
lea eax, [ebp - 0x90]
push eax
push 0x1007
push dword [0x1038040]
call dword [sym.imp.USER32.dll_LoadStringW]
inc dword [0x1038e68]
push ebx
push edi
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x98]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword fs:[0x18]
dec dword [0x1038e68]
mov eax, dword [eax + 0x30]
push edi
push ebx
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
jmp 0x100a9e7
test byte [0x10382ca], 4
jne 0x100a9d3
jmp 0x100d285
test byte [0x10382ca], 2
jmp 0x100d3e3
test byte [0x10382ca], 1
jmp 0x100d3e3