Function at 0x480c89
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x62ae38]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], ecx
cmp dword [eax + 0x7f4], edi
jne 0x48117c
mov esi, dword [ebp + 8]
push dword [esi]
call fcn.00540b80
cmp eax, edi
mov dword [ebp + 8], eax
mov ebx, 0x100
je 0x480e4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a78]
cmp eax, edi
je 0x480d2a
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x480ce1
cmp ecx, 0x101
jne 0x480d2a
mov esi, dword [esi + 8]
cmp esi, 0x11
je 0x480cf2
cmp esi, 0x1b
jne 0x4810d5
cmp ecx, ebx
jne 0x480d19
cmp esi, 0x1b
jne 0x480d19
push edi
push esi
push 0x102
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 4]
mov dword [eax + 0x1a78], edi
jmp 0x4810d5
push edi
push esi
push ecx
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4810d5
cmp dword [esi + 4], ebx
jne 0x480e17
mov eax, dword [ebp + 8]
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00540b59
cmp eax, edi
je 0x480dcd
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
cmp eax, 0x2710
jne 0x480dcd
cmp dword [esi + 8], 0x1b
jne 0x480d7f
mov eax, dword [ebp - 4]
push edi
push 0x80db
push 0x111
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4810d5
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebx
test ah, 0x80
je 0x480da5
mov eax, dword [esi + 8]
cmp eax, 0x43
je 0x480dbb
cmp eax, 0x58
je 0x480dbb
cmp eax, 0x56
je 0x480dbb
cmp eax, 0x5a
je 0x480dbb
push 0x10
call ebx
test ah, 0x80
je 0x480e17
mov eax, dword [esi + 8]
cmp eax, 0x2d
je 0x480dbb
cmp eax, 0x2e
jne 0x480e17
mov ecx, dword [ebp + 8]
push esi
call fcn.00543c0c
test eax, eax
je 0x480e17
jmp 0x4810d5
cmp dword [esi + 8], 0x1b
jne 0x480e11
mov ecx, dword [0x62ae38]
push edi
mov dword [0x629d94], 1
call fcn.005555eb
test eax, eax
je 0x480e17
mov ecx, dword [0x62ae38]
push edi
call fcn.005555eb
mov ecx, eax
call fcn.00557481
cmp eax, edi
je 0x480e17
push edi
push edi
push 0x1b
mov ecx, eax
call fcn.004afe95
jmp 0x480e17
mov dword [0x629d94], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax]
mov ebx, eax
push str.CMyEditView
push dword [ebx]
call fcn.00526f30
pop ecx
test eax, eax
pop ecx
je 0x480e48
push str.MainFrame
push dword [ebx]
call fcn.00527150
pop ecx
test eax, eax
pop ecx
je 0x48117c
mov ebx, 0x100
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call fcn.00540b59
cmp eax, edi
je 0x480e97
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
mov ebx, eax
push str.CMyEditView
push dword [ebx]
call fcn.00526f30
pop ecx
test eax, eax
pop ecx
je 0x480e8d
push str.MainFrame
push dword [ebx]
call fcn.00527150
pop ecx
test eax, eax
pop ecx
je 0x48117c
mov edx, dword [ebp - 4]
mov ebx, 0x100
jmp 0x480e9a
mov edx, dword [ebp - 4]
cmp dword [edx + 0x2910], edi
je 0x480ec0
cmp dword [esi + 4], ebx
jne 0x480eb8
cmp dword [esi + 8], 0x1b
jne 0x480eb8
mov ecx, dword [ebp - 4]
call fcn.00495f42
mov edx, dword [ebp - 4]
mov dword [0x629d94], edi
jmp 0x480ed3
cmp dword [esi + 4], ebx
jne 0x480ed3
xor eax, eax
cmp dword [esi + 8], 0x1b
sete al
mov dword [0x629d94], eax
cmp dword [ebp + 8], edi
je 0x481003
cmp dword [esi + 4], ebx
jne 0x481003
cmp dword [esi + 8], 9
jne 0x481003
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x481000
push 0x10
xor ebx, ebx
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x480f12
push 1
pop ebx
cmp dword [0x62ad4c], edi
jne 0x480fb3
cmp dword [0x62ad50], edi
mov ecx, dword [0x62ae38]
push edi
jne 0x480f51
call fcn.005555eb
mov dword [0x62ad50], eax
mov eax, dword [0x62ae38]
push ebx
push edi
push 0x224
push dword [eax + 0xbc]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x480fa4
call fcn.005555eb
mov esi, eax
mov eax, dword [0x62ad50]
cmp esi, eax
je 0x480f86
mov ecx, dword [0x62ae38]
push eax
call fcn.0042e112
mov ecx, dword [0x62ae38]
push edi
push edi
call fcn.00557488
mov dword [0x629d54], 1
jmp 0x480f9e
mov eax, dword [0x62ae38]
push ebx
push edi
push 0x224
push dword [eax + 0xbc]
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x62ad50], esi
mov dword [0x62ad4c], 1
jmp 0x4810d5
mov esi, dword [0x62ad50]
cmp esi, edi
je 0x480fe9
cmp dword [0x629d54], edi
je 0x480fe9
mov ecx, dword [0x62ae38]
push edi
call fcn.005555eb
push 0x13
push edi
push edi
push edi
push edi
push 0x64e5d8
mov ecx, esi
mov dword [0x629d54], edi
call fcn.00543dcb
mov eax, dword [0x62ae38]
push ebx
push edi
push 0x224
push dword [eax + 0xbc]
jmp 0x480d1f
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x184c]
cmp ecx, edi
jne 0x481015
cmp dword [edx + 0x1964], edi
je 0x481023
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x481040
cmp eax, 0x104
je 0x481040
cmp ecx, edi
je 0x48117c
mov eax, dword [esi + 4]
cmp eax, 0x102
je 0x481040
cmp eax, 0x106
jne 0x48117c
mov eax, dword [esi + 8]
cmp ecx, edi
mov dword [ebp - 8], eax
je 0x4810dd
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
lea eax, [ebp + 8]
push edi
push eax
lea eax, [ebp - 0x10c]
push eax
mov eax, dword [esi + 0xc]
shr eax, 0x10
movzx eax, al
push eax
push dword [esi + 8]
call dword [sym.imp.USER32.dll_ToAscii]
test eax, eax
jle 0x4810d5
mov ecx, dword [0x62ae38]
push edi
call fcn.005555eb
test eax, eax
je 0x4810cc
mov ecx, dword [0x62ae38]
push edi
call fcn.005555eb
mov ecx, eax
call fcn.00557481
mov ebx, eax
cmp ebx, edi
je 0x4810cc
mov esi, dword [ebp - 4]
cmp dword [esi + 0x193c], edi
je 0x4810c0
movzx eax, word [ebp + 8]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.00484131
push dword [ebp + 8]
mov ecx, ebx
call fcn.004cd6b6
jmp 0x4810cf
mov esi, dword [ebp - 4]
mov dword [esi + 0x184c], edi
push 1
pop eax
jmp 0x48117e
mov esi, dword [esi + 0xc]
mov eax, dword [edx + 0x2724]
shr esi, 0x1c
and esi, 2
cmp dword [edx + 0x193c], edi
mov dword [ebp + 8], eax
je 0x4810fa
dec dword [ebp + 8]
xor eax, eax
cmp dword [ebp + 8], edi
mov dword [ebp - 0xc], eax
jle 0x48117c
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x275c]
movzx ebx, word [ecx + eax*2]
mov eax, ebx
shr eax, 8
movzx eax, al
cmp dword [ebp - 8], eax
jne 0x481170
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov cl, byte [ebp - 0xfc]
mov dl, byte [ebp - 0xfb]
and cl, 0x80
sub cl, 0x80
neg cl
sbb ecx, ecx
and dl, 0x80
and ecx, 0xfffffffc
sub dl, 0x80
movzx eax, bl
add ecx, 4
mov edi, eax
neg dl
sbb edx, edx
and edi, 2
inc edx
cmp edi, esi
jne 0x481170
mov edi, eax
and edi, 4
cmp edi, ecx
jne 0x481170
push 1
pop edi
and eax, edi
cmp eax, edx
je 0x481185
mov eax, dword [ebp - 0xc]
inc eax
cmp eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
jl 0x481104
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
test bl, bl
jne 0x481199
cmp dword [ebp - 8], 0x70
jl 0x481195
cmp dword [ebp - 8], 0x7b
jle 0x481199
mov eax, edi
jmp 0x48119b
xor eax, eax
mov ecx, dword [ebp - 4]
push 0
push eax
push edi
push dword [ebp - 0xc]
call fcn.00481503
mov eax, edi
jmp 0x48117e