Function at 0x407710
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov ebx, ecx
push edi
mov edi, str.Default
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x407929
mov dword [ebp - 4], 0
xor esi, esi
push 0x1ef
push esi
push esi
call dword [sym.imp.USER32.dll_OpenInputDesktop]
mov edi, eax
test edi, edi
jne 0x40779a
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x4078de
inc esi
cmp esi, 0x1e
jg 0x40790a
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1ef
push 0
push 0
call dword [sym.imp.USER32.dll_OpenInputDesktop]
mov edi, eax
test edi, edi
je 0x407765
cmp word [ebp - 4], 0
mov dword [ebx + 0x78], 1
jne 0x4077c3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x29e4129f
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 8]
lea ecx, [ebp - 8]
push ecx
push 0x20
push edx
push 2
push edi
call dword [sym.imp.USER32.dll_GetUserObjectInformationA]
test eax, eax
jne 0x4077f1
push 0x39a
push str.E:_nsmsrc_nsm11301130ctl32pcirisvr.cpp
push 0x41d200
call fcn.00403830
add esp, 0xc
cmp word [ebx + 0x7c], 0
je 0x4078b6
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 8]
mov esi, str.Winlogon
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407833
test cl, cl
je 0x40782f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407833
add eax, 2
add esi, 2
test cl, cl
jne 0x40780f
xor eax, eax
jmp 0x407838
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407860
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x29e4129f
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub cx, word [ebx + 0x7c]
cmp cx, 0x24
jg 0x4078b6
jmp 0x407887
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x29e4129f
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
test cx, cx
mov word [ebx + 0x7c], cx
jne 0x407887
mov word [ebx + 0x7c], 1
push edi
call dword [sym.imp.USER32.dll_CloseDesktop]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x29e4129f
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [ebp - 4]
shr ecx, 5
sub ecx, edx
cmp cx, 0x21c
jl 0x407750
mov eax, dword [ebp + 0xc]
mov word [ebx + 0x7c], 0
test eax, eax
je 0x4078ce
mov dword [eax], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
call dword [sym.imp.USER32.dll_CloseDesktop]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, str.Winlogon
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0x14]
push 0x41d1fc
push ecx
call fcn.00411470
add esp, 0xc
mov dword [ebx + 0x74], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8