Function at 0x45d629
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x64
mov eax, 0x560d3d
call fcn.004cca4a
mov esi, ecx
mov edi, dword [ebp + 0xc]
lea eax, [esi + 4]
xor ecx, ecx
mov dword [ebp - 0x48], edi
test esi, esi
cmove eax, ecx
lea ecx, [ebp - 0x3c]
push eax
call fcn.0041e1f3
mov dword [ebp - 0x3c], 0x57debc
mov eax, dword [ebp + 8]
lea ecx, [esi + 4]
mov dword [ebp - 0x18], eax
lea edx, [ebp - 0x3c]
mov eax, dword [ecx]
xor ebx, ebx
push edx
push ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], edi
call dword [eax + 0x1f0]
cmp dword [ebp - 0x14], ebx
jne 0x45d839
cmp dword [ebp + 0x10], ebx
je 0x45d6a8
cmp edi, 0xffffffff
je 0x45d7fa
imul ecx, edi, 0xc
xor eax, eax
add ecx, dword [esi + 0x3b0]
cmp dword [ecx + 8], ebx
sete al
mov dword [ecx + 8], eax
jmp 0x45d7ec
cmp dword [esi + 0x3a8], ebx
lea ebx, [esi + 0x3a4]
jne 0x45d6bb
cmp dword [ebx], 0
je 0x45d6e1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x45d6e1
cmp edi, 0xffffffff
je 0x45d7fa
imul ecx, edi, 0xc
xor eax, eax
add ecx, dword [esi + 0x3b0]
cmp dword [ecx + 8], eax
jmp 0x45d69d
cmp dword [esi + 0x3a8], 0
jne 0x45d6f3
cmp dword [ebx], 0
je 0x45d788
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x45d788
cmp edi, 0xffffffff
je 0x45d7fa
xor eax, eax
cmp dword [ebp + 8], 0xffffffff
cmovne eax, dword [ebp + 8]
mov ecx, eax
mov eax, edi
cmp ecx, edi
mov dword [ebp + 8], ecx
mov edx, ecx
cmovg eax, ecx
cmp eax, ecx
mov dword [ebp - 0x44], eax
mov ecx, esi
cmove edx, edi
xor ebx, ebx
mov dword [ebp - 0x40], edx
call fcn.0045cdee
test eax, eax
jle 0x45d7fa
xor edi, edi
mov ecx, dword [esi + 0x3b0]
mov edx, dword [ecx + edi + 8]
cmp ebx, dword [ebp - 0x40]
jl 0x45d75c
cmp ebx, dword [ebp - 0x44]
jg 0x45d75c
xor eax, eax
inc eax
jmp 0x45d75e
xor eax, eax
mov dword [ecx + edi + 8], eax
cmp edx, eax
je 0x45d76e
push ebx
mov ecx, esi
call fcn.0045dd89
mov ecx, esi
inc ebx
add edi, 0xc
call fcn.0045cdee
cmp ebx, eax
jl 0x45d743
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x48]
mov dword [ebp + 8], eax
jmp 0x45d7fa
or dword [esi + 0x364], 0xffffffff
mov ecx, esi
xor ebx, ebx
call fcn.0045cdee
test eax, eax
jle 0x45d7d7
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [esi + 0x3b0]
cmp ebx, edi
je 0x45d7c2
cmp dword [eax + ecx + 8], 0
je 0x45d7c2
and dword [eax + ecx + 8], 0
mov ecx, esi
push ebx
call fcn.0045dd89
mov ecx, dword [ebp - 0x40]
add ecx, 0xc
inc ebx
mov dword [ebp - 0x40], ecx
mov ecx, esi
call fcn.0045cdee
mov ecx, dword [ebp - 0x40]
cmp ebx, eax
jl 0x45d7a1
cmp edi, 0xffffffff
je 0x45d7fa
imul eax, edi, 0xc
add eax, dword [esi + 0x3b0]
mov dword [eax + 8], 1
push edi
mov ecx, esi
mov dword [esi + 0x364], edi
call fcn.0045dd89
xor ecx, ecx
lea eax, [esi + 4]
test esi, esi
cmove eax, ecx
lea ecx, [ebp - 0x70]
push eax
call fcn.0041e1f3
mov dword [ebp - 0x70], 0x57df74
mov eax, dword [ebp + 8]
lea ecx, [esi + 4]
mov dword [ebp - 0x4c], eax
lea edx, [ebp - 0x70]
mov eax, dword [ecx]
push edx
push ecx
mov byte [ebp - 4], 1
mov dword [ebp - 0x50], edi
call dword [eax + 0x1f0]
lea ecx, [ebp - 0x70]
call fcn.0041ea49
lea ecx, [ebp - 0x3c]
call fcn.0041ea49
call fcn.004cc9f9
ret 0xc