Function at 0x44ac40
Capabilities:
Check for time delay via queryperformancecounter
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57a293
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1fe0
call fcn.00552f40
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], edi
mov eax, dword [edi + 0x20]
push ecx
xor esi, esi
mov ecx, esp
cmp eax, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], esp
mov dword [ecx], eax
je 0x44ac8b
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea ecx, [ebp + 8]
call fcn.0044c480
test al, al
je 0x44ac9e
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x18], esi
cmp esi, 0xa
jge 0x44b3a4
mov edx, dword [0x64b2e0]
mov byte [ebp - 4], 1
mov eax, dword [edx + 0x944]
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x44acf0
push 0x91
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test eax, eax
jne 0x44acd6
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea ecx, [ebp - 0xa4]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebp + 0xc]
test eax, eax
mov eax, dword [edi]
push eax
je 0x44ae13
lea edx, [ebp - 0x24]
push edx
call fcn.0045e0b0
add esp, 8
mov ecx, dword [eax]
mov byte [ebp - 4], 2
test ecx, ecx
je 0x44ad1d
call fcn.00427d70
mov esi, eax
jmp 0x44ad1f
xor esi, esi
push esi
mov word [ebp - 0x6c], 8
call fcn.0057132d
test eax, eax
mov dword [ebp - 0x64], eax
jne 0x44ad40
test esi, esi
je 0x44ad40
push 0x8007000e
call fcn.00571280
mov eax, dword [ebp + 8]
mov word [ebp - 0x7c], 9
mov dword [ebp - 0x74], eax
mov bl, 3
mov ecx, dword [eax]
push eax
mov byte [ebp - 4], bl
call dword [ecx + 4]
mov eax, dword [edi + 8]
mov byte [ebp - 4], 4
test eax, eax
jne 0x44ad6c
push 0x80004003
call fcn.00571280
mov ecx, dword [ebp - 0x7c]
push 1
push 1
push 0
sub esp, 0x10
mov esi, dword [edi + 8]
mov eax, esp
sub esp, 0x10
mov edx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x78]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x70]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x6c]
mov eax, esp
push esi
mov dword [eax], ecx
mov ecx, dword [ebp - 0x68]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x64]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x60]
mov dword [eax + 0xc], ecx
call dword [edx + 0xa0]
test eax, eax
jge 0x44adc6
push 0x5ffec8
push esi
push eax
call fcn.0057128e
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [ebp - 0x7c]
push edx
mov byte [ebp - 4], bl
call esi
test eax, eax
jge 0x44addf
push eax
call fcn.00571280
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 2
push eax
call esi
test eax, eax
jge 0x44adf3
push eax
call fcn.00571280
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x44af31
call fcn.00427d20
mov dword [ebp - 0x24], 0
jmp 0x44af31
lea ecx, [ebp - 0x2c]
push ecx
call fcn.0045e0b0
add esp, 8
mov ecx, dword [eax]
mov byte [ebp - 4], 5
test ecx, ecx
je 0x44ae32
call fcn.00427d70
mov esi, eax
jmp 0x44ae34
xor esi, esi
push esi
mov word [ebp - 0x5c], 8
call fcn.0057132d
test eax, eax
mov dword [ebp - 0x54], eax
jne 0x44ae55
test esi, esi
je 0x44ae55
push 0x8007000e
call fcn.00571280
mov eax, dword [ebp + 8]
mov word [ebp - 0x8c], 9
mov dword [ebp - 0x84], eax
mov bl, 6
mov edx, dword [eax]
push eax
mov byte [ebp - 4], bl
call dword [edx + 4]
mov eax, dword [edi + 8]
mov byte [ebp - 4], 7
test eax, eax
jne 0x44ae87
push 0x80004003
call fcn.00571280
mov edx, dword [ebp - 0x8c]
push 1
push 3
push 2
sub esp, 0x10
mov esi, dword [edi + 8]
mov ecx, esp
sub esp, 0x10
mov eax, dword [esi]
mov dword [ecx], edx
mov edx, dword [ebp - 0x88]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x84]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x5c]
mov ecx, esp
push esi
mov dword [ecx], edx
mov edx, dword [ebp - 0x58]
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x54]
mov dword [ecx + 8], edx
mov edx, dword [ebp - 0x50]
mov dword [ecx + 0xc], edx
call dword [eax + 0xa0]
test eax, eax
jge 0x44aeea
push 0x5ffec8
push esi
push eax
call fcn.0057128e
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x8c]
push eax
mov byte [ebp - 4], bl
call esi
test eax, eax
jge 0x44af06
push eax
call fcn.00571280
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 5
push ecx
call esi
test eax, eax
jge 0x44af1a
push eax
call fcn.00571280
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x44af31
call fcn.00427d20
mov dword [ebp - 0x2c], 0
mov eax, dword [edi + 8]
test eax, eax
jne 0x44af42
push 0x80004003
call fcn.00571280
mov esi, dword [edi + 8]
lea eax, [ebp - 0x40]
push eax
push esi
mov edx, dword [esi]
call dword [edx + 0x68]
test eax, eax
jge 0x44af5f
push 0x5ffec8
push esi
push eax
call fcn.0057128e
mov eax, dword [ebp - 0x40]
mov dword [edi + 0xc], eax
mov dword [0x63f578], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x44af9e
mov eax, dword [edi + 8]
test eax, eax
jne 0x44af82
push 0x80004003
call fcn.00571280
mov esi, dword [edi + 8]
push esi
mov ecx, dword [esi]
call dword [ecx + 0x98]
test eax, eax
jge 0x44af9e
push 0x5ffec8
push esi
push eax
call fcn.0057128e
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x18], 1
test eax, eax
je 0x44b050
lea edx, [ebp - 0x9c]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xa0]
sub eax, esi
sbb ecx, edx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], ecx
fild qword [ebp - 0x94]
fild qword [ebp - 0xb0]
fdivp st(1)
fst qword [ebp - 0x4c]
fmul qword [0x5aea58]
fild dword [ebp - 0x1c]
fxch st(1)
fcompp
fnstsw ax
test ah, 1
jne 0x44b050
lea ecx, [ebp - 0x20]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [edi]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
push edx
push eax
push ecx
lea edx, [ebp - 0x20]
push str.__12.6f__s
push edx
mov byte [ebp - 4], 8
call sub.MFC42.DLL_CString::Format
mov ecx, dword [0x64b2e0]
mov edx, dword [ebp - 0x20]
add esp, 0x14
mov eax, dword [ecx]
push edx
call dword [eax + 0x3a4]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x44b3b8
jmp 0x44b3b2
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x44b3b8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8