Function at 0x101c2f4
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ebp - 4], 0
and dword [ebp - 8], 0
push ebx
push esi
mov esi, dword [0x1001228]
push edi
push 0x11
call esi
mov edi, 0x8000
xor ebx, ebx
mov ecx, edi
inc ebx
test cx, ax
je 0x101c322
mov dword [ebp - 4], ebx
push 0x10
call esi
mov esi, dword [ebp + 0xc]
test di, ax
je 0x101c33b
test byte [esi + 0x20], 2
je 0x101c33b
mov edi, ebx
mov dword [ebp - 8], edi
jmp 0x101c33e
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
cmp eax, 0x24
jg 0x101c4e4
je 0x101c4ba
sub eax, 0xd
je 0x101c47e
sub eax, 0x13
je 0x101c460
dec eax
je 0x101c43a
dec eax
je 0x101c3da
dec eax
jne 0x101c4f2
mov edi, dword [ebp + 8]
xor edx, edx
cmp dword [ebp - 4], edx
je 0x101c383
mov eax, dword [esi + 4]
dec eax
jmp 0x101c399
mov eax, dword [esi + 0x60]
dec eax
push eax
push esi
push edi
call fcn.0101bc4e
mov ecx, dword [esi + 4]
cmp eax, ecx
jl 0x101c399
lea eax, [ecx - 1]
mov ecx, dword [esi + 8]
test byte [esi + 0x20], bl
jne 0x101c3a6
lea edx, [ecx - 1]
mov ecx, ebx
cmp dword [ebp - 8], 0
push ebx
je 0x101c3b8
push edx
push eax
push esi
push edi
call fcn.0101c0f6
jmp 0x101c3c3
push ecx
push ebx
push edx
push eax
push esi
push edi
call fcn.0101bd0e
cmp dword [ebp - 4], 0
je 0x101c58e
push ebx
push esi
push edi
call fcn.0101c022
jmp 0x101c58e
mov eax, dword [esi + 0x60]
cmp eax, 3
mov edi, dword [ebp + 8]
jle 0x101c3f0
add eax, 0xfffffffd
push eax
push esi
push edi
call fcn.0101b8b8
mov eax, dword [esi + 0x60]
dec eax
push eax
push esi
push edi
call fcn.0101bc4e
mov ecx, dword [esi + 4]
cmp eax, ecx
jl 0x101c406
lea eax, [ecx - 1]
mov ecx, dword [esi + 8]
xor edx, edx
test byte [esi + 0x20], bl
jne 0x101c415
lea edx, [ecx - 1]
mov ecx, ebx
cmp dword [ebp - 8], 0
push ebx
je 0x101c42a
push edx
push eax
push esi
push edi
call fcn.0101c0f6
jmp 0x101c58e
push ecx
push ebx
push edx
push eax
push esi
push edi
call fcn.0101bd0e
jmp 0x101c58e
mov eax, dword [esi + 0x60]
cmp eax, 3
jle 0x101c451
push 3
pop ecx
sub ecx, eax
push ecx
push esi
push dword [ebp + 8]
call fcn.0101b8b8
push edi
push esi
push dword [ebp + 8]
call fcn.0101c284
jmp 0x101c58e
xor eax, eax
cmp dword [esi + 0x98], eax
jne 0x101c473
push eax
push ebx
push eax
push eax
jmp 0x101c585
push ebx
push eax
push eax
push eax
push eax
push esi
push dword [ebp + 8]
jmp 0x101c430
lea ebx, [esi + 0x98]
cmp dword [ebx], 0
je 0x101c58e
push 0
push esi
push dword [ebp + 8]
call fcn.0101c022
push dword [esi + 0x9c]
push dword [ebx]
push dword [esi + 0x94]
push dword [esi + 0x90]
push esi
push dword [ebp + 8]
call fcn.0101be83
jmp 0x101c58e
cmp dword [ebp - 4], 0
je 0x101c4cf
mov eax, dword [esi + 0x6c]
neg eax
push eax
push esi
push dword [ebp + 8]
call fcn.0101b8b8
push edi
push esi
push dword [ebp + 8]
call fcn.0101c284
push 0
push esi
push dword [ebp + 8]
jmp 0x101c3d0
sub eax, 0x25
je 0x101c55d
dec eax
je 0x101c53d
dec eax
je 0x101c520
dec eax
je 0x101c4f9
mov eax, ebx
jmp 0x101c590
xor eax, eax
cmp dword [ebp - 4], eax
je 0x101c51a
push ebx
push eax
push eax
push eax
push eax
push esi
push dword [ebp + 8]
call fcn.0101bd0e
push ebx
push esi
push dword [ebp + 8]
call fcn.0101b8b8
jmp 0x101c58e
push edi
push ebx
push eax
push ebx
jmp 0x101c585
test byte [esi + 0x20], bl
je 0x101c538
cmp dword [ebp - 4], 0
je 0x101c533
mov eax, dword [esi + 0x58]
sub eax, dword [esi + 0x5c]
jmp 0x101c572
push dword [esi + 0x50]
jmp 0x101c573
push edi
push ebx
push ebx
jmp 0x101c583
xor eax, eax
cmp dword [ebp - 4], eax
je 0x101c556
push ebx
push eax
push eax
push eax
push eax
push esi
push dword [ebp + 8]
call fcn.0101bd0e
push 0xffffffffffffffff
jmp 0x101c50f
push edi
push eax
push eax
push 0xffffffffffffffff
jmp 0x101c585
test byte [esi + 0x20], bl
je 0x101c57e
cmp dword [ebp - 4], 0
je 0x101c56d
mov eax, dword [esi + 0x70]
jmp 0x101c570
mov eax, dword [esi + 0x50]
neg eax
push eax
push esi
push dword [ebp + 8]
call fcn.0101bb50
jmp 0x101c58e
push edi
push 0
push 0xffffffffffffffff
push 0
push esi
push dword [ebp + 8]
call fcn.0101c1bb
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc