Function at 0x276127d9
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov eax, esi
push 1
sub eax, 9
pop edi
je 0x276129af
sub eax, 0x1c
je 0x276129ac
dec eax
dec eax
je 0x276129bf
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x20]
cmp eax, 0xffffffff
je 0x276128ad
mov ecx, eax
mov edx, dword [ebx + 0x3c]
imul ecx, ecx, 0x38
add edx, ecx
cmp dword [edx], 9
jne 0x276128ad
and dword [ebp - 0x24], 0
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0x20]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x18], esi
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x10]
push eax
push ebx
call fcn.27612c58
lea eax, [ebp - 0x24]
push eax
push 0xfffffd0b
push dword [ebx]
call fcn.27582d58
mov ax, word [ebx + 0x28]
lea edi, [ebx + 0x28]
cmp ax, word [ebp - 0x10]
jne 0x27612896
mov ax, word [ebx + 0x2a]
cmp ax, word [ebp - 0xe]
jne 0x27612896
mov ax, word [ebx + 0x2e]
cmp ax, word [ebp - 0xa]
jne 0x27612896
mov ax, word [ebx + 0x30]
cmp ax, word [ebp - 8]
jne 0x27612896
mov ax, word [ebx + 0x32]
cmp ax, word [ebp - 6]
jne 0x27612896
mov ax, word [ebx + 0x34]
cmp ax, word [ebp - 4]
je 0x276128d7
lea esi, [ebp - 0x10]
push 9
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
call fcn.2761264d
push 1
pop eax
jmp 0x2761295d
cmp esi, 0x1b
ja 0x27612917
je 0x276128de
cmp esi, 0xd
jne 0x276128d7
mov eax, 0x102
push 1
push eax
push eax
lea eax, [ebp - 0x1c]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
push ebx
push dword [ebp + 8]
call fcn.27612541
xor eax, eax
jmp 0x2761295d
xor esi, esi
cmp dword [ebx + 0x50], esi
je 0x276128d7
mov eax, 0x102
push 1
push eax
push eax
lea eax, [ebp - 0x1c]
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
push 9
push ebx
mov dword [ebx + 0x50], esi
call fcn.2761264d
push dword [ebx + 0x1c]
mov eax, dword [ebp + 8]
add ebx, 0xc
push ebx
push dword [eax]
call fcn.27612400
jmp 0x276128d7
cmp esi, 0x23
jb 0x276128d7
cmp esi, 0x24
jbe 0x27612964
cmp esi, 0x26
je 0x27612938
cmp esi, 0x28
je 0x27612935
cmp esi, 0x6b
je 0x27612938
cmp esi, 0x6d
jne 0x276128d7
or edi, 0xffffffff
mov eax, 0x102
push 1
push eax
push eax
lea eax, [ebp - 0x1c]
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
push ebx
push dword [ebp + 8]
call fcn.27612541
push edi
push ebx
call fcn.2761276c
pop edi
pop esi
pop ebx
leave
ret 0x10
cmp eax, 0xffffffff
je 0x276128d7
push ebx
push dword [ebp + 8]
call fcn.27612541
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x3c]
imul ecx, ecx, 0x38
add eax, ecx
cmp esi, 0x24
mov ecx, dword [eax + 0x14]
movzx edi, word [ecx]
jne 0x276129a7
mov edx, dword [eax + 0x18]
mov word [ecx], dx
mov ecx, dword [eax + 0x14]
movzx ecx, word [ecx]
sub ecx, edi
je 0x276128d7
push dword [eax]
jmp 0x2761289f
mov edx, dword [eax + 0x1c]
jmp 0x2761298f
or edi, 0xffffffff
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x276129bf
or edi, 0xffffffff
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.27612541
push edi
push dword [ebp + 0xc]
call fcn.276124d5
jmp 0x276128d7