Function at 0x100270c0
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10060eb5
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x1007b054]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x10080cd7], 0
je 0x100273a3
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
xor edi, edi
mov esi, 0x8000
mov ecx, edi
call fcn.100208a0
mov eax, dword [0x10080d14]
mov ecx, dword [0x10080d18]
cmp eax, ecx
je 0x10027331
nop
cmp dword [eax], edi
je 0x1002712b
add eax, 4
cmp eax, ecx
jne 0x10027120
cmp eax, ecx
je 0x10027331
push 0x14
call ebx
test ax, ax
jne 0x10027158
push 0xa0
call ebx
test si, ax
jne 0x10027158
push 0xa1
call ebx
mov byte [ebp - 0x41], 0
test si, ax
je 0x1002715c
mov byte [ebp - 0x41], 1
push 2
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movsx esi, al
push esi
call fcn.100480ed
movsx ecx, al
movzx eax, cl
shl cx, 8
mov dword [ebp - 0x40], 0
or cx, ax
mov word [ebp - 0x40], 0
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 1
mov byte [ebp - 0x40], cl
push esi
mov dword [ebp - 4], 0
call fcn.100480bd
movsx ecx, al
mov ebx, 0xf
movzx eax, cl
add esp, 8
shl cx, 8
mov dword [ebp - 0x28], 0
or cx, ax
mov word [ebp - 0x28], 0
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], 1
mov byte [ebp - 0x28], cl
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x28]
cmp edi, 8
jne 0x10027213
mov eax, dword [0x1007bc68]
test eax, eax
je 0x100272a9
cmp dword [0x1007bc6c], 0x10
lea ecx, [eax - 1]
mov eax, 0x1007bc58
mov dword [0x1007bc68], ecx
cmovae eax, dword [0x1007bc58]
mov byte [eax + ecx], 0
jmp 0x100272a9
cmp dword [0x1007bc84], 0x10
lea eax, [ebp - 0x28]
mov edx, dword [0x1007bc80]
mov ecx, 0x1007bc70
cmovae ecx, dword [0x1007bc70]
push 1
push eax
push ecx
call fcn.10022c70
add esp, 0xc
cmp eax, 0xffffffff
je 0x10027249
cmp byte [0x10080cec], 0
je 0x10027276
cmp dword [0x1007bc3c], 0x10
lea eax, [ebp - 0x28]
mov edx, dword [0x1007bc38]
mov ecx, 0x1007bc28
cmovae ecx, dword [0x1007bc28]
push 1
push eax
push ecx
call fcn.10022c70
add esp, 0xc
cmp eax, 0xffffffff
je 0x100272a9
cmp dword [0x1007bc68], 0x50
jae 0x100272a9
cmp byte [ebp - 0x41], 0
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0x40]
cmove eax, ecx
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x10027297
mov eax, dword [eax]
push ecx
push eax
mov ecx, 0x1007bc58
call fcn.10008a80
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp byte [0x10080ced], 0
je 0x100272b7
call fcn.10027820
mov byte [ebp - 4], 0
cmp ebx, 0x10
jb 0x100272eb
lea ecx, [ebx + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x100272e1
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100273bf
push ecx
push esi
call fcn.1003899b
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x10027326
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002731c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100273bf
push edx
push ecx
call fcn.1003899b
add esp, 8
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, 0x8000
inc edi
cmp edi, 0xc8
jl 0x10027105
mov ecx, 0xd
call fcn.100208a0
mov eax, dword [0x10080d14]
mov ecx, dword [0x10080d18]
cmp eax, ecx
je 0x100273a3
cmp dword [eax], 0xd
je 0x10027365
add eax, 4
cmp eax, ecx
jne 0x10027357
jmp 0x100273a3
cmp eax, ecx
je 0x100273a3
cmp byte [0x10080ced], 0
jne 0x10027377
call fcn.10027820
push 0
push 0x1006eceb
mov ecx, 0x1007bc58
mov dword [0x10080ce4], 0
mov dword [0x10080ce8], 0
call fcn.10008990
mov byte [0x10080cd7], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003863a
mov esp, ebp
pop ebp
ret
call fcn.10045bb9
int3