Function at 0x100a694
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 0x100d6d2
cmp dword [ebp + 0xc], 0x107
je 0x100d6d2
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 0x100d6ec
test dword [ebp + 0x14], 0x20000000
je 0x100a775
cmp word [ebp - 0x94], 0xd
je 0x100d733
push 0x11
call esi
test bx, ax
jne 0x100a74e
cmp word [ebp - 0x94], 0x20
je 0x100d876
cmp word [ebp - 0x94], 0x1b
je 0x100d888
cmp word [ebp - 0x94], 9
je 0x100d891
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x98]
call fcn.01009f49
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 0x100a74e
jmp 0x100d727
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 0x100a6d9
test edi, edi
je 0x100a704
push 0x12
call esi
mov ecx, ebx
test cx, ax
jne 0x100a704
push 0x10
call esi
mov ecx, ebx
test cx, ax
jne 0x100a704
test byte [0x10382ca], 0x40
jne 0x100a704
xor eax, eax
inc eax
jmp 0x100a764
test byte [0x10382f8], 2
jmp 0x100d87d
test edi, edi
jne 0x100a71b
test byte [0x10382ca], 8
jne 0x100a71b
test byte [ebp + 0xc], 1
jne 0x100a762
test dword [0x10382cc], 0x10000000
je 0x100d7c7
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x100d7c7
cmp word [0x10382f8], ax
jne 0x100d796
call fcn.010219ea
xor eax, eax
push 4
push dword [0x1038260]
inc eax
mov word [0x10382f8], ax
call fcn.010205de
jmp 0x100a762
call fcn.01021be3
push 0
push dword [0x1038260]
mov eax, 0xfffe
and word [0x10382f8], ax
call fcn.010205de
push 9
push dword [0x1038260]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x100a762
mov eax, dword [0x10382b0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x100d7cf
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 0x100a762
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 0x100a762
test byte [0x10382ca], 4
jne 0x100a74e
jmp 0x100d71f
test byte [0x10382ca], 2
jmp 0x100d87d
test byte [0x10382ca], 1
jmp 0x100d87d