Function at 0x100a1fe
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 0x100d6cc
cmp dword [ebp + 0xc], 0x107
je 0x100d6cc
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 0x100d6e6
test dword [ebp + 0x14], 0x20000000
je 0x100a2df
cmp word [ebp - 0x94], 0xd
je 0x100d72d
push 0x11
call esi
test bx, ax
jne 0x100a2b8
cmp word [ebp - 0x94], 0x20
je 0x100d870
cmp word [ebp - 0x94], 0x1b
je 0x100d882
cmp word [ebp - 0x94], 9
je 0x100d88b
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x98]
call fcn.01009f04
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.010015a8
leave
ret 0x14
cmp word [ebp - 0x94], 0xd
jne 0x100a2b8
jmp 0x100d721
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 0x100a243
test edi, edi
je 0x100a26e
push 0x12
call esi
mov ecx, ebx
test cx, ax
jne 0x100a26e
push 0x10
call esi
mov ecx, ebx
test cx, ax
jne 0x100a26e
test byte [0x10382ca], 0x40
jne 0x100a26e
xor eax, eax
inc eax
jmp 0x100a2ce
test byte [0x10382f8], 2
jmp 0x100d877
test edi, edi
jne 0x100a285
test byte [0x10382ca], 8
jne 0x100a285
test byte [ebp + 0xc], 1
jne 0x100a2cc
test dword [0x10382cc], 0x10000000
je 0x100d7c1
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x100d7c1
cmp word [0x10382f8], ax
jne 0x100d790
call fcn.010219d2
xor eax, eax
push 4
push dword [0x1038260]
inc eax
mov word [0x10382f8], ax
call fcn.010205c6
jmp 0x100a2cc
call fcn.01021bcb
push 0
push dword [0x1038260]
mov eax, 0xfffe
and word [0x10382f8], ax
call fcn.010205c6
push 9
push dword [0x1038260]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x100a2cc
mov eax, dword [0x10382b0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100d7c9
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 0x100a2cc
push dword [0x10382b0]
push esi
push edi
call fcn.010058fe
call fcn.01001530
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 0x100a2cc
test byte [0x10382ca], 4
jne 0x100a2b8
jmp 0x100d719
test byte [0x10382ca], 2
jmp 0x100d877
test byte [0x10382ca], 1
jmp 0x100d877