Function at 0x40f040
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x556850
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x5d7b20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0044c951
mov eax, dword [esi + 0x40c]
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 + 0x40c]
mov ecx, dword [esi + 0x20]
push eax
push 0
push 0x80
push ecx
call edi
call fcn.0044c104
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40f0b7
push 0x80004005
call fcn.00403e70
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], 0
call fcn.0044bffa
test eax, eax
je 0x40f0e9
push 0x3e8
push eax
lea ecx, [ebp - 0x10]
call fcn.00404cb0
call fcn.0044bf0f
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xb8]
push eax
push 0x568990
lea ecx, [ebp - 0x10]
call fcn.00404f20
mov ebx, dword [ebp - 0x10]
push ebx
mov ecx, esi
call fcn.0044f452
lea eax, [ebx - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f133
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.0040bb40
push 0x3ea
push 1
mov ecx, esi
call fcn.0040bb40
push 0x3eb
push 2
mov ecx, esi
call fcn.0040bb40
push 0x3ed
push 0x3f3
mov ecx, esi
call fcn.0040bb40
push 0x3ef
push 0x3fa
mov ecx, esi
call fcn.0040bb40
push 0x3f0
push 0x3fb
mov ecx, esi
call fcn.0040bb40
push 0x44c
push 0x3f6
mov ecx, esi
call fcn.0040bb40
push 0x44d
push 0x3f7
mov ecx, esi
call fcn.0040bb40
push 0x44e
push 0x3f8
mov ecx, esi
call fcn.0040bb40
push 0x44f
push 0x3f9
mov ecx, esi
call fcn.0040bb40
mov ecx, esi
call fcn.0040e950
test eax, eax
jne 0x40f20e
push str.CDelDrvDlg::OnInitDialog_CheckMinimumRequirement_failed._n
push 2
call fcn.00403ab0
add esp, 8
push 0xc
mov ecx, esi
call fcn.0044c5d2
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
cmp dword [esi + 0x414], 0
mov dword [esi + 0xc8], 0
jne 0x40f355
mov eax, dword [esi + 0xb0]
xor ecx, ecx
test eax, eax
sete cl
push ecx
push eax
mov ecx, esi
call fcn.0040d0e0
test eax, eax
jne 0x40f266
push 1
mov ecx, esi
mov dword [esi + 0xb8], 0xfffffffe
call fcn.0044c5d2
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
mov edx, dword [esi + 0x3a4]
push 0
push 0
push 0x14e
push edx
call edi
mov ecx, esi
call fcn.0040c2c0
mov eax, dword [esi + 0x3a4]
push 0
push 0
push 0x146
push eax
call edi
cmp eax, 1
jle 0x40f2c8
push 0x3e9
push 0x3f2
mov ecx, esi
call fcn.0040bb40
push 1
lea ecx, [esi + 0x384]
call fcn.0044f51d
push 1
lea ecx, [esi + 0x384]
call fcn.0044f55f
push 0
jmp 0x40f382
lea ecx, [ebp - 0x10]
call fcn.00404770
push 0x450
push 0x3f2
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.0040bb40
push 0
lea ecx, [esi + 0x384]
call fcn.0044f51d
push 0
lea ecx, [esi + 0x384]
call fcn.0044f55f
push 1
lea ecx, [esi + 0xcc]
call fcn.0044f51d
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [esi + 0x384]
call fcn.00453e1b
mov edx, dword [ebp - 0x10]
push edx
lea ecx, [esi + 0xcc]
call fcn.0044f452
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 0x40f38d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40f38d
push 0x450
push 0x3f2
mov ecx, esi
call fcn.0040bb40
push 0
lea ecx, [esi + 0x384]
call fcn.0044f51d
push 0
lea ecx, [esi + 0x384]
call fcn.0044f55f
push 1
lea ecx, [esi + 0xcc]
call fcn.0044f51d
push 0x7d0
mov ecx, esi
call fcn.0040ba80
push 0
mov ecx, esi
call fcn.0043ce00
cmp dword [esi + 0xb4], 0
je 0x40f3b8
push 1
lea ecx, [esi + 0x1b4]
call fcn.0044f51d
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call fcn.004521d0
test eax, eax
je 0x40f3cb
mov eax, dword [eax + 0x20]
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0
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.0044f312
test eax, eax
je 0x40f450
push 0
mov ecx, eax
call fcn.0044f51d
push 0xbbb
mov ecx, esi
call fcn.0044f312
test eax, eax
je 0x40f469
push 0
mov ecx, eax
call fcn.0044f51d
push 0xbbc
mov ecx, esi
call fcn.0044f312
test eax, eax
je 0x40f482
push 0
mov ecx, eax
call fcn.0044f51d
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