Function at 0x100d736d
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x14
mov eax, 0x1015d725
call fcn.1013b51c
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 4]
cmp eax, 0x14
je 0x100d7614
xor edi, edi
cmp dword [ebx + 0x8c], edi
je 0x100d73a4
push ecx
mov ecx, ebx
call fcn.1000c773
jmp 0x100d7617
cmp eax, 0x201
jne 0x100d73f3
mov edx, dword [ebx + 0x80]
mov dword [ebp - 0x14], edx
cmp dword [edx + 0x1e4], edi
je 0x100d7553
cmp dword [edx + 0xcc], edi
jne 0x100d7553
mov eax, dword [ebx + 0x20]
cmp dword [ecx], eax
je 0x100d7553
mov eax, dword [edx]
push edi
mov esi, dword [eax + 0x224]
mov ecx, esi
call dword [0x10166964]
mov ecx, dword [ebp - 0x14]
call esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp eax, 0x200
jne 0x100d7553
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xdc]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
jne 0x100d7553
push 0x17
call dword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
test eax, eax
setne cl
inc ecx
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x100d7452
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.1000a44c
cmp eax, ebx
jne 0x100d7614
xor edi, edi
cmp dword [ebx + 0x84], edi
jne 0x100d7494
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebx + 0x84], 1
mov dword [ebp - 0x20], 0x10
mov dword [ebp - 0x1c], 2
call dword [sym.imp.USER32.dll_TrackMouseEvent]
push 0x105
push edi
push edi
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
cmp dword [ebx + 0x88], edi
jne 0x100d7553
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xa4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
je 0x100d7553
lea eax, [ebp - 0x18]
xor esi, esi
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0x105
push esi
push esi
push dword [ebx + 0x20]
mov dword [ebx + 0x88], 1
call dword [sym.imp.USER32.dll_RedrawWindow]
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xa4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
lea ecx, [ebp - 0x18]
push ecx
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edi, dword [ebp - 0x10]
movzx ebx, word [ebp - 0x14]
movzx eax, word [ebp - 0x18]
shl ebx, 0x10
mov edi, dword [edi + 0x80]
or ebx, eax
mov eax, dword [edi]
mov esi, dword [eax + 0xa4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
push ebx
push 0
push 0x200
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0x100
jne 0x100d786a
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xdc]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
mov eax, dword [ebp + 8]
jne 0x100d786a
push dword [eax + 8]
mov ecx, ebx
call fcn.100d7870
test eax, eax
jne 0x100d7614
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
cmp ecx, 9
je 0x100d7845
cmp ecx, 0xd
je 0x100d772c
cmp ecx, 0x1b
je 0x100d7664
cmp ecx, 0x20
jbe 0x100d786a
cmp ecx, 0x22
jbe 0x100d761f
cmp ecx, 0x26
je 0x100d761f
cmp ecx, 0x28
jne 0x100d786a
mov edi, dword [ebx + 0x80]
cmp dword [edi + 0x1dc], 0
je 0x100d761f
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
jne 0x100d761f
mov edi, dword [ebx + 0x80]
mov edx, dword [edi]
mov esi, dword [edx + 0x298]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
xor eax, eax
inc eax
call fcn.1013b4e5
ret 4
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
je 0x100d7867
mov eax, dword [0x101b8c88]
test eax, eax
je 0x100d764d
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp + 8]
push dword [ecx + 0xc]
push dword [ecx + 8]
push 0x100
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x100d7614
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
je 0x100d7697
mov ecx, dword [0x101b8c88]
test ecx, ecx
je 0x100d7697
xor eax, eax
push eax
push eax
push 0x10
push dword [ecx + 0x20]
jmp 0x100d765c
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
jne 0x100d76e8
push dword [ebx + 0x90]
mov ecx, ebx
call fcn.10005e56
push ecx
mov esi, esp
mov dword [ebp - 0x14], esi
mov eax, dword [ebx + 0x90]
sub eax, 0x10
push eax
call fcn.10004ae0
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, dword [ebx + 0x80]
call fcn.100d7c8a
mov ecx, ebx
call fcn.1000a89d
test eax, eax
je 0x100d7867
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
jne 0x100d7867
mov ecx, ebx
call fcn.1000a89d
mov ecx, eax
call fcn.10005d80
jmp 0x100d7614
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
jne 0x100d7867
call fcn.10007529
push eax
lea ecx, [ebp - 0x10]
call fcn.10002430
lea eax, [ebp - 0x10]
xor edi, edi
push eax
mov ecx, ebx
mov dword [ebp - 4], edi
call fcn.1000a9b4
push ecx
mov esi, esp
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
push eax
call fcn.10004ae0
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, dword [ebx + 0x80]
call fcn.100d7c8a
mov ecx, dword [ebx + 0x80]
push 1
call fcn.100a16ba
mov eax, dword [ebx + 0x80]
mov eax, dword [eax + 0x94]
test eax, eax
je 0x100d77ff
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.1000a44c
mov ecx, edi
test eax, eax
je 0x100d77c4
mov ecx, dword [eax + 0x20]
mov eax, dword [0x101b8c88]
test eax, eax
jne 0x100d77d1
mov eax, edi
jmp 0x100d77d4
mov eax, dword [eax + 0x20]
cmp ecx, eax
jne 0x100d77ff
mov eax, dword [ebx + 0x80]
push dword [eax + 0x94]
call fcn.10018b5c
mov edi, eax
pop ecx
mov ecx, dword [edi]
mov esi, dword [ecx + 0x60]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
jmp 0x100d7824
mov ecx, ebx
call fcn.1000a89d
test eax, eax
je 0x100d7834
mov eax, dword [ebx + 0x80]
mov ecx, ebx
mov dword [eax + 0x1e8], edi
call fcn.1000a89d
mov ecx, eax
call fcn.10005d80
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.100028f0
jmp 0x100d7614
mov ecx, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.100028f0
jmp 0x100d7867
mov edi, dword [ebx + 0x80]
mov eax, dword [edi]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x10166964]
mov ecx, edi
call esi
test eax, eax
je 0x100d7614
mov eax, dword [ebp + 8]
push eax
jmp 0x100d7398