Function at 0x44db77
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x7c
mov eax, 0x50f95c
call fcn.004db4f7
mov ebx, ecx
call fcn.0040d33d
push eax
lea ecx, [ebp - 0x58]
call fcn.0040d16b
mov dword [ebp - 4], 1
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp + 8]
call fcn.00410cc2
lea eax, [ebp - 0x40]
xorps xmm0, xmm0
push eax
push dword [ebp + 8]
movups xmmword [ebp - 0x40], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebp + 8]
lea esi, [ebp - 0x40]
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [sym.imp.USER32.dll_GetDC]
call edi
push 0x5a
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xd
pop esi
cmp eax, 0x60
je 0x44dc04
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x54bfa8]
divsd xmm0, qword [0x54bfb0]
addsd xmm0, qword [0x54bf78]
cvttsd2si esi, xmm0
cmp byte [ebp + 0xc], 0
je 0x44dc17
push 0xfffffffffffffffc
pop eax
sub eax, esi
add dword [ebp - 0x38], eax
sub dword [ebp - 0x28], esi
jmp 0x44dc20
lea eax, [esi + 4]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
jne 0x44deee
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ValidateRect]
push dword [ebp + 8]
call edi
lea ecx, [ebp - 0x30]
push ecx
push eax
lea ecx, [ebp - 0x88]
call fcn.00410aa3
mov byte [ebp - 4], 3
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetParent]
push dword [ebp + 8]
push dword [ebp - 0x88]
push 0x135
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp byte [ebx], 0
mov edi, dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [ebp - 0x5c], eax
je 0x44dc8f
push dword [ebx + 4]
push dword [ebp - 0x88]
call edi
and dword [ebp - 0x68], 0
lea eax, [ebp - 0x68]
and dword [ebp - 0x64], 0
push eax
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_GetBrushOrgEx]
mov eax, dword [ebp - 0x68]
push 0
push dword [ebp - 0x64]
sub eax, esi
push eax
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_SetBrushOrgEx]
push dword [ebp - 0x5c]
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x88]
call dword [sym.imp.USER32.dll_FillRect]
push 0
push 0
push 0x31
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp + 8]
and dword [ebp - 0x5c], 0
mov byte [ebp - 0x51], 0
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x44dd1a
push 0x11
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push dword [ebp - 0x88]
call edi
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0x51], 1
movzx ecx, byte [ebp + 0x10]
lea esi, [ebp - 0x40]
lea edi, [ebp - 0x20]
shl ecx, 0x11
movsd dword es:[edi], dword [esi]
lea eax, [ecx + 0x10]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x60], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x58]
cmp dword [esi - 4], 1
jle 0x44dd4b
push dword [esi - 0xc]
lea ecx, [ebp - 0x58]
call fcn.0040d65d
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
push 0
or eax, 0x400
push eax
lea eax, [ebp - 0x20]
push eax
push 0xffffffffffffffff
push esi
push dword [ebp - 0x88]
call dword [sym.imp.USER32.dll_DrawTextExW]
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
sub eax, edi
sub eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x34]
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x44dd8a
mov ecx, eax
sub ecx, dword [ebp - 0x1c]
add edi, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edi
cmp byte [ebp + 0xc], 0
je 0x44ddab
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
sub edx, ecx
sub edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x38]
mov eax, edx
sub eax, dword [ebp - 0x20]
add ecx, eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], ecx
cmp dword [esi - 4], 1
jle 0x44ddbf
push dword [esi - 0xc]
lea ecx, [ebp - 0x58]
call fcn.0040d65d
mov esi, dword [ebp - 0x58]
push 0
push dword [ebp - 0x60]
lea eax, [ebp - 0x20]
push eax
push 0xffffffffffffffff
push esi
push dword [ebp - 0x88]
call dword [sym.imp.USER32.dll_DrawTextExW]
cmp byte [ebp - 0x51], 0
je 0x44ddec
push dword [ebp - 0x5c]
push dword [ebp - 0x88]
call dword [sym.imp.GDI32.dll_SetTextColor]
mov cl, byte [ebx + 8]
mov edi, 0x8000
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
test cl, cl
jne 0x44de0b
push 9
call esi
test di, ax
seta cl
mov byte [ebx + 8], cl
mov al, byte [ebx + 9]
test al, al
jne 0x44de42
push 0x26
call esi
test di, ax
ja 0x44de3a
push 0x28
call esi
test di, ax
ja 0x44de3a
push 0x25
call esi
test di, ax
ja 0x44de3a
push 0x27
call esi
test di, ax
ja 0x44de3a
xor al, al
jmp 0x44de3c
mov al, 1
mov cl, byte [ebx + 8]
mov byte [ebx + 9], al
test cl, cl
jne 0x44de4e
test al, al
je 0x44dedf
mov esi, dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
jne 0x44dedf
mov edx, dword [ebp - 0x24]
lea esi, [ebp - 0x20]
mov eax, dword [ebp - 0x14]
lea edi, [ebp - 0x50]
sub eax, dword [ebp - 0x1c]
mov ecx, edx
sub ecx, dword [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
cmp eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x50]
cmovg ebx, edx
xor eax, eax
mov esi, dword [ebp - 0x48]
sub edx, ebx
mov dword [ebp - 0x5c], ebx
test edx, edx
setg al
xor ebx, ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x2c]
test eax, eax
mov eax, edi
setg bl
sub eax, dword [ebp - 0x30]
xor edx, edx
test eax, eax
mov eax, dword [ebp - 0x28]
setg dl
sub eax, esi
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0x5c]
setg cl
add eax, dword [ebp - 0x60]
sub dword [ebp - 0x4c], ebx
sub edi, edx
mov dword [ebp - 0x44], eax
add esi, ecx
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], edi
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x48], esi
call dword [sym.imp.USER32.dll_DrawFocusRect]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x88]
call fcn.00410a01
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x58]
lea ecx, [ecx - 0x10]
call fcn.0040d645
call fcn.004db4a1
ret 0xc