Function at 0x52a9c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, ecx
push edi
mov dword [esp + 0x14], edx
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
push 0x461
push esi
call ebx
mov ebp, eax
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, ebp
je 0x52ac49
mov edx, 0x3e7
mov ecx, 0x5c5218
call fcn.00420e60
mov eax, dword [0x5c5e38]
test eax, eax
je 0x52aa27
push 0x480
push esi
call ebx
push eax
call dword [sym.imp.USER32.dll_IsWindow]
neg eax
sbb eax, eax
and eax, 4
add eax, 0x47c
jmp 0x52aa2c
mov eax, 0x480
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0x5c5218
push 0x3e7
push 0xd
push eax
push esi
call ebp
mov al, byte [0x5c5218]
test al, al
je 0x52ac49
push 0x2a
push 0x5c5218
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x52ac49
push 0x3f
push 0x5c5218
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x52ac49
mov edx, 0x3e7
mov ecx, 0x5c4e30
call fcn.00420e60
mov edx, 0x64
mov ecx, 0x5f4f80
call fcn.00420e60
push 0x5c4e30
push 0x64
push 0xd
push 0x98
push edi
call ebp
mov cl, byte [0x5c4e30]
mov bl, 0x20
cmp cl, bl
mov eax, 0x5c4e30
jne 0x52aac8
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
je 0x52aac0
cmp byte [eax], 0
je 0x52ab08
mov edx, 0x5f4f80
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x52aad4
mov eax, 0x5f4f80
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52aae6
sub eax, edx
dec eax
test eax, eax
jle 0x52ab08
cmp byte [eax + 0x5f4f80], bl
jne 0x52ab08
mov byte [eax + 0x5f4f80], 0
dec eax
test eax, eax
jg 0x52aaf4
mov al, byte [0x5f4f80]
test al, al
jne 0x52ab36
push 0x98
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
xor ecx, ecx
call fcn.0041f0a0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
mov esi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push 0x90
push edi
call esi
dec eax
neg eax
sbb eax, eax
push 0x97
inc eax
push edi
mov dword [0x5f5550], eax
call esi
dec eax
neg eax
sbb eax, eax
push 0x92
inc eax
push edi
mov dword [0x5bfd90], eax
call esi
mov ecx, dword [esp + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [0x5bfd98], eax
call fcn.0052a4d0
mov al, byte [0x5f6170]
test al, al
jne 0x52aba5
push 0x460
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
call esi
test ah, ah
jns 0x52abeb
push 0x53
call esi
test ah, ah
js 0x52abeb
push 9
push 0x5f6170
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x52abe0
call fcn.004f0b80
push eax
xor edx, edx
mov ecx, 0x5f6170
call fcn.005323b0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
push 0
push 0
push 0x147
push 0x9a
push edi
call ebp
cmp eax, 0xffffffff
jne 0x52ac03
xor eax, eax
test eax, eax
mov ecx, 0x200
mov dword [0x5bfd94], ecx
jle 0x52ac49
add ecx, ecx
dec eax
jne 0x52ac12
cmp ecx, 0x200
mov dword [0x5bfd94], ecx
jge 0x52ac37
pop edi
pop esi
pop ebp
mov dword [0x5bfd94], 0x200
xor eax, eax
pop ebx
pop ecx
ret
cmp ecx, 0x2000
jle 0x52ac49
mov dword [0x5bfd94], 0x2000
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret