Function at 0x10148978
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x104
ja 0x10148951
cmp dword [ebp - 0x18], 0x104
je case.0x10148971.0
mov edx, dword [ebp - 0x18]
sub edx, 0xa1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x5f
ja case.0x10148971.3
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x10148be0]
jmp dword [ecx*4 + 0x10148bd4]
mov edx, dword [ebp - 0x18]
sub edx, 0x200
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 8
ja case.0x10148971.3
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x10148c48]
jmp dword [ecx*4 + 0x10148c40]
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0xa0], 0xffffffff
je case.0x10148971.0
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
je case.0x10148971.0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x21
je 0x10148a87
cmp dword [ebp - 0x1c], 0x22
je 0x101489ba
jmp case.0x10148971.0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xa0]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x101489d4
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xa0]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + 0x9c]
cmp dword [ebp - 4], ecx
jge 0x10148a7d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
cdq
idiv dword [ecx + 0x9c]
mov dword [ebp - 8], edx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x280]
call eax
test eax, eax
je 0x10148a78
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x200], 1
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x218]
call eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x214]
call eax
mov ecx, eax
call fcn.1003ec00
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0xa0]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x274]
call eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x200], 0
jmp 0x10148a7d
jmp 0x101489cb
mov eax, 1
jmp 0x10148bce
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xa0]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x9c]
lea eax, [eax + edx - 1]
mov dword [ebp - 0xc], eax
jmp 0x10148aab
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
cmp eax, dword [edx + 0xa0]
jle 0x10148b4b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
cdq
idiv dword [ecx + 0x9c]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x280]
call eax
test eax, eax
je 0x10148b46
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x200], 1
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x218]
call eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x214]
call eax
mov ecx, eax
call fcn.1003ec00
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0xa0]
push edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x274]
call eax
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x200], 0
jmp 0x10148b4b
jmp 0x10148aa2
mov eax, 1
jmp 0x10148bce
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xdc]
call fcn.1003fd10
test eax, eax
je 0x10148b76
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0xdc]
call fcn.10094c50
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xd8]
call fcn.1003fd10
test eax, eax
je case.0x10148971.3
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0xd8]
call fcn.10094c50
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0x203
jne 0x10148bc2
mov ecx, dword [ebp - 0x14]
add ecx, 0x2094
call fcn.1003fd10
mov ecx, dword [ebp + 8]
cmp dword [ecx], eax
jne 0x10148bc2
mov eax, 1
jmp 0x10148bce
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 0x14]
call fcn.101655d0
mov esp, ebp
pop ebp
ret 4