Function at 0x10001360
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x10004004]
xor eax, esp
mov dword [esp + 0x18], eax
cmp dword [0x10004140], 0
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
push edi
mov dword [esp + 0x10], eax
je 0x100015b7
mov eax, dword [0x1000413c]
cmp dword [0x1000412c], eax
jne 0x1000145b
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x27
call edi
test al, 1
je 0x100013b9
mov eax, dword [esi]
cmp eax, 1
jge 0x100013ca
inc eax
jmp 0x100013c8
push 0x25
call edi
test al, 1
je 0x100013ca
mov eax, dword [esi]
test eax, eax
jle 0x100013ca
dec eax
mov dword [esi], eax
mov eax, dword [0x1000413c]
cmp dword [0x1000412c], eax
jne 0x1000145b
mov edi, dword [sym.imp.USER32.dll_SetRect]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [0x10004130]
add ecx, dword [0x10004138]
add eax, 0xfffffffd
push ecx
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call edi
mov eax, dword [0x100048f0]
lea edx, [esp + 0x14]
push 0xff00ffff
push 0x100
push edx
mov ecx, dword [eax]
push 0xffffffffffffffff
push ebx
push 0
push eax
call dword [ecx + 0x38]
mov eax, dword [esi]
mov ecx, dword [0x1000413c]
mov esi, dword [esp + 0x10]
shl ecx, 4
sub ecx, dword [0x1000413c]
add ecx, dword [0x10004138]
mov esi, dword [esi + eax*4]
mov eax, dword [0x10004130]
push ecx
add eax, 0x7d
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call edi
push 0xff00ffff
jmp 0x10001597
mov edi, dword [sym.imp.USER32.dll_SetRect]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, dword [0x10004130]
add ecx, dword [0x10004138]
add eax, 0xfffffffd
cmp dword [esi], 0
push ecx
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
jle 0x10001536
call edi
cmp dword [ebp + 0xc], 1
lea edx, [esp + 0x14]
mov eax, dword [0x100048f0]
mov ecx, dword [eax]
jne 0x100014ea
push 0xff0000ff
push 0x100
push edx
push 0xffffffffffffffff
push ebx
push 0
push eax
call dword [ecx + 0x38]
mov eax, dword [esi]
mov ecx, dword [0x1000413c]
mov esi, dword [esp + 0x10]
shl ecx, 4
sub ecx, dword [0x1000413c]
add ecx, dword [0x10004138]
mov esi, dword [esi + eax*4]
mov eax, dword [0x10004130]
push ecx
add eax, 0x7d
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call edi
push 0xff0000ff
jmp 0x10001597
push 0xff7fff00
push 0x100
push edx
push 0xffffffffffffffff
push ebx
push 0
push eax
call dword [ecx + 0x38]
mov eax, dword [esi]
mov ecx, dword [0x1000413c]
mov esi, dword [esp + 0x10]
shl ecx, 4
sub ecx, dword [0x1000413c]
add ecx, dword [0x10004138]
mov esi, dword [esi + eax*4]
mov eax, dword [0x10004130]
push ecx
add eax, 0x7d
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call edi
push 0xff7fff00
jmp 0x10001597
call edi
cmp dword [ebp + 0xc], 1
lea edx, [esp + 0x14]
mov eax, dword [0x100048f0]
mov ecx, dword [eax]
je 0x1000149b
push 0xffff0000
push 0x100
push edx
push 0xffffffffffffffff
push ebx
push 0
push eax
call dword [ecx + 0x38]
mov eax, dword [esi]
mov ecx, dword [0x1000413c]
mov esi, dword [esp + 0x10]
shl ecx, 4
sub ecx, dword [0x1000413c]
add ecx, dword [0x10004138]
mov esi, dword [esi + eax*4]
mov eax, dword [0x10004130]
push ecx
add eax, 0x7d
push eax
push ecx
push eax
lea eax, [esp + 0x24]
push eax
call edi
push 0xffff0000
mov eax, dword [0x100048f0]
lea edx, [esp + 0x18]
push 0x100
push edx
push 0xffffffffffffffff
mov ecx, dword [eax]
push esi
push 0
push eax
call dword [ecx + 0x38]
inc dword [0x1000413c]
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100020d3
mov esp, ebp
pop ebp
ret