Function at 0x450300
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x20], 0
cmp dword [ebp + 8], 0xfffffffc
jne 0x45032a
mov eax, dword [ebp - 4]
mov byte [eax + 0x1420], 1
mov dword [ebp + 8], 0xffffffff
cmp dword [ebp + 8], 0xfffffffe
jne 0x450338
mov eax, dword [ebp - 0x20]
jmp 0x4507d8
cmp dword [ebp + 8], 0xfffffffd
jne 0x450348
mov eax, 0xffff
jmp 0x4507d8
push 1
push 0x498130
push 0
call fcn.004019d0
mov ecx, eax
add ecx, 0xd8
call sub.MFC42.DLL_CStatusBar::SetPaneText
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 0x50
call fcn.0047d3d0
test eax, eax
jne 0x45037e
mov eax, dword [ebp - 0x20]
jmp 0x4507d8
mov dx, word [ebp - 0x18]
mov word [ebp - 0xc], dx
mov eax, dword [ebp - 0x18]
shr eax, 0x10
and eax, 0xffff
and eax, 0xffff
mov ecx, dword [ebp - 4]
movsx ecx, word [ecx + 0xc5a]
cdq
idiv ecx
mov word [ebp - 8], ax
mov dx, word [ebp - 0xc]
push edx
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
call fcn.004686c0
mov word [ebp - 0x10], ax
movsx ecx, word [ebp - 0x10]
cmp ecx, 0xffffffff
jne 0x4503e4
mov dword [ebp - 0x14], 0x7fd0
push 0
mov dx, word [ebp - 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00403610
jmp 0x450417
movsx ecx, word [ebp - 0x10]
push ecx
mov dx, word [ebp - 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00402ca0
mov dword [ebp - 0x14], eax
movsx ecx, word [ebp - 0x10]
push ecx
mov dx, word [ebp - 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00403610
cmp dword [ebp + 8], 0xffffffff
jne 0x450554
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc66], 0
je 0x4504b3
movsx esi, word [ebp - 8]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call fcn.00401100
movsx eax, word [eax + 0xa9]
cmp esi, eax
jne 0x45046b
movsx esi, word [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x131c]
call fcn.00401100
movsx edx, word [eax + 0xab]
cmp esi, edx
je 0x4504b3
cmp dword [ebp - 0x14], 0x7fd0
je 0x4504b3
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x131c]
call fcn.00401990
mov ecx, eax
call fcn.00425520
mov dword [ebp - 0x1c], eax
movsx edx, word [ebp - 0x10]
push edx
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x131c]
call fcn.00401990
mov ecx, eax
call fcn.004255f0
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 4]
mov ax, word [ebp - 0xc]
mov word [edx + 0xc5e], ax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x131c]
call fcn.00401100
mov dx, word [ebp - 8]
mov word [eax + 0xa9], dx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00401100
mov cx, word [ebp - 0x10]
mov word [eax + 0xab], cx
mov dx, word [ebp - 0x10]
push edx
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
call fcn.00468510
mov ecx, dword [ebp - 4]
mov word [ecx + 0xc60], ax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0xc62], eax
mov ecx, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + 0x1420]
test edx, edx
je 0x450536
mov eax, dword [ebp - 4]
mov byte [eax + 0x1420], 0
jmp 0x45054c
push 0
push 0x16
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call sub.MFC42.DLL_CDocument::UpdateAllViews
mov eax, dword [ebp - 0x20]
jmp 0x4507d8
mov eax, dword [ebp - 4]
mov cx, word [ebp - 0xc]
mov word [eax + 0xc5e], cx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call fcn.00401100
mov cx, word [ebp - 8]
mov word [eax + 0xa9], cx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call fcn.00401100
mov cx, word [ebp - 0x10]
mov word [eax + 0xab], cx
mov dx, word [ebp - 0x10]
push edx
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
call fcn.00468510
mov ecx, dword [ebp - 4]
mov word [ecx + 0xc60], ax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0xc62], eax
mov ecx, dword [ebp - 4]
xor edx, edx
mov dl, byte [ecx + 0x1420]
test edx, edx
je 0x4505d7
mov eax, dword [ebp - 4]
mov byte [eax + 0x1420], 0
jmp 0x4505ed
push 0
push 0x16
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call sub.MFC42.DLL_CDocument::UpdateAllViews
cmp dword [ebp - 0x14], 0x7fd0
jne 0x4505fe
mov eax, dword [ebp - 0x20]
jmp 0x4507d8
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test eax, eax
jge 0x450614
xor eax, eax
jmp 0x4507d8
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
test ecx, ecx
jge 0x45062a
xor eax, eax
jmp 0x4507d8
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc66], 0
je 0x4507d5
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00405e00
test eax, eax
jne 0x4507d5
push str.Rec_Struct
call sub.WINDCS32.dll_Ordinal_54_2
push eax
push str.Editrec.exe
call sub.WINDCS32.dll_Ordinal_40_4
test eax, eax
jne 0x450671
or eax, 0xffffffff
jmp 0x4507d8
push 1
push 0x45
mov cx, word [ebp - 0x10]
push ecx
mov dx, word [ebp - 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00408010
mov ecx, dword [0x4aa24c]
mov edx, dword [ecx + 0x4b8]
push edx
mov ax, word [ebp - 0x10]
push eax
mov cx, word [ebp - 8]
push ecx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call fcn.004074e0
test eax, eax
je 0x4507a4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1421]
call fcn.004395d0
test eax, eax
je 0x45077e
push 0
push 0
mov ecx, dword [ebp - 4]
add ecx, 0x50
call fcn.0047a420
mov ecx, dword [ebp - 4]
call fcn.00450ba0
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 0xc60]
push edx
mov ax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
call fcn.00468420
push eax
mov cx, word [ebp - 8]
push ecx
mov ecx, dword [ebp - 4]
call fcn.00468600
mov word [ebp - 0xc], ax
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x131c]
call fcn.00401100
movsx eax, word [eax + 0xa9]
add eax, 1
mov ecx, dword [ebp - 4]
movsx edx, word [ecx + 0xc5a]
imul eax, edx
sub eax, 1
push eax
movsx eax, word [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x50
call fcn.0047d440
push 1
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x131c]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x131c]
mov edx, dword [eax]
call dword [edx + 0x64]
push 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x131c]
mov edx, dword [eax]
call dword [edx + 0x58]
jmp 0x45079a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call fcn.00408320
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x1421]
call fcn.004395d0
push 0xffffffffffffffff
mov ecx, dword [ebp - 4]
call fcn.00450300
mov edx, dword [ebp - 4]
xor eax, eax
mov al, byte [edx + 0x1420]
test eax, eax
je 0x4507bf
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1420], 0
jmp 0x4507d5
push 0
push 0x17
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x131c]
call sub.MFC42.DLL_CDocument::UpdateAllViews
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4