Function at 0x44a470
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4b8aa0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
mov ecx, dword [0x9b0bb0]
mov eax, dword [0x9b0bac]
push ebx
push ebp
push esi
mov dword [esp + 0x14], ecx
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], eax
call fcn.004b0208
lea edx, [esp + 0x3c]
mov dword [esp + 0x58], 0
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x4d0290
call sub.MFC42u.DLL_CString::CString_4
mov eax, dword [esp + 0x68]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0x68], 1
call sub.MFC42u.DLL_CString::CString_2
mov byte [esp + 0x64], 0
call fcn.004224e0
mov eax, dword [esp + 0x50]
add esp, 0xc
test eax, eax
jle 0x44a8c4
mov ebp, 5
mov dword [esp + 0x60], ebp
lea ecx, [ebp - 5]
lea edx, [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.00401460
mov eax, dword [eax]
push str.CTRL
push eax
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
lea ecx, [esp + 0x1c]
test eax, eax
sete bl
call sub.MFC42u.DLL_CString::CString
test bl, bl
je 0x44a8ac
cmp ebp, dword [esp + 0x44]
jge 0x44a8c4
lea ecx, [esp + 0x20]
push ebp
push ecx
lea ecx, [esp + 0x44]
call fcn.00401460
mov eax, dword [eax]
mov edi, dword [sym.imp.MSVCRT.dll__wtoi]
push eax
call edi
add esp, 4
lea ecx, [esp + 0x20]
mov esi, eax
call sub.MFC42u.DLL_CString::CString
xor ebx, ebx
test esi, esi
mov dword [esp + 0x10], ebx
jne 0x44a5a0
mov esi, dword [0x4e2a50]
xor eax, eax
test esi, esi
jle 0x44a5d7
mov edx, dword [0x4e2a4c]
lea ecx, [edx + 8]
mov edx, dword [ecx]
cmp edx, ebx
jge 0x44a590
mov ebx, edx
add eax, 4
add ecx, 0x10
cmp eax, esi
jl 0x44a588
mov dword [esp + 0x10], ebx
jmp 0x44a5d7
jle 0x44a5d7
mov eax, dword [0x4e2a50]
lea ecx, [esi - 1]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp eax, ecx
jle 0x44a5d7
mov edx, dword [0x4e2a4c]
shl esi, 4
add esi, edx
mov eax, dword [esi - 8]
mov dword [esp + 0x10], eax
mov eax, dword [esi - 0x10]
mov esi, dword [esi - 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
add ebp, 0xfffffffc
lea eax, [esp + 0x24]
push ebp
push eax
lea ecx, [esp + 0x44]
call fcn.00401460
mov eax, dword [eax]
push eax
call edi
add esp, 4
lea ecx, [esp + 0x24]
mov ebp, eax
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x2c]
lea ebx, [ecx - 2]
lea ecx, [esp + 0x3c]
push ebx
push edx
call fcn.00401460
mov eax, dword [eax]
push eax
call edi
mov dword [esp + 0x2c], eax
add esp, 4
fild dword [esp + 0x28]
fmul dword [0x4bd444]
fimul dword [esp + 0x14]
fiadd dword [esp + 0x10]
call sub.MSVCRT.dll__ftol
lea ecx, [esp + 0x2c]
mov esi, eax
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x30]
dec eax
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.00401460
mov eax, dword [eax]
push eax
call edi
mov dword [esp + 0x2c], eax
add esp, 4
fild dword [esp + 0x28]
fmul dword [0x4bd444]
fimul dword [esp + 0x18]
call sub.MSVCRT.dll__ftol
lea ecx, [esp + 0x30]
mov edi, eax
call sub.MFC42u.DLL_CString::CString
test ebp, ebp
jl 0x44a687
cmp ebp, 5
jle 0x44a68c
cmp ebp, 7
jne 0x44a694
push edi
push esi
call dword [sym.imp.USER32.dll_SetCursorPos]
test ebp, ebp
jne 0x44a6ac
push ebp
push ebp
push edi
push esi
push 0x8002
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x44a8ac
cmp ebp, 1
jne 0x44a6c7
push 0
push 0
push edi
push esi
push 0x8004
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x44a8ac
cmp ebp, 2
jne 0x44a6ea
mov ebx, dword [sym.imp.USER32.dll_mouse_event]
push 0
push 0
push edi
push esi
push ebp
call ebx
push 0
push 0
push edi
push esi
push 4
call ebx
jmp 0x44a8ac
cmp ebp, 3
jne 0x44a705
push 0
push 0
push edi
push esi
push 0x8008
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x44a8ac
cmp ebp, 4
jne 0x44a720
push 0
push 0
push edi
push esi
push 0x8010
call dword [sym.imp.USER32.dll_mouse_event]
jmp 0x44a8ac
cmp ebp, 5
jne 0x44a764
mov ebx, dword [sym.imp.USER32.dll_mouse_event]
push 0
push 0
push edi
push esi
push 0x8008
call ebx
push 0
push 0
push edi
push esi
push 0x8010
call ebx
push 0
push 0
push edi
push esi
push 0x8008
call ebx
push 0
push 0
push edi
push esi
push 0x8010
call ebx
jmp 0x44a8ac
cmp ebp, 6
jne 0x44a8ac
mov edx, dword [esp + 0x60]
lea eax, [esp + 0x34]
add edx, 0xfffffffd
lea ecx, [esp + 0x3c]
push edx
push eax
call fcn.00401460
mov eax, dword [eax]
mov edi, dword [sym.imp.MSVCRT.dll__wtoi]
push eax
call edi
add esp, 4
lea ecx, [esp + 0x34]
mov esi, eax
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x38]
push ebx
push ecx
lea ecx, [esp + 0x44]
call fcn.00401460
mov eax, dword [eax]
push eax
call edi
add esp, 4
lea ecx, [esp + 0x38]
mov ebp, eax
call sub.MFC42u.DLL_CString::CString
cmp bp, 1
jne 0x44a7d6
mov ebx, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0
push 0
push 0x10
call ebx
jmp 0x44a800
cmp bp, 2
jne 0x44a7e6
push 0
push 0
push 0
push 0x11
jmp 0x44a7f4
cmp bp, 4
jne 0x44a7fa
push 0
push 0
push 0
push 0x12
call dword [sym.imp.USER32.dll_keybd_event]
mov ebx, dword [sym.imp.USER32.dll_keybd_event]
cmp si, 0x41
jb 0x44a80c
cmp si, 0x5a
jbe 0x44a818
cmp si, 0x30
jb 0x44a852
cmp si, 0x39
ja 0x44a852
mov edi, dword [sym.imp.USER32.dll_VkKeyScanW]
push 0
push 1
push 0
push esi
call edi
movsx edx, ax
push edx
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
push eax
push esi
call edi
push eax
call ebx
push 0
push 2
push 0
push esi
call edi
movsx eax, ax
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
push eax
push esi
call edi
push eax
jmp 0x44a87a
mov edi, esi
push 0
and edi, 0xffff
push 0
push 0
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
push eax
push esi
call ebx
push 0
push 2
push 0
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
push eax
push esi
call ebx
cmp bp, 1
jne 0x44a88c
push 0
push 2
push 0
push 0x10
jmp 0x44a8aa
cmp bp, 2
jne 0x44a89c
push 0
push 2
push 0
push 0x11
jmp 0x44a8aa
cmp bp, 4
jne 0x44a8ac
push 0
push 2
push 0
push 0x12
call ebx
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x44]
inc ebp
mov dword [esp + 0x60], ebp
lea ecx, [ebp - 5]
cmp ecx, eax
jl 0x44a4fe
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], 0xffffffff
call sub.MFC42u.DLL_CStringArray::CStringArray
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x4c
ret