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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
cmp dword [0x510ff4], 0
push ebx
push esi
push edi
jne 0x446629
cmp dword [0x510648], 0
jne 0x446629
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp dword [0x510068], 5
push esi
push dword [ebp + 0xc]
setne al
mov edi, 0x1f4
mov ebx, 0x3e8
push str.WM_DEVICECHANGE_uEvent0x_08Ix_lParam0x_08Ix
push 1
dec eax
and eax, edi
add eax, ebx
mov dword [ebp - 4], eax
call fcn.00451479
add esp, 0x10
call fcn.00451331
cmp dword [0x51cdd4], 2
jl 0x44605b
test esi, esi
je 0x44603d
push dword [esi + 4]
call fcn.004532a0
jmp 0x446042
mov eax, 0x457770
push eax
push dword [ebp + 0xc]
call fcn.0045330b
push eax
push str.WM_DEVICECHANGE__DBT__S_db_hdr__dbch_devicetype_S
push 2
call fcn.00451479
add esp, 0x10
push esi
push dword [ebp + 0xc]
call fcn.004356c4
test eax, eax
je 0x44607b
push str._ignore
push 2
call fcn.00451479
pop ecx
pop ecx
jmp 0x446629
cmp dword [0x4a7b30], 0
je 0x446629
mov eax, dword [ebp + 0xc]
cmp eax, 7
je 0x4465f8
mov ebx, 0x8000
cmp eax, ebx
je 0x446467
jbe 0x446629
cmp eax, 0x8003
jbe 0x446410
add ebx, 4
cmp eax, ebx
je 0x44629b
cmp eax, 0x8006
jne 0x446629
test esi, esi
jne 0x4460f7
push str.Dlg_OnDeviceChange
push 0x1d91
push str..UsbTreeView.cpp
push str.INT3_in__S_line__u__function__S
push 1
call fcn.00451479
add esp, 0x14
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x446629
cmp dword [esi + 4], 6
jne 0x446629
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
lea edi, [esi + 0x14]
push edi
push 0x45575c
mov dword [ebp + 0xc], eax
call fcn.00401000
test eax, eax
jne 0x446629
push edi
call fcn.0044d0eb
push eax
push ebx
push dword [ebp + 0xc]
push str._DBT_DEVTYP_HANDLE_hDev0x_08Ix_hNotify0x_08Ix_guid_S
push 3
call fcn.00451479
mov ecx, dword [0x512c64]
add esp, 0x14
push ebx
call fcn.00402087
mov esi, eax
test esi, esi
je 0x446629
lea eax, [esi + 0x173c]
push eax
lea eax, [esi + 0xe3c]
push eax
push str._dev_s___s_
push 3
call fcn.00451479
add esp, 0x10
push edi
push 0x45572c
call fcn.00401000
test eax, eax
jne 0x446263
push edi
push 0x45573c
call fcn.00401000
test eax, eax
jne 0x446263
push edi
push 0x45570c
call fcn.00401000
test eax, eax
jne 0x446263
push edi
push 0x45571c
call fcn.00401000
test eax, eax
jne 0x446263
push edi
push 0x4557ec
call fcn.00401000
test eax, eax
je 0x446257
lea eax, [esi + 0xc34]
push eax
lea ecx, [ebp - 0x42c]
call fcn.0040fdc1
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x42c]
call fcn.0040f939
test eax, eax
je 0x446247
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x204]
push eax
xor ebx, ebx
lea eax, [esi + 0x3b04]
inc ebx
push eax
mov dword [esi + 0x3ac0], ebx
call edi
lea eax, [ebp - 0x204]
push eax
lea eax, [esi + 0x3ac4]
push eax
call edi
mov ecx, dword [0x512c60]
push 0
push 0
push dword [esi + 0x14]
call fcn.0040838c
test eax, eax
je 0x446247
push ebx
mov ecx, eax
mov dword [eax + 0xcf8], ebx
call fcn.0040bce8
lea ecx, [ebp - 0x42c]
call fcn.0040f3b6
jmp 0x446629
push str._ignore
push 3
jmp 0x44606f
push dword [esi + 0x14]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
push 0x43b135
push 0x64
push dword [esi + 0x14]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
push 0x64
push dword [esi + 0x14]
push str._SetTimer__u___i__UpdateStorageProps_TimerProc_
push 4
call fcn.00451479
add esp, 0x10
jmp 0x446629
push 0x12340003
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x4462c1
push 0x435536
push edi
push 0x12340003
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
test esi, esi
jne 0x4462cc
xor eax, eax
jmp 0x44662c
mov eax, dword [esi + 4]
cmp eax, 5
jne 0x4463a4
lea edi, [esi + 0xc]
push edi
call fcn.0044d27f
test eax, eax
jne 0x4462f1
push 1
push edi
call fcn.0044d484
test eax, eax
je 0x446301
push eax
push str._______________________S_______________________
push 0
call fcn.00451479
add esp, 0xc
push 4
pop ebx
cmp dword [0x51cdd4], ebx
jl 0x44633d
push 1
push edi
call fcn.0044d484
push eax
push str._clsguid_S
push ebx
call fcn.00451479
add esp, 0xc
cmp dword [0x51cdd4], ebx
jl 0x44633d
lea eax, [esi + 0x1c]
push eax
push str._devpath_s
push ebx
call fcn.00451479
add esp, 0xc
xor edi, edi
push edi
push edi
add esi, 0x1c
push esi
call fcn.00443629
test eax, eax
jne 0x446629
cmp dword [0x51cdd4], ebx
jl 0x44636b
push dword [ebp - 4]
push str.starting_TIMERIDM_REFRESHTREE_after_DeviceRemoved_returned_false__t_u
push ebx
call fcn.00451479
add esp, 0xc
push 0x15227010
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
push 0x43fe82
push dword [ebp - 4]
push 0x12340001
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
push str.OnDevCh
push edi
push 0x7f8a
call fcn.00436641
jmp 0x446629
cmp eax, 6
jne 0x4463d8
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
push str.HANDLE
push str._______________________S_______________________
push 0
call fcn.00451479
push esi
push edi
push str.hDev0x_08Ix_hNotify0x_08Ix
push 1
call fcn.00451479
add esp, 0x1c
push esi
push ebx
jmp 0x44645d
cmp eax, 2
jne 0x4463e9
push esi
push ebx
call fcn.0043b188
jmp 0x446629
cmp eax, 3
jne 0x446629
add esi, 0xc
push esi
push str._name_s
push eax
call fcn.00451479
add esp, 0xc
push esi
push ebx
call fcn.00435704
jmp 0x446629
test esi, esi
je 0x4462c5
push dword [esi + 4]
call fcn.004532a0
push eax
push dword [ebp + 0xc]
call fcn.0045330b
push eax
push str.WM_DEVICECHANGE__DBT__S_db_hdr__dbch_devicetype_S
push 1
call fcn.00451479
add esp, 0x10
cmp dword [esi + 4], 6
jne 0x446629
mov edi, dword [esi + 0x10]
push edi
push dword [esi + 0xc]
push str.hDev0x_08Ix_hNotify0x_08Ix
push 1
call fcn.00451479
add esp, 0x10
push edi
push dword [ebp + 0xc]
call fcn.00445ecf
jmp 0x446629
test esi, esi
je 0x4462c5
mov eax, dword [esi + 4]
cmp eax, 5
jne 0x4465a3
lea edi, [esi + 0xc]
push edi
call fcn.0044d27f
test eax, eax
jne 0x446494
push 1
push edi
call fcn.0044d484
test eax, eax
je 0x4464a4
push eax
push str.______________________S______________________
push 0
call fcn.00451479
add esp, 0xc
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push eax
call fcn.0044b15e
add esp, 0xc
push 0x104
lea eax, [ebp - 0x20c]
push eax
lea eax, [esi + 0x24]
push eax
call fcn.00430dcb
push 4
pop ebx
cmp dword [0x51cdd4], ebx
jl 0x446530
push 1
push edi
call fcn.0044d484
push eax
push str._clsguid_S
push ebx
call fcn.00451479
add esp, 0xc
cmp dword [0x51cdd4], ebx
jl 0x446530
lea eax, [esi + 0x1c]
push eax
push str._devpath_s
push ebx
call fcn.00451479
add esp, 0xc
cmp dword [0x51cdd4], ebx
jl 0x446530
lea eax, [ebp - 0x20c]
push eax
push str._krnlnam_s
push ebx
call fcn.00451479
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x511024], eax
xor eax, eax
cmp word [ebp - 0x20c], ax
je 0x446629
push eax
push edi
push eax
add esi, 0x1c
push esi
call fcn.00440f36
test eax, eax
jne 0x446629
push 0x15227010
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
cmp dword [0x51cdd4], ebx
jl 0x446581
push str.starting_TIMERIDM_REFRESHTREE_after_DeviceArrived_returned_false
push ebx
call fcn.00451479
pop ecx
pop ecx
push 0x43fe82
push dword [ebp - 4]
push 0x12340001
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
push str.OnDevCh
push 0
jmp 0x446395
cmp eax, 6
jne 0x4463d8
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
push str.HANDLE
push str.______________________S______________________
push 0
call fcn.00451479
push esi
push edi
push str.hDev0x_08Ix_hNotify0x_08Ix
push 1
call fcn.00451479
mov ecx, dword [0x512c64]
add esp, 0x1c
push esi
call fcn.00402087
test eax, eax
je 0x446629
push 0
push 0
push dword [eax + 0x14]
add eax, 0xc34
push eax
call fcn.00440f36
jmp 0x446629
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0x435536
push edi
push 0x12340003
push dword [ebp + 8]
mov dword [0x511024], eax
call esi
push 0x435344
push ebx
push 0x12340004
push dword [ebp + 8]
call esi
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0xc