Function at 0x52ac88
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x48
mov eax, 0x59f321
call fcn.00565b18
mov edi, ecx
cmp byte [edi + 0x2c8], 0
je 0x52aca6
mov byte [edi + 0x2c8], 0
cmp dword [edi + 0x35c], 0
je 0x52b023
mov eax, dword [edi]
call dword [eax + 0x19c]
push eax
mov ecx, 0x611a18
call fcn.004f87b5
mov dword [ebp - 0x38], eax
test eax, eax
jne 0x52acda
cmp dword [0x611a1c], eax
jne 0x52acda
call fcn.004465fa
mov eax, dword [edi + 0x35c]
mov ecx, edi
mov esi, dword [edi + 0x358]
mov dword [ebp - 0x34], eax
mov eax, dword [edi]
call dword [eax + 0x38c]
mov ecx, edi
call fcn.0052a26c
mov edx, dword [ebp - 0x34]
mov ebx, eax
cmp esi, edx
jne 0x52ad27
mov ecx, edx
sub ecx, 8
je 0x52af5e
sub ecx, 1
je 0x52adca
sub ecx, 0xa
je 0x52ad33
mov eax, dword [edi]
mov ecx, edi
push edx
call dword [eax + 0x37c]
mov ecx, edi
call fcn.0043d23b
jmp 0x52b031
mov esi, dword [0x61b498]
test esi, esi
jne 0x52ad4a
mov ecx, edi
call fcn.0043da08
mov esi, eax
test esi, esi
je 0x52adbb
push esi
push 0x5b2a00
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
je 0x52ad68
mov edx, dword [eax]
mov ecx, eax
push edi
call dword [edx + 0x218]
jmp 0x52adb3
push esi
push 0x5b2470
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
je 0x52ad86
mov edx, dword [eax]
mov ecx, eax
push edi
call dword [edx + 0x1f8]
jmp 0x52adb3
push esi
push 0x5b3010
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
jne 0x52ada8
push esi
push 0x5b33c8
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
je 0x52adbb
mov edx, dword [eax]
mov ecx, eax
push edi
call dword [edx + 0x210]
test eax, eax
je 0x52ad27
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2dc]
jmp 0x52ad27
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x52af09
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x340]
test eax, eax
je 0x52af09
mov eax, dword [edi + 0xa4]
xor esi, esi
push esi
push esi
push 0xb
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [edi + 0x2f8], esi
jne 0x52ae91
push 0xa
lea ecx, [ebp - 0x54]
call fcn.00472286
lea eax, [ebp - 0x54]
mov dword [ebp - 4], esi
push eax
mov ecx, ebx
call fcn.005330f5
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x52ae83
mov ecx, eax
test eax, eax
je 0x52acd5
push dword [ecx + 8]
mov eax, dword [eax]
push 0x611c10
mov dword [ebp - 0x38], eax
call fcn.004482ad
mov esi, eax
pop ecx
pop ecx
mov ecx, esi
mov dword [ebp - 0x34], esi
mov edx, dword [esi]
call dword [edx + 0x340]
test eax, eax
je 0x52ae7a
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi]
push 0
push 0
call dword [eax + 0x194]
mov ecx, dword [ebp - 0x34]
push eax
push 1
call dword [esi + 0x368]
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x52ae2d
xor esi, esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.004722ac
jmp 0x52aeb8
mov ecx, dword [edi + 0x330]
mov eax, dword [ecx]
call dword [eax + 0x1a0]
push eax
push 0x5c7598
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
je 0x52aeb8
push esi
mov ecx, eax
call fcn.00537f48
mov eax, dword [edi + 0xa4]
push esi
push 1
push 0xb
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [edi + 0xa4]
push 0x5ac39c
call fcn.004482ad
pop ecx
pop ecx
test eax, eax
je 0x52aeee
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx + 0x178]
mov eax, dword [edi + 0xa4]
push 0x181
push esi
push esi
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
jmp 0x52b031
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x52b031
test ebx, ebx
je 0x52b031
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [esi + 0x11c]
call dword [eax + 0x194]
test esi, eax
je 0x52b031
mov eax, dword [ebx]
mov ecx, ebx
mov esi, dword [edi]
push 1
push 0
call dword [eax + 0x194]
push eax
xor eax, eax
mov ecx, edi
cmp dword [edi + 0x2f8], eax
sete al
push eax
call dword [esi + 0x368]
jmp 0x52b031
cmp dword [0x61b1e0], 0
je 0x52b031
push 8
mov ecx, edi
call fcn.0052a1e2
mov ebx, eax
test ebx, ebx
je 0x52b031
mov edx, dword [ebx]
lea eax, [ebp - 0x30]
push eax
mov ecx, ebx
call dword [edx + 0xc]
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.00447851
push dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
push dword [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.004471ab
mov dword [ebx + 0x14], 1
mov ecx, edi
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], eax
call fcn.00443dd7
test eax, 0x400000
je 0x52aff7
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x30]
add esi, eax
mov dword [ebp - 0x34], esi
push dword [ebp - 0x38]
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x34]
mov esi, dword [edi + 0x20]
call dword [eax + 0x2e4]
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x52b031
and dword [ebx + 0x14], 0
mov ecx, edi
push ebx
call fcn.0052c328
jmp 0x52b031
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004b9ac1
call fcn.00565ac2
ret 0xc