Function at 0x100a28e
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 0x100d74c
cmp dword [ebp + 0xc], 0x107
je 0x100d74c
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 0x100d766
test dword [ebp + 0x14], 0x20000000
je 0x100a36f
cmp word [ebp - 0x94], 0xd
je 0x100d7ad
push 0x11
call esi
test bx, ax
jne 0x100a348
cmp word [ebp - 0x94], 0x20
je 0x100d8f0
cmp word [ebp - 0x94], 0x1b
je 0x100d902
cmp word [ebp - 0x94], 9
je 0x100d90b
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x98]
call fcn.01009f94
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 0x100a348
jmp 0x100d7a1
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 0x100a2d3
test edi, edi
je 0x100a2fe
push 0x12
call esi
mov ecx, ebx
test cx, ax
jne 0x100a2fe
push 0x10
call esi
mov ecx, ebx
test cx, ax
jne 0x100a2fe
test byte [0x10382ca], 0x40
jne 0x100a2fe
xor eax, eax
inc eax
jmp 0x100a35e
test byte [0x10382f8], 2
jmp 0x100d8f7
test edi, edi
jne 0x100a315
test byte [0x10382ca], 8
jne 0x100a315
test byte [ebp + 0xc], 1
jne 0x100a35c
test dword [0x10382cc], 0x10000000
je 0x100d841
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x100d841
cmp word [0x10382f8], ax
jne 0x100d810
call fcn.010219aa
xor eax, eax
push 4
push dword [0x1038260]
inc eax
mov word [0x10382f8], ax
call fcn.0102059e
jmp 0x100a35c
call fcn.01021ba3
push 0
push dword [0x1038260]
mov eax, 0xfffe
and word [0x10382f8], ax
call fcn.0102059e
push 9
push dword [0x1038260]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x100a35c
mov eax, dword [0x10382b0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100d849
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 0x100a35c
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 0x100a35c
test byte [0x10382ca], 4
jne 0x100a348
jmp 0x100d799
test byte [0x10382ca], 2
jmp 0x100d8f7
test byte [0x10382ca], 1
jmp 0x100d8f7