Function at 0x52cee0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, dword [esp + 0x10]
push esi
push edi
mov edi, dword [esp + 0x14]
lea eax, [edi - 0x7b]
cmp eax, 0x96
ja case.0x52cf00.124
movzx eax, byte [eax + 0x52d178]
jmp dword [eax*4 + 0x52d160]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [0x69ce38]
push edx
push edi
push eax
push ecx
call dword [sym.imp.USER32.dll_CallWindowProcA]
pop edi
pop esi
or eax, 0x86
pop ebx
ret 0x10
cmp bl, 9
jne case.0x52cf00.124
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call esi
test ax, ax
jl 0x52cfbd
push 0x11
call esi
test ax, ax
jl 0x52cfbd
mov esi, dword [esp + 0x10]
push esi
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0xb0
push esi
mov ebx, eax
call edi
mov edx, eax
movzx eax, ax
shr edx, 0x10
sub edx, eax
cmp edx, ebx
jne 0x52cf9d
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xb1
push esi
call edi
push 0
push 0
push 0xb7
push esi
call edi
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
mov ecx, dword [0x69ce38]
push 0x5be7c0
push 1
push 0xc2
push esi
push ecx
call dword [sym.imp.USER32.dll_CallWindowProcA]
pop edi
pop esi
pop ebx
ret 0x10
push 0x10
call esi
movsx edx, ax
mov eax, dword [esp + 0x10]
push edx
push eax
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_GetNextDlgTabItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
cmp bl, 9
jne case.0x52cf00.124
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
mov eax, dword [0x6a124c]
push str.CalcEditPopup
push eax
call sym.convertifd.exe_JfLoadMenu
mov esi, eax
add esp, 8
test esi, esi
je case.0x52cf00.124
push 0
push esi
call dword [sym.imp.USER32.dll_GetSubMenu]
mov ecx, dword [esp + 0x10]
push 0
push ecx
mov ecx, dword [esp + 0x24]
push 0
mov edx, ecx
shr edx, 0x10
push edx
movzx ecx, cx
push ecx
push 2
push eax
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push esi
call dword [sym.imp.USER32.dll_DestroyMenu]
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
movzx eax, bx
add eax, 0xffffd95b
cmp eax, 0x5e
ja case.0x52cf00.124
movzx edx, byte [eax + 0x52d230]
jmp dword [edx*4 + 0x52d210]
push 0
push 0x1a
mov eax, dword [esp + 0x18]
mov ecx, dword [0x69ce38]
push 0x102
push eax
push ecx
call dword [sym.imp.USER32.dll_CallWindowProcA]
pop edi
pop esi
pop ebx
ret 0x10
push 0
push 0x18
push 0x102
jmp 0x52d146
mov ecx, dword [esp + 0x10]
mov edx, dword [0x69ce38]
push 0
push 3
push 0x102
push ecx
push edx
call dword [sym.imp.USER32.dll_CallWindowProcA]
pop edi
pop esi
pop ebx
ret 0x10
push 0
push 0x16
jmp 0x52d070
mov edx, dword [esp + 0x10]
push 0x69ce3c
push 1
push 0xc2
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
mov eax, dword [esp + 0x10]
push 0xffffffffffffffff
push 0
push 0xb1
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
mov eax, dword [0x69ce34]
test eax, eax
je 0x52d114
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x69ce34], eax
mov esi, dword [esp + 0x10]
push eax
push esi
call sym.convertifd.exe_GetAFont
add esp, 8
test eax, eax
mov dword [0x69ce34], eax
je 0x52d137
push 1
push eax
push 0x30
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
ret 0x10
mov ecx, dword [esp + 0x1c]
push ecx
push ebx
push edi
mov edx, dword [esp + 0x1c]
mov eax, dword [0x69ce38]
push edx
push eax
call dword [sym.imp.USER32.dll_CallWindowProcA]
pop edi
pop esi
pop ebx
ret 0x10