Function at 0x40e850
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x535660
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x5a6a30]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0042eff2
mov eax, dword [esi + 0x3f8]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
mov eax, dword [esi + 0x20]
push 1
push 0x80
push eax
call edi
mov eax, dword [esi + 0x3f8]
mov ecx, dword [esi + 0x20]
push eax
xor ebx, ebx
push ebx
push 0x80
push ecx
call edi
call fcn.0042aa6c
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40e8c8
push 0x80004005
call fcn.004010e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
push 0x3e8
mov dword [ebp - 4], ebx
call fcn.0042a962
cmp eax, ebx
je 0x40e8f6
push 0x3e8
push eax
lea ecx, [ebp - 0x10]
call fcn.00401a80
call fcn.0042cb3b
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xb8]
push eax
push 0x5450f4
lea ecx, [ebp - 0x10]
call fcn.004045a0
mov edi, dword [ebp - 0x10]
push edi
mov ecx, esi
call fcn.004360f7
lea eax, [edi - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e940
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x3ec
push 0x3f0
mov ecx, esi
call fcn.0040c7c0
push 0x3ea
push 1
mov ecx, esi
call fcn.0040c7c0
push 0x3eb
push 2
mov ecx, esi
call fcn.0040c7c0
push 0x3ed
push 0x3f3
mov ecx, esi
call fcn.0040c7c0
push 0x3ef
push 0x3fa
mov ecx, esi
call fcn.0040c7c0
push 0x3f0
push 0x3fb
mov ecx, esi
call fcn.0040c7c0
push 0x44c
push 0x3f6
mov ecx, esi
call fcn.0040c7c0
push 0x44d
push 0x3f7
mov ecx, esi
call fcn.0040c7c0
push 0x44e
push 0x3f8
mov ecx, esi
call fcn.0040c7c0
push 0x44f
push 0x3f9
mov ecx, esi
call fcn.0040c7c0
mov ecx, esi
call fcn.0040d090
test eax, eax
jne 0x40ea1b
push str.CDelDrvDlg::OnInitDialog_CheckMinimumRequirement_failed._n
push 2
call fcn.00403750
add esp, 8
push 0xc
mov ecx, esi
call fcn.0042ec7b
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x450
push 0x3f2
mov ecx, esi
mov dword [esi + 0xc0], ebx
call fcn.0040c7c0
push ebx
lea ecx, [esi + 0x384]
call fcn.004361c2
push ebx
lea ecx, [esi + 0x384]
call fcn.00436204
call fcn.0042cb3b
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc0]
sub eax, 0x10
push eax
call fcn.004040b0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x10], eax
push eax
lea ecx, [esi + 0xcc]
mov dword [ebp - 4], 1
call fcn.004360f7
push 1
lea ecx, [esi + 0xcc]
call fcn.004361c2
push 0x7d0
mov ecx, esi
call fcn.0040c700
push ebx
mov ecx, esi
call fcn.00422c80
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call fcn.0043249e
cmp eax, ebx
jne 0x40eab2
xor eax, eax
jmp 0x40eab5
mov eax, dword [eax + 0x20]
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call ebx
mov edi, eax
mov eax, dword [esi + 0x20]
push 0
push eax
call ebx
push 1
mov ebx, eax
push edi
push ebx
call dword [sym.imp.USER32.dll_AttachThreadInput]
push 0
lea ecx, [ebp - 0x14]
push ecx
push 0
push 0x2000
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
push 0
push 0
push 0
push 0x2001
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov edx, dword [esi + 0x20]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [ebp - 0x14]
push 0
push eax
push 0
push 0x2001
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
push 0
push edi
push ebx
call dword [sym.imp.USER32.dll_AttachThreadInput]
push 0xbba
mov ecx, esi
call fcn.00435fb7
test eax, eax
je 0x40eb39
push 0
mov ecx, eax
call fcn.004361c2
push 0xbbb
mov ecx, esi
call fcn.00435fb7
test eax, eax
je 0x40eb52
push 0
mov ecx, eax
call fcn.004361c2
push 0xbbc
mov ecx, esi
call fcn.00435fb7
test eax, eax
je 0x40eb6b
push 0
mov ecx, eax
call fcn.004361c2
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eb91
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret