Function at 0x4ef880
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
cmp dword [0x5e87c0], 0
jne 0x4ef914
push str.MENUACC
push dword [0x5b76d8]
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.LISTACC
push dword [0x5b76d8]
mov dword [0x5e87c0], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.FILEACC
push dword [0x5b76d8]
mov dword [0x5e87c4], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.VIEWACC
push dword [0x5b76d8]
mov dword [0x5e87c8], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.ERRACC
push dword [0x5b76d8]
mov dword [0x5e87cc], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push 0x555ab8
push dword [0x5b76d8]
mov dword [0x5e87d0], eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [0x5e87d4], eax
push 0
push 0
push 0
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x4ef931
xor al, al
add esp, 0x1c
ret 8
mov eax, dword [esp + 4]
push esi
cmp eax, dword [0x57f010]
jne 0x4ef969
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + 0x3800]
push eax
lea eax, [esi + 0x1000]
push eax
push esi
call fcn.004dcf00
push esi
call fcn.00524aa2
add esp, 4
mov al, 1
pop esi
add esp, 0x1c
ret 8
mov esi, dword [esp + 4]
push edi
test esi, esi
je 0x4efca3
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov edx, dword [0x57dfa4]
mov edi, eax
test edx, edx
je 0x4ef9ac
mov ecx, dword [0x5e87cc]
test ecx, ecx
je 0x4ef9b2
cmp edi, edx
jne 0x4ef9b2
lea eax, [esp + 8]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov ecx, dword [0x5e87cc]
mov eax, dword [0x57dfac]
test eax, eax
je 0x4ef9dd
test ecx, ecx
je 0x4ef9dd
cmp edi, eax
jne 0x4ef9dd
lea ecx, [esp + 8]
push ecx
push dword [0x5e87d0]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x57dfa0]
test eax, eax
je 0x4efa0d
mov ecx, dword [0x5e87d4]
test ecx, ecx
je 0x4efa0d
cmp esi, eax
je 0x4ef9f8
cmp edi, eax
jne 0x4efa0d
lea edx, [esp + 8]
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
push dword [0x5e87c0]
lea eax, [esp + 0xc]
push dword [0x5e87c8]
push eax
call fcn.004d8b20
test al, al
jne 0x4efcb9
mov eax, dword [0x57dfa8]
test eax, eax
je 0x4efa48
lea ecx, [esp + 8]
push ecx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x57dfac]
test eax, eax
je 0x4efa65
lea ecx, [esp + 8]
push ecx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x4efcb9
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
cmp dword [esp + 0xc], 0x100
jne 0x4efaa3
cmp dword [esp + 0x10], 9
jne 0x4efaa3
xor eax, eax
test cl, cl
sete al
lea eax, [eax*2 - 1]
push eax
call fcn.004efcd0
test al, al
jne 0x4efcb9
call fcn.004e97f0
test eax, eax
mov eax, dword [esp + 0xc]
je 0x4efada
cmp eax, 0x100
jne 0x4efada
cmp dword [esp + 0x10], 0x70
jne 0x4efaf5
push 0
push str.HELPArcComment
push dword [0x57cf9c]
call fcn.004d7520
pop edi
mov al, 1
pop esi
add esp, 0x1c
ret 8
cmp eax, 0x205
jne 0x4efbab
mov eax, dword [esp + 8]
cmp eax, dword [0x5ab4c4]
je 0x4efbbd
mov eax, dword [0x5a93a8]
cmp esi, eax
je 0x4efc06
cmp esi, dword [0x57f02c]
je 0x4efc06
cmp dword [0x57dfa8], 0
je 0x4efb67
call fcn.004db690
cmp eax, 9
jne 0x4efb67
mov eax, dword [0x5e87c8]
test eax, eax
je 0x4efb44
lea ecx, [esp + 8]
push ecx
push eax
push dword [0x57dfa8]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x5e87c0]
test eax, eax
je 0x4efb67
lea ecx, [esp + 8]
push ecx
push eax
push dword [0x57dfa8]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x57dfb0]
test eax, eax
je 0x4efc6c
lea ecx, [esp + 8]
push ecx
push dword [0x5e87cc]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
lea eax, [esp + 8]
push eax
push 0
push 0x8009
push dword [0x57dfb0]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4efc6c
cmp eax, 0xa5
jne 0x4efbd1
cmp dword [esp + 0x10], 5
jne 0x4efaf5
mov ecx, 0x5ab4c4
call fcn.004bbc00
pop edi
mov al, 1
pop esi
add esp, 0x1c
ret 8
cmp eax, 0x203
jne 0x4efaf5
mov eax, dword [esp + 8]
cmp eax, dword [0x5ab4c4]
jne 0x4efaf5
push dword [0x57cf9c]
mov ecx, 0x5ab4c4
call fcn.004ba180
pop edi
mov al, 1
pop esi
add esp, 0x1c
ret 8
mov ecx, dword [0x5e87c4]
test ecx, ecx
je 0x4efc2e
cmp esi, eax
jne 0x4efc2e
lea eax, [esp + 8]
push eax
push ecx
push dword [0x57cf9c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x5e87c0]
test eax, eax
je 0x4efc4d
lea ecx, [esp + 8]
push ecx
push eax
push dword [0x57cf9c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [0x5e87c8]
test eax, eax
je 0x4efc6c
lea ecx, [esp + 8]
push ecx
push eax
push dword [0x57cf9c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4efcb9
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4efc84
lea ecx, [esp + 8]
push ecx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x4efcb9
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4efca3
lea ecx, [esp + 8]
push ecx
push 0
push 0x475
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x4efcb9
lea eax, [esp + 8]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 8]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
pop edi
mov al, 1
pop esi
add esp, 0x1c
ret 8