Function at 0x100a2190
Capabilities:
Log keystrokes

Disassembly:
sub esp, 0x30
mov eax, dword [0x101ce2ac]
xor eax, esp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x40]
push edi
mov edi, dword [esp + 0x40]
test edi, edi
mov dword [esp + 8], esi
jne 0x100a21c1
push eax
call fcn.100a1710
add esp, 4
mov edi, eax
mov ch, ch
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x100a21dd
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.10116cb9
add esp, 0x30
ret
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100a21e2
push ebx
sub eax, edx
push ebp
mov esi, eax
mov ch, ch
lea ebx, [esi + esi + 2]
push ebx
call fcn.1011671b
mov ebp, eax
add esp, 4
mov dword [esp + 0x18], ebp
mov cl, cl
test ebp, ebp
jne 0x100a221f
pop ebp
pop ebx
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.10116cb9
add esp, 0x30
ret
push ebx
push 0
push ebp
call fcn.10117df0
add esp, 0xc
mov edx, edx
mov eax, dword [esp + 0x10]
add esi, 1
push esi
push ebp
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
test edi, edi
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100a2250
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov bh, bh
push 5
push edi
call fcn.10069d10
add esp, 8
test eax, eax
je 0x100a22fe
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov esi, eax
push ebx
pop ebx
push 0
push edi
call fcn.10069cd0
add esp, 8
mov ebx, eax
test ecx, ecx
push 1
push ebx
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
nop
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [esp + 0x10], eax
xchg ebx, eax
xchg ebx, eax
push 0
push ebx
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
mov esi, dword [esp + 0x10]
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
push esi
call ebx
test eax, eax
je 0x100a22fe
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x100a22fe
test bh, bh
mov ecx, esi
push ecx
call ebx
test eax, eax
je 0x100a22fe
jmp 0x100a22e0
cmp esi, edi
je 0x100a22f8
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test ecx, ecx
push esi
call ebx
test eax, eax
jne 0x100a22e0
jmp 0x100a22fe
mov edi, dword [esp + 0x10]
test eax, eax
mov al, al
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x100a2390
mov ebx, dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
mov esi, ebp
mov ebp, eax
test ebx, ebx
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov ebp, ebp
push eax
push eax
push 0x20
lea edx, [esp + 0x28]
push edx
push 1
push esi
push eax
push eax
call ebx
mov bl, bl
mov dword [esp + 0x10], 0
mov bl, bl
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov ch, al
push 0x9c4
push 1
movzx edx, ah
push 1
or ecx, edx
push ecx
push 0x286
push edi
call fcn.10069c80
add esp, 0x1c
test ecx, ecx
add esi, 2
sub ebp, 1
jne 0x100a2316
mov ebp, dword [esp + 0x18]
push ebp
call fcn.101167de
add esp, 4
test dl, dl
mov ecx, dword [esp + 0x3c]
pop ebp
pop ebx
pop edi
pop esi
xor ecx, esp
mov eax, 1
call fcn.10116cb9
add esp, 0x30
ret