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

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push ebx
push ebx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], ebx
call dword [sym.imp.SETUPAPI.dll_CM_Locate_DevNodeW]
mov esi, dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x14], eax
xor ebp, ebp
call esi
mov edi, eax
add edi, 5
call esi
mov ecx, edi
sub ecx, eax
cmp ecx, ebx
jle 0x40da7e
cmp byte [0x4ab290], bl
jle 0x40da7e
cmp ecx, ebx
jbe 0x40da6f
cmp ecx, 0x7d0
jbe 0x40da15
mov ecx, 0x3e8
jmp 0x40da1d
cmp ecx, 0x64
jbe 0x40da1d
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x40da6f
cmp ebp, ebx
jg 0x40da40
call esi
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x40da77
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x40da77
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp ebp, ebx
jle 0x40da6f
dec ebp
cmp byte [0x4ab290], bl
jg 0x40da32
xor ebp, ebp
jmp 0x40d9ec
xor ebp, ebp
call esi
mov edi, eax
add edi, 5
cmp dword [esp + 0x14], ebx
je 0x40db27
call esi
mov ecx, edi
sub ecx, eax
cmp ecx, ebx
jle 0x40dc67
cmp byte [0x4ab290], bl
jle 0x40dc67
cmp ecx, ebx
jbe 0x40db18
cmp ecx, 0x7d0
jbe 0x40dabe
mov ecx, 0x3e8
jmp 0x40dac6
cmp ecx, 0x64
jbe 0x40dac6
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x40db18
cmp ebp, ebx
jg 0x40dae9
call esi
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x40db20
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x40db20
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp ebp, ebx
jle 0x40db18
dec ebp
cmp byte [0x4ab290], bl
jg 0x40dadb
xor ebp, ebp
jmp 0x40da91
call esi
mov ecx, edi
sub ecx, eax
cmp ecx, ebx
jle 0x40dbb9
cmp byte [0x4ab290], bl
jle 0x40dbb9
cmp ecx, ebx
jbe 0x40dbaa
cmp ecx, 0x7d0
jbe 0x40db50
mov ecx, 0x3e8
jmp 0x40db58
cmp ecx, 0x64
jbe 0x40db58
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x40dbaa
cmp ebp, ebx
jg 0x40db7b
call esi
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x40dbb2
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x40dbb2
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp ebp, ebx
jle 0x40dbaa
dec ebp
cmp byte [0x4ab290], bl
jg 0x40db6d
xor ebp, ebp
jmp 0x40db27
push ebx
push dword [esp + 0x14]
call dword [sym.imp.SETUPAPI.dll_CM_Reenumerate_DevNode]
xor ebp, ebp
test eax, eax
je 0x40dc6e
call esi
mov edi, eax
add edi, 5
call esi
mov ecx, edi
sub ecx, eax
cmp ecx, ebx
jle 0x40dc67
cmp byte [0x4ab290], bl
jle 0x40dc67
cmp ecx, ebx
jbe 0x40dc58
cmp ecx, 0x7d0
jbe 0x40dbfe
mov ecx, 0x3e8
jmp 0x40dc06
cmp ecx, 0x64
jbe 0x40dc06
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x40dc58
cmp ebp, ebx
jg 0x40dc29
call esi
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x40dc60
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x40dc60
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp ebp, ebx
jle 0x40dc58
dec ebp
cmp byte [0x4ab290], bl
jg 0x40dc1b
xor ebp, ebp
jmp 0x40dbd5
xor eax, eax
jmp 0x40dd0a
call esi
mov edi, eax
add edi, 5
call esi
mov ecx, edi
sub ecx, eax
cmp ecx, ebx
jle 0x40dd07
cmp byte [0x4ab290], bl
jle 0x40dd07
cmp ecx, ebx
jbe 0x40dcf8
cmp ecx, 0x7d0
jbe 0x40dc9e
mov ecx, 0x3e8
jmp 0x40dca6
cmp ecx, 0x64
jbe 0x40dca6
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x40dcf8
cmp ebp, ebx
jg 0x40dcc9
call esi
mov ecx, edi
sub ecx, eax
test ecx, ecx
jle 0x40dd00
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x40dd00
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp ebp, ebx
jle 0x40dcf8
dec ebp
cmp byte [0x4ab290], bl
jg 0x40dcbb
xor ebp, ebp
jmp 0x40dc75
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret