Function at 0x4e3910
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
cmp dword [0x5b03e8], 0
push esi
jne 0x4e396b
mov esi, dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.MENUACC
push dword [0x57f310]
call esi
push str.LISTACC
push dword [0x57f310]
mov dword [0x5b03e8], eax
call esi
push str.FILEACC
push dword [0x57f310]
mov dword [0x5b03ec], eax
call esi
push str.VIEWACC
push dword [0x57f310]
mov dword [0x5b03f0], eax
call esi
mov dword [0x5b03f4], eax
push 0
push 0
push 0
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x4e3989
xor al, al
pop esi
add esp, 0x1c
ret 8
mov eax, dword [esp + 8]
cmp eax, dword [0x54cb04]
jne 0x4e39c0
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + 0x3800]
push eax
lea eax, [esi + 0x1000]
push eax
push esi
call fcn.004d19c0
push esi
call fcn.004fe8b9
add esp, 4
mov al, 1
pop esi
add esp, 0x1c
ret 8
push ebx
push ebp
push edi
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
test esi, esi
je 0x4e3cf0
cmp dword [0x54b9d0], 0
mov ebx, dword [sym.imp.USER32.dll_GetParent]
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
je 0x4e3a14
cmp dword [0x5b03f4], 0
je 0x4e3a14
push esi
call ebx
mov ecx, dword [0x54b9d0]
cmp eax, ecx
jne 0x4e3a14
lea eax, [esp + 0x10]
push eax
push dword [0x5b03f4]
push ecx
call edi
test eax, eax
jne 0x4e3d06
mov ecx, dword [0x54b9cc]
test ecx, ecx
je 0x4e3a4e
mov eax, dword [0x5b03e8]
test eax, eax
je 0x4e3a53
cmp esi, ecx
je 0x4e3a3d
push esi
call ebx
mov ecx, dword [0x54b9cc]
cmp eax, ecx
jne 0x4e3a4e
mov eax, dword [0x5b03e8]
lea edx, [esp + 0x10]
push edx
push eax
push ecx
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03e8]
push eax
push dword [0x5b03f0]
lea eax, [esp + 0x18]
push eax
call fcn.004cdb00
test al, al
jne 0x4e3d06
mov eax, dword [0x54b9d4]
mov ebp, dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
je 0x4e3a8b
lea ecx, [esp + 0x10]
push ecx
push eax
call ebp
test eax, eax
jne 0x4e3d06
mov eax, dword [0x54b9d8]
test eax, eax
je 0x4e3aa4
lea ecx, [esp + 0x10]
push ecx
push eax
call ebp
test eax, eax
jne 0x4e3d06
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movzx ecx, ax
shr ecx, 0xf
and cl, 1
cmp dword [esp + 0x14], 0x100
jne 0x4e3ae2
cmp dword [esp + 0x18], 9
jne 0x4e3ae2
xor eax, eax
test cl, cl
sete al
lea eax, [eax*2 - 1]
push eax
call fcn.004e3d20
test al, al
jne 0x4e3d06
call fcn.004ddb00
test eax, eax
mov eax, dword [esp + 0x14]
je 0x4e3b1b
cmp eax, 0x100
jne 0x4e3b1b
cmp dword [esp + 0x18], 0x70
jne 0x4e3b36
push 0
push str.HELPArcComment
push dword [0x54b9c8]
call fcn.004cc8a0
pop edi
pop ebp
pop ebx
mov al, 1
pop esi
add esp, 0x1c
ret 8
cmp eax, 0x205
jne 0x4e3c0c
mov eax, dword [esp + 0x10]
cmp eax, dword [0x572f00]
je 0x4e3c1e
mov eax, dword [0x570de0]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, eax
je 0x4e3c6b
cmp esi, dword [0x54cb5c]
je 0x4e3c6b
mov ecx, dword [0x54b9d0]
test ecx, ecx
je 0x4e3b79
mov eax, dword [0x5b03f4]
test eax, eax
je 0x4e3b7e
lea edx, [esp + 0x10]
push edx
push eax
push ecx
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03f4]
cmp dword [0x54b9d4], 0
je 0x4e3bd4
call fcn.004d0120
cmp eax, 9
jne 0x4e3bcf
mov eax, dword [0x5b03f0]
test eax, eax
je 0x4e3bb0
lea ecx, [esp + 0x10]
push ecx
push eax
push dword [0x54b9d4]
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03e8]
test eax, eax
je 0x4e3bcf
lea ecx, [esp + 0x10]
push ecx
push eax
push dword [0x54b9d4]
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03f4]
mov ecx, dword [0x54b9dc]
test ecx, ecx
je 0x4e3cc1
lea edx, [esp + 0x10]
push edx
push eax
push ecx
call edi
test eax, eax
jne 0x4e3d06
lea eax, [esp + 0x10]
push eax
push 0
push 0x8009
push dword [0x54b9dc]
call ebx
jmp 0x4e3cc1
cmp eax, 0xa5
jne 0x4e3c34
cmp dword [esp + 0x18], 5
jne 0x4e3b36
mov ecx, 0x572f00
call fcn.004b2390
pop edi
pop ebp
pop ebx
mov al, 1
pop esi
add esp, 0x1c
ret 8
cmp eax, 0x203
jne 0x4e3b36
mov eax, dword [esp + 0x10]
cmp eax, dword [0x572f00]
jne 0x4e3b36
push dword [0x54b9c8]
mov ecx, 0x572f00
call fcn.004b0970
pop edi
pop ebp
pop ebx
mov al, 1
pop esi
add esp, 0x1c
ret 8
mov ecx, dword [0x5b03ec]
test ecx, ecx
je 0x4e3c8b
cmp esi, eax
jne 0x4e3c8b
lea eax, [esp + 0x10]
push eax
push ecx
push dword [0x54b9c8]
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03e8]
test eax, eax
je 0x4e3ca6
lea ecx, [esp + 0x10]
push ecx
push eax
push dword [0x54b9c8]
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [0x5b03f0]
test eax, eax
je 0x4e3cc1
lea ecx, [esp + 0x10]
push ecx
push eax
push dword [0x54b9c8]
call edi
test eax, eax
jne 0x4e3d06
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4e3cd5
lea ecx, [esp + 0x10]
push ecx
push eax
call ebp
test eax, eax
jne 0x4e3d06
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4e3cf0
lea ecx, [esp + 0x10]
push ecx
push 0
push 0x475
push eax
call ebx
test eax, eax
jne 0x4e3d06
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
pop edi
pop ebp
pop ebx
mov al, 1
pop esi
add esp, 0x1c
ret 8