Function at 0x7c446558
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
push edi
mov esi, ecx
push dword [ebp + 8]
call sym.MFC40.DLL_Ordinal_4704
test eax, eax
jne 0x7c46bd95
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x7c4465fa
push eax
call sym.MFC40.DLL_Ordinal_2515
test byte [esi + 0x68], 0x20
mov dword [ebp - 4], eax
je 0x7c446608
cmp edi, 0x200
jae 0x7c446621
cmp edi, 0xa0
jae 0x7c4466fd
mov ecx, esi
call sym.MFC40.DLL_Ordinal_3328
test eax, eax
je 0x7c4465bc
cmp dword [eax + 0x54], 0
jne 0x7c46bddb
cmp dword [ebp - 4], 0
je 0x7c4465e7
mov ecx, dword [ebp - 4]
push dword [ebp + 8]
mov ebx, dword [ecx]
call dword [ebx + 0x94]
test eax, eax
jne 0x7c446786
mov ecx, dword [ebp - 4]
call sym.MFC40.DLL_Ordinal_3043
mov dword [ebp - 4], eax
test eax, eax
jne 0x7c4465c2
push dword [ebp + 8]
mov ecx, esi
call sym.MFC40.DLL_Ordinal_4692
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x7c446580
cmp edi, 0x201
je 0x7c44658f
cmp edi, 0x202
jne 0x7c4465a7
jmp 0x7c44658f
cmp edi, 0x209
ja 0x7c44659b
call sym.MFC40.DLL_Ordinal_1042
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
add eax, 0x14
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x14]
push ecx
mov dword [ebp - 0x10], edx
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_ScreenToClient]
push 0x28
lea ecx, [ebp - 0x3c]
push 0
push ecx
call sub.MSVCRT40.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x28
push ecx
mov ebx, dword [esi]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
mov ecx, esi
call dword [ebx + 0x68]
cmp dword [ebp - 0x18], 0xffffffff
mov ebx, eax
jne 0x7c44670e
cmp edi, 0x201
je 0x7c44671f
mov dword [ebp - 0xc], 0
cmp edi, 0x201
je 0x7c4466b3
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x7c46bdab
test ebx, ebx
jl 0x7c44674e
cmp dword [ebp - 0xc], 0
jne 0x7c44674e
cmp edi, 0x202
je 0x7c46bdb9
test byte [esi + 0x64], 8
jne 0x7c446741
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x7c446741
mov eax, dword [ebp - 8]
cmp dword [eax + 0x104], ebx
jne 0x7c44672e
mov eax, dword [ebp - 8]
mov dword [eax + 0x104], ebx
jmp 0x7c4465a7
cmp edi, 0xa9
ja 0x7c4465a7
jmp 0x7c44662d
push dword [ebp - 0x18]
call dword [sym.imp.MSVCRT40.dll_free]
add esp, 4
jmp 0x7c446687
test byte [ebp - 0x35], 0x80
je 0x7c446693
jmp 0x7c46bd9f
push 0x12c
mov ecx, esi
push 0xe000
call sym.MFC40.DLL_Ordinal_5020
jmp 0x7c4466ef
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0xe0]
jmp 0x7c4466ef
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x7c44677a
mov eax, dword [esi]
push 0xffffffffffffffff
mov ecx, esi
call dword [eax + 0xe0]
push 0xe001
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x7c4466ef
cmp dword [ebp - 0xc], 0
je 0x7c4466ef
jmp 0x7c44675b
mov eax, 1
jmp 0x7c4465f1
mov eax, 1
jmp 0x7c4465f1
mov dword [ebp - 0xc], 1
jmp 0x7c44669a
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x104]
jmp 0x7c4466b3
mov eax, dword [esi]
push 0xffffffffffffffff
mov ecx, esi
call dword [eax + 0xe0]
push 0xc8
mov ecx, esi
push 0xe001
call sym.MFC40.DLL_Ordinal_5020
jmp 0x7c4466ef
xor eax, eax
jmp 0x7c4465f1