Function at 0xd6ee44
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, 0xf9dc8c
call fcn.00f4f878
xor esi, esi
cmp byte [0xf9c6a0], 0
je 0xd6ee79
mov al, 1
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
jmp 0xd6f0c9
push 0x10
call sub.USER32.DLL_GetKeyState
test ax, ax
jge 0xd6ee88
or esi, 8
push 0x11
call sub.USER32.DLL_GetKeyState
test ax, ax
jge 0xd6ee97
or esi, 0x10
push 0x12
call sub.USER32.DLL_GetKeyState
test ax, ax
jge 0xd6eea6
or esi, 0x20
cmp dword [ebx + 4], 0x20a
jne 0xd6eeba
mov eax, dword [ebx + 8]
shr eax, 0x10
movsx eax, ax
jmp 0xd6eebd
mov eax, dword [ebx + 8]
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], ecx
mov dx, word [ebx + 0xc]
and dx, 0xffff
movzx ecx, dx
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebx + 0xc]
shr edx, 0x10
movzx ecx, dx
mov dword [ebp - 0x58], ecx
mov word [ebp - 0x44], 8
push esi
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00dc4b58
add esp, 0x10
add dword [ebp - 0x38], 2
mov word [ebp - 0x44], 0x14
mov byte [ebp - 2], 0
push 1
mov edx, dword [ebp - 0x58]
push edx
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.00d6bfb8
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0xd6ef2d
mov ebx, edi
jmp 0xd6ef2d
push ebx
call fcn.00e53648
pop ecx
mov ebx, eax
push ebx
call fcn.00e53648
pop ecx
test eax, eax
jne 0xd6ef24
mov al, byte [ebx + 0x48]
shr eax, 4
and eax, 0xf
cmp eax, 7
jne 0xd6ef5e
push 0
call fcn.00dc4c50
pop ecx
push ebx
mov edx, dword [ebx + 8]
call dword [edx + 0x84]
pop ecx
call fcn.00dc4c68
test ebx, ebx
je 0xd6f010
call fcn.00db522c
mov word [ebp - 0x44], 0x14
test eax, eax
je 0xd6ef84
cmp ebx, eax
je 0xd6ef84
push eax
mov ecx, dword [eax + 8]
call dword [ecx + 0x9c]
pop ecx
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x6c]
push eax
push ebx
push edx
call fcn.00d8a764
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x64], ecx
mov ecx, dword [0x10309ec]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], eax
mov eax, ebx
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x60], edx
lea edx, [ebp - 0x30]
push edx
push eax
push ecx
mov eax, dword [ecx + 8]
call dword [eax + 0x40]
add esp, 0xc
cmp byte [ebp - 2], 0
je 0xd6eff1
mov al, 1
lea edx, [ebp - 0x30]
push eax
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
push 0
push edx
call fcn.00dc4ce4
add esp, 8
pop eax
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
jmp 0xd6f0c9
test byte [ebx + 0x44], 1
setne cl
and ecx, 1
test cl, cl
je 0xd6f003
xor eax, eax
jmp 0xd6f006
mov eax, dword [ebx + 0x14]
mov ebx, eax
test ebx, ebx
jne 0xd6ef84
mov ebx, dword [0x1030dfc]
test ebx, ebx
je 0xd6f0a7
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x7c]
push eax
push ebx
push edx
call fcn.00d8a764
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x74], ecx
mov ecx, dword [0x10309ec]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x70], eax
mov eax, ebx
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x70], edx
lea edx, [ebp - 0x30]
push edx
push eax
push ecx
mov eax, dword [ecx + 8]
call dword [eax + 0x40]
add esp, 0xc
cmp byte [ebp - 2], 0
je 0xd6f088
mov al, 1
lea edx, [ebp - 0x30]
push eax
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
push 0
push edx
call fcn.00dc4ce4
add esp, 8
pop eax
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
jmp 0xd6f0c9
test byte [ebx + 0x44], 1
setne cl
and ecx, 1
test cl, cl
je 0xd6f09a
xor eax, eax
jmp 0xd6f09d
mov eax, dword [ebx + 0x14]
mov ebx, eax
test ebx, ebx
jne 0xd6f01e
mov al, 1
lea edx, [ebp - 0x30]
push eax
dec dword [ebp - 0x38]
dec dword [ebp - 0x38]
push 0
push edx
call fcn.00dc4ce4
add esp, 8
pop eax
mov edx, dword [ebp - 0x54]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret