Function at 0x4a1090
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
mov eax, dword [ecx + 0x6c]
push ebx
push ebp
push esi
test eax, eax
push edi
mov dword [esp + 0x10], ecx
jne 0x4a10ae
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret 0x10
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
cmp edi, 0x104
ja 0x4a1153
cmp edi, 0x104
je 0x4a13bc
mov eax, edi
sub eax, 0x100
je 0x4a13bc
sub eax, 2
je 0x4a13bc
mov esi, dword [ecx + 0x5c]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x4a1115
mov ecx, dword [esi]
mov eax, dword [esp + 0x20]
push ebp
push ebx
mov edx, dword [ecx]
push edi
push eax
call dword [edx + 0x48]
test eax, eax
jne 0x4a14d6
mov esi, dword [esi + 4]
test esi, esi
jne 0x4a10f3
mov ecx, dword [esp + 0x10]
cmp edi, 0x115
ja 0x4a14bb
cmp edi, 0x114
jae 0x4a149f
sub edi, 0x111
je 0x4a148e
sub edi, 2
jne 0x4a14c3
mov edx, dword [ecx]
push ebp
push ebx
call dword [edx + 0x68]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
cmp edi, 0x200
jb 0x4a10e4
cmp edi, 0x20d
ja 0x4a10e4
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 4]
jne 0x4a14c3
mov ecx, 0x66d858
call fcn.004a0360
test eax, eax
je 0x4a14c3
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x24]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push ebp
push ebx
mov ecx, esi
call fcn.004a1fa0
mov ecx, 0x66d858
call fcn.004ab260
test eax, eax
mov ecx, 0x66d858
je 0x4a11c1
call fcn.004ab260
mov ecx, eax
jmp 0x4a11f1
call fcn.0040a080
test eax, eax
mov ecx, 0x66d858
je 0x4a11d8
call fcn.0040a080
mov ecx, eax
jmp 0x4a11f1
call fcn.005c1b30
test eax, eax
je 0x4a11ef
mov ecx, 0x66d858
call fcn.005c1b30
mov ecx, eax
jmp 0x4a11f1
mov ecx, esi
lea eax, [edi - 0x200]
cmp eax, 0xc
ja case.default.0x4a1200
jmp dword [eax*4 + 0x4a14e0]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
call dword [edx + 0x74]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 1
call dword [edx + 0x70]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 1
call dword [edx + 0x78]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 1
call dword [edx + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 2
call dword [edx + 0x70]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 2
call dword [edx + 0x78]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push 2
call dword [edx + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [ecx]
push ebp
push ebx
push edi
call dword [edx + 0x80]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [ecx]
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push edx
push 3
call dword [eax + 0x70]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [ecx]
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push edx
push 3
call dword [eax + 0x78]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [ecx]
push edx
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push edx
push 3
call dword [eax + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [ecx]
push ebp
push ebx
push edi
call dword [eax + 0x88]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [ecx]
push ebp
push ebx
push edi
call dword [edx + 0x88]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov ecx, dword [esp + 0x10]
jmp 0x4a13c0
mov ebx, dword [esp + 0x28]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 4]
jne 0x4a14c3
mov ecx, 0x66d858
call fcn.004a0360
test eax, eax
je 0x4a14c3
mov ecx, 0x66d858
call fcn.0040a080
test eax, eax
mov ecx, 0x66d858
je 0x4a13fe
call fcn.0040a080
mov esi, eax
jmp 0x4a1419
call fcn.005c1b30
test eax, eax
je 0x4a1415
mov ecx, 0x66d858
call fcn.005c1b30
mov esi, eax
jmp 0x4a1419
mov esi, dword [esp + 0x10]
cmp edi, 0x100
je 0x4a143c
cmp edi, 0x104
je 0x4a143c
mov edx, dword [esi]
push ebp
push ebx
mov ecx, esi
call dword [edx + 0x5c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
call edi
xor ebx, ebx
push 0x11
test ax, ax
setl bl
call edi
xor ecx, ecx
push 0x10
test ax, ax
setl cl
mov dword [esp + 0x30], ecx
call edi
xor edx, edx
mov ecx, dword [esp + 0x28]
test ax, ax
setl dl
mov eax, edx
mov dword [esp + 0x24], eax
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push ebp
push ecx
mov ecx, esi
call dword [edx + 0x58]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov eax, dword [ecx]
push ebp
push ebx
call dword [eax + 0x60]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [ecx]
mov eax, ebx
shr eax, 0x10
and ebx, 0xffff
push eax
push ebx
call dword [edx + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
cmp edi, 0x400
je 0x4a14cf
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret 0x10
mov edx, dword [ecx]
push ebp
push ebx
call dword [edx + 0x64]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10