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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
push edi
push str._____________________________________________________________________
push 3
call fcn.00451479
push dword [esp + 0x84]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
push ebx
push edi
push str.DeviceRemoved__s___u___i_...
xor ebp, ebp
push ebp
call fcn.00451479
add esp, 0x1c
cmp word [edi], bp
jne 0x443675
cmp dword [esp + 0x7c], ebp
jne 0x443675
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x512c60], ebp
je 0x4444f7
cmp dword [0x510ff4], ebp
jne 0x4444f7
cmp ebx, ebp
jne 0x4436b5
push ebp
push edi
call fcn.004510d5
mov ebx, eax
push ebx
push str.DevInst_u
push 4
mov dword [esp + 0x84], ebx
call fcn.00451479
add esp, 0xc
cmp ebx, ebp
je 0x4436e5
cmp ebx, dword [0x51c31c]
jne 0x4436e5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x51c318]
cmp eax, 0xc8
jae 0x4436e5
push ebx
push str._same_devinst_u_again____ignore
push 1
call fcn.00451479
add esp, 0xc
jmp 0x4444f7
mov dword [0x51c31c], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x51c318], eax
cmp ebx, dword [0x51c9b0]
jne 0x443704
mov dword [0x51c9b0], ebp
cmp ebx, ebp
je 0x443718
mov ecx, dword [0x512c60]
push ebp
push ebp
push ebx
call fcn.0040838c
jmp 0x44372d
cmp word [edi], bp
je 0x443970
mov ecx, dword [0x512c60]
push edi
call fcn.0040804f
mov esi, eax
cmp esi, ebp
je 0x443970
mov eax, dword [esi + 0x1154]
cmp eax, ebp
je 0x44385a
cmp dword [eax + 0xc], ebp
jne 0x44376f
cmp dword [esi + 0x1188], 2
jne 0x44376f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x1184]
push eax
push str._device_already_marked_as_non_present__age_u
push 1
call fcn.00451479
add esp, 0xc
mov eax, dword [esi + 0x1154]
cmp dword [eax + 0xc], ebp
jne 0x4437a9
cmp dword [esi + 0x1188], 2
jne 0x4437a9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x1184]
cmp eax, 0x2710
jae 0x4437a9
push str._removal_event_already_processed____ignore
push 1
call fcn.00451479
pop ecx
pop ecx
jmp 0x4444f7
mov edi, dword [esi + 0x1154]
cmp dword [edi + 0x830], ebp
mov dword [esp + 0x14], ebp
jle 0x44385a
lea eax, [edi + 0x30]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp eax, ebp
je 0x443841
cmp dword [eax], ebp
je 0x443841
cmp dword [eax + 0xc], ebp
je 0x443841
push ebp
push dword [edi + 0x14]
lea ebx, [edi + 8]
lea eax, [edi + 0x3a74]
push ebx
push eax
call dword [sym.imp.CFGMGR32.dll_CM_Get_DevNode_Status]
cmp eax, ebp
jne 0x44380e
push dword [edi + 0x3a74]
push dword [ebx]
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___problem_u_status0x_08x
push 3
call fcn.00451479
add esp, 0x14
jmp 0x44383d
push eax
call fcn.0044c9e1
push eax
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___cret_S
push 3
call fcn.00451479
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
add esp, 0x10
push 1
push dword [eax + 0x14]
add eax, 0xc34
push eax
call fcn.00443629
mov ebx, dword [esp + 0x78]
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add dword [esp + 0x10], 4
cmp eax, dword [edi + 0x830]
jl 0x4437c6
mov dword [esi + 0xcf8], 1
cmp dword [0x512c94], ebp
je 0x4438d2
cmp dword [esi + 8], ebp
je 0x4438d2
cmp dword [esi + 0x11a4], ebp
jne 0x4438d2
cmp dword [0x4a7b34], ebp
jne 0x443887
cmp dword [esi + 0x18], 1
je 0x4438d2
mov eax, dword [esi + 0xde0]
cmp eax, ebp
je 0x4438d2
mov eax, dword [eax + 0x1154]
cmp eax, ebp
je 0x4438d2
push dword [eax + 0x14]
call fcn.0044f668
test eax, eax
je 0x4438d2
push ebx
call fcn.0044e8ea
test eax, eax
jne 0x4438d2
mov ecx, dword [esi + 0xde0]
call fcn.00407e1a
push dword [esi + 8]
push 9
push 0x110b
push dword [0x5106a4]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [esi + 0x1154], ebp
jne 0x443904
cmp ebx, ebp
jne 0x4438f2
push ebp
push dword [esp + 0x78]
call fcn.0044f8c2
mov ebx, eax
mov dword [esp + 0x78], ebx
cmp ebx, ebp
je 0x443904
mov ecx, dword [0x512c64]
push ebx
call fcn.00401c46
mov dword [esi + 0x1154], eax
push dword [esi + 0x1154]
mov ecx, dword [0x512c64]
call fcn.0040121c
test eax, eax
jne 0x44399e
push str._treenode_found_but_has_no_deviceinfo
push 3
call fcn.00451479
mov edi, dword [esp + 0x7c]
mov esi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
pop ecx
pop ecx
push str.a5dcbf10_6530_11d2_901f_00c04fb951ed
push edi
call esi
test eax, eax
jne 0x443969
push str.f18a0e88_c30c_11d0_8815_00a0c906bed8
push edi
call esi
test eax, eax
jne 0x443969
push str.3abf6f2d_71c4_462a_8a92_1e6861e6af27
push edi
call esi
test eax, eax
jne 0x443969
push str.ROOT_HUB
push edi
call esi
test eax, eax
je 0x4444f7
xor eax, eax
jmp 0x4444fa
cmp dword [0x4a7b40], ebp
je 0x443984
push str._no_treenode_found____ignore
push 3
jmp 0x44379d
push str._no_treenode_found____try_child_devices
push 3
call fcn.00451479
pop ecx
pop ecx
push ebx
push edi
call fcn.004400fe
jmp 0x4444fa
mov edi, dword [esi + 0x1154]
push ebp
push dword [edi + 0x14]
lea ebx, [edi + 8]
lea eax, [edi + 0x3a74]
push ebx
push eax
call dword [sym.imp.CFGMGR32.dll_CM_Get_DevNode_Status]
mov dword [esp + 0x10], eax
cmp eax, ebp
jne 0x4439dd
push dword [edi + 0x3a74]
push dword [ebx]
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___problem_u_status0x_08x
push 3
call fcn.00451479
add esp, 0x14
jmp 0x4439f9
push dword [esp + 0x10]
call fcn.0044c9e1
push eax
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___cret_S
push 3
call fcn.00451479
add esp, 0x10
cmp dword [edi + 0x14], ebp
je 0x443a20
cmp dword [esp + 0x78], ebp
jne 0x443a20
push str.looks_like_a_just_uninstalled_device____fake_CR_NO_SUCH_DEVINST__CM_PROB_PHANTOM
push 3
call fcn.00451479
pop ecx
pop ecx
mov dword [esp + 0x10], 0xd
mov dword [ebx], 0x2d
or dword [edi + 0x3ab0], 0xffffffff
mov dword [esp + 0x18], ebp
cmp dword [esp + 0x10], ebp
jne 0x443a7d
cmp dword [ebx], ebp
jne 0x443a4b
push str._device_is_present_again
push 3
call fcn.00451479
pop ecx
pop ecx
mov dword [esp + 0x18], 1
push dword [ebx]
call fcn.0044fdd2
test eax, eax
je 0x443a6e
push ebp
push 0x43c9f8
push dword [esi + 8]
mov dword [esi + 0x11ac], 1
call fcn.0043627c
cmp dword [ebx], ebp
jne 0x443a93
mov dword [ebx], 0x2d
mov dword [edi + 0xc], ebp
jmp 0x443a93
mov dword [ebx], 0x2d
mov dword [edi + 0xc], ebp
cmp dword [esi + 0x18], 6
jl 0x443a93
mov ecx, esi
call fcn.00407c96
cmp dword [edi + 0x3ab8], ebp
je 0x443abb
lea eax, [edi + 0x3bc4]
mov ecx, dword [eax]
cmp ecx, ebp
je 0x443abb
xor edx, edx
mov word [ecx + 0x930], dx
mov eax, dword [eax]
xor ecx, ecx
mov word [eax + 0x848], cx
cmp dword [esi + 4], ebp
jl 0x443bb3
mov ecx, esi
mov dword [esi + 0xcf8], 1
call fcn.00407c71
cmp dword [0x510750], ebp
je 0x443af8
mov eax, dword [esi + 8]
cmp eax, dword [0x511008]
jne 0x443bb3
cmp dword [0x510758], ebp
jne 0x443bb3
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebp
push dword [edi + 0x14]
lea eax, [edi + 0x3a74]
push ebx
push eax
call dword [sym.imp.CFGMGR32.dll_CM_Get_DevNode_Status]
cmp eax, 0xd
jne 0x443bb3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x117c]
cmp eax, 0x3e8
jbe 0x443bb3
cmp dword [esi + 0x18], 6
jl 0x443b66
push str.set_pTNI__DeviceType__DEVTYPE_PORT
push 4
call fcn.00451479
push dword [esi + 0x1154]
mov dword [esi + 0x18], 8
push str.set_pTNI__pDeviceInfo__NULL___was_0x_08x
push 4
call fcn.00451479
add esp, 0x14
mov dword [esi + 0x1154], ebp
cmp dword [0x510750], ebp
je 0x443b88
push dword [esi + 8]
push 4
push 0x110a
push dword [0x5106a4]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x443bb3
xor eax, eax
push 1
mov ecx, esi
mov word [esi + 0x24], ax
mov word [esi + 0x428], ax
mov word [esi + 0x86c], ax
mov word [esi + 0xa70], ax
mov word [esi + 0xe44], ax
call fcn.0040bce8
cmp dword [edi + 0x3ab8], ebp
je 0x443bd4
cmp dword [edi + 0x3bc4], ebp
je 0x443bd4
mov eax, dword [0x512c64]
push dword [esp + 0x74]
mov ecx, dword [eax + 8]
call fcn.0040664e
mov ecx, dword [edi + 0x2c]
cmp ecx, ebp
je 0x443be3
push edi
call fcn.004010e0
jmp 0x443bea
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi + 0x830]
cmp eax, ebp
je 0x443ca4
mov ecx, 0x200
cmp eax, ecx
jb 0x443c03
mov eax, ecx
dec eax
cmp eax, ebp
mov dword [esp + 0x74], eax
jl 0x443ca4
lea eax, [edi + eax*4 + 0x30]
mov dword [esp + 0x14], eax
cmp dword [0x51cdd4], 4
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
jl 0x443c4e
lea eax, [ebx + 0xc34]
push eax
push dword [ebx + 0xc]
lea eax, [ebx + 0xe3c]
push eax
push dword [esp + 0x80]
push str.Child__i___s_present_i_devpath_s
push 4
call fcn.00451479
add esp, 0x18
cmp dword [ebx + 0xc], ebp
je 0x443c91
lea eax, [ebx + 0xc34]
mov dword [esp + 0x1c], eax
cmp word [eax], bp
jne 0x443c91
push dword [ebx + 0x14]
call fcn.0044f5b3
test eax, eax
jne 0x443c91
lea eax, [ebx + 0xe3c]
push eax
push str.fake_removal_event_for_child_device_without_interface:__s
push 4
call fcn.00451479
add esp, 0xc
push ebp
push dword [ebx + 0x14]
push dword [esp + 0x24]
call fcn.00443629
dec dword [esp + 0x74]
sub dword [esp + 0x14], 4
cmp dword [esp + 0x74], ebp
jge 0x443c18
cmp dword [esp + 0x7c], ebp
jne 0x443e0c
mov eax, dword [esi + 0xde0]
cmp eax, ebp
je 0x443d83
mov eax, dword [eax + 0x1154]
cmp eax, ebp
je 0x443d83
mov ecx, dword [0x512c64]
push eax
call fcn.0040121c
test eax, eax
jne 0x443d00
lea eax, [esi + 0x428]
push eax
mov eax, dword [esi + 0xde0]
push dword [eax + 0x1154]
push str.pTNI__pParentTNI__pDeviceInfo0x_08Ix_is_invalid__pTNI_s
push ebp
call fcn.00451479
add esp, 0x10
jmp 0x443d83
mov eax, dword [esi + 0xde0]
mov eax, dword [eax + 0x1154]
cmp word [eax + 0xc34], bp
jne 0x443d83
push ebp
push dword [edi + 0x14]
lea ebx, [edi + 8]
push ebx
lea eax, [edi + 0x3a74]
push eax
call dword [sym.imp.CFGMGR32.dll_CM_Get_DevNode_Status]
mov dword [esp + 0x10], eax
cmp eax, ebp
jne 0x443d4e
push dword [edi + 0x3a74]
push dword [ebx]
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___problem_u_status0x_08x
push 3
call fcn.00451479
add esp, 0x14
jmp 0x443d83
push eax
call fcn.0044c9e1
push eax
push dword [edi + 0x14]
push str.CM_Get_DevNode_Status__u___cret_S
push 3
call fcn.00451479
mov eax, dword [esi + 0xde0]
mov eax, dword [eax + 0x1154]
add esp, 0x10
push 1
push dword [eax + 0x14]
add eax, 0xc34
push eax
call fcn.00443629
cmp dword [edi + 0x830], ebp
mov dword [esp + 0x14], ebp
jle 0x443e0c
lea eax, [edi + 0x30]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov ebx, dword [eax]
mov ecx, dword [0x512c64]
push ebx
call fcn.0040121c
test eax, eax
je 0x443df7
lea eax, [ebx + 0xc34]
mov dword [esp + 0x1c], eax
cmp word [eax], bp
jne 0x443df7
cmp dword [ebx + 0xc], ebp
je 0x443df7
cmp dword [ebx + 8], ebp
jne 0x443df7
push dword [ebx + 0x14]
call fcn.0044f668
test eax, eax
jne 0x443df7
lea eax, [ebx + 0xe3c]
push eax
push dword [ebx + 0x14]
push str.calling_DeviceRemoved_for__u___s__because_child_device_without_an_interface
push 4
call fcn.00451479
add esp, 0x10
push ebp
push dword [ebx + 0x14]
push dword [esp + 0x24]
call fcn.00443629
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add dword [esp + 0x74], 4
cmp eax, dword [edi + 0x830]
jl 0x443d96
cmp dword [esi + 4], ebp
jl 0x443e6e
mov eax, dword [0x510754]
mov ecx, dword [0x510750]
add eax, ecx
je 0x443e4f
mov dword [esi + 0x1188], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push str.set_JustArrivedRemovedJUST_REMOVED_ArrivalRemovalT_u
push 4
mov dword [esi + 0x1184], eax
call fcn.00451479
add esp, 0xc
mov ecx, esi
call fcn.0040e407
jmp 0x443e67
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push esi
push 0x113
push dword [0x51069c]
call fcn.00443375
mov ecx, esi
call fcn.0040e2aa
cmp dword [esp + 0x18], ebp
je 0x443e9c
cmp dword [esi + 0x18], 9
jne 0x4444f7
push 0x4430a3
push 0x3e8
push dword [edi + 0x14]
push dword [0x51069c]
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x4444f7
cmp dword [edi + 0x3abc], ebp
je 0x443ec2
xor eax, eax
or dword [edi + 0x3ab0], 0xffffffff
mov word [edi + 0x3ac4], ax
mov word [edi + 0x3b04], ax
mov word [edi + 0x3b44], ax
mov dword [edi + 0x3bc8], ebp
mov ecx, dword [0x512c64]
push edi
call fcn.00404bbc
push 0x47d63c
push ebp
push 0x7f8a
call fcn.00436641
xor ecx, ecx
cmp dword [edi + 0x830], ebp
jle 0x443f0e
lea eax, [edi + 0x30]
cmp dword [eax], ebp
je 0x443f02
mov edx, dword [eax]
mov dword [edx + 0xc], ebp
mov edx, dword [eax]
mov ebx, dword [edi + 8]
mov dword [edx + 8], ebx
inc ecx
add eax, 4
cmp ecx, dword [edi + 0x830]
jl 0x443ef1
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x1c], ebp
mov dword [edi + 0x20], ebp
call ebx
sub eax, dword [esi + 0x117c]
cmp eax, 0x1388
jae 0x443f31
call ebx
mov dword [esi + 0x117c], eax
cmp dword [esi + 0x1144], ebp
je 0x443f8d
mov eax, dword [esi + 0x1148]
cmp eax, ebp
je 0x443f8d
mov eax, dword [eax + 0x48]
cmp eax, ebp
je 0x443f8d
mov dword [esp + 0x74], ebp
jle 0x443f82
push 0x38
pop ebx
mov eax, dword [esi + 0x1148]
mov eax, dword [ebx + eax]
cmp eax, ebp
je 0x443f6c
mov ecx, dword [0x512c60]
push eax
call fcn.00408aea
inc dword [esp + 0x74]
mov eax, dword [esi + 0x1148]
mov ecx, dword [esp + 0x74]
add ebx, 4
cmp ecx, dword [eax + 0x48]
jl 0x443f53
mov ecx, dword [0x512c60]
call fcn.00409f22
mov eax, dword [esi + 0x114c]
cmp eax, ebp
je 0x44400b
mov eax, dword [eax + 0x10c]
cmp eax, ebp
je 0x443fbe
mov ebx, dword [eax]
push eax
mov dword [eax], ebp
call fcn.0044b359
pop ecx
mov eax, ebx
cmp ebx, ebp
jne 0x443fa1
mov eax, dword [esi + 0x114c]
mov dword [eax + 0x10c], ebp
cmp dword [edi + 0xc], ebp
jne 0x44400b
lea ebx, [esi + 0x11b0]
mov eax, dword [ebx]
mov dword [esp + 0x74], ebp
cmp eax, ebp
je 0x443fed
push 0xea60
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebx]
mov dword [esp + 0x78], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx], ebp
cmp dword [esp + 0x10], ebp
je 0x44400b
cmp dword [esp + 0x74], ebp
jne 0x444005
push ebp
push dword [esi + 0x114c]
call fcn.0044e4d5
mov dword [esi + 0x114c], ebp
cmp dword [esi + 0x1144], ebp
je 0x444113
cmp dword [esp + 0x10], ebp
jne 0x44402b
push 1
mov ecx, esi
call fcn.0040bce8
jmp 0x444104
mov eax, dword [esi + 0xde0]
cmp eax, ebp
je 0x444088
add eax, 0xd90
cmp word [eax], bp
je 0x444064
push eax
lea eax, [edi + 0x183c]
push eax
push str._s_removed_from_port__s
push dword [0x4a7b1c]
push 1
push dword [0x511014]
call fcn.0040601d
add esp, 0x18
jmp 0x4440a3
lea eax, [edi + 0x183c]
push eax
push str._s_removed
push dword [0x4a7b1c]
push 1
push dword [0x511014]
call fcn.0040601d
add esp, 0x14
jmp 0x4440a3
push str.Device_removed
push dword [0x4a7b1c]
push 1
push dword [0x511014]
call fcn.0040601d
add esp, 0x10
push dword [esi + 0x1154]
push str.set_pTNI__pDeviceInfo__NULL___was_0x_08x
push 4
call fcn.00451479
xor eax, eax
add esp, 0xc
mov dword [esi + 0x1154], ebp
mov word [esi + 0xde4], ax
push dword [edi + 4]
mov ecx, dword [0x512c64]
call fcn.004045e9
mov esi, dword [esi + 0x1148]
cmp esi, ebp
je 0x4440e9
mov esi, dword [esi + 0x14]
cmp esi, ebp
je 0x4440e9
mov dword [esi + 0x1f], ebp
call fcn.00435f29
call fcn.0043b757
mov ecx, dword [0x512c60]
call fcn.0040a119
push ebp
call fcn.004360b7
push 0xc8
call fcn.0043b3a7
jmp 0x4444f7
mov eax, dword [esi + 0xde0]
cmp eax, ebp
je 0x44437a
cmp dword [eax + 0x1c], ebp
je 0x44437a
push 0x435536
push 0xa
push 0x12340003
push dword [0x51069c]
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [esi + 0x1154]
cmp eax, ebp
je 0x44417a
cmp edi, eax
je 0x44417a
push str.DeviceRemoved
push 0x2703
push str..UsbTreeView.cpp
xor ebx, ebx
push str.INT3_in__S_line__u__function__S
inc ebx
push ebx
call fcn.00451479
add esp, 0x14
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44417d
xor ebx, ebx
inc ebx
mov ecx, esi
cmp dword [esp + 0x10], ebp
jne 0x444213
push ebx
call fcn.0040bce8
push dword [edi + 8]
call fcn.0044fdd2
test eax, eax
je 0x4441b0
lea eax, [esi + 0xd90]
push eax
lea eax, [edi + 0x183c]
push eax
push str._s_prepared_for_safe_removal_from_port__s
jmp 0x4441cb
mov eax, dword [edi + 8]
cmp eax, 0x16
jne 0x4441e5
lea eax, [esi + 0xd90]
push eax
lea eax, [edi + 0x183c]
push eax
push str._s_disabled_at_port__s
push dword [0x4a7b1c]
push ebx
push dword [0x511014]
call fcn.0040601d
add esp, 0x18
jmp 0x4442c9
lea ecx, [esi + 0xd90]
push ecx
push eax
lea eax, [edi + 0x183c]
push eax
push str._s_got_problem__u_at_port__s
push dword [0x4a7b1c]
push ebx
push dword [0x511014]
call fcn.0040601d
add esp, 0x1c
jmp 0x4442c9
mov dword [esi + 0x18], 8
call fcn.00407c96
cmp dword [0x510750], ebp
je 0x44422f
mov dword [esi + 0x1190], ebx
jmp 0x44425d
cmp dword [0x510754], ebp
je 0x44425d
xor eax, eax
push ebx
mov ecx, esi
mov dword [esi + 0x1190], 2
mov word [esi + 0x24], ax
mov word [esi + 0x428], ax
mov word [esi + 0xa70], ax
call fcn.0040bce8
lea eax, [esi + 0xd90]
push eax
lea eax, [edi + 0x183c]
push eax
push str._s_removed_from_port__s
push dword [0x4a7b1c]
push ebx
push dword [0x511014]
call fcn.0040601d
mov eax, dword [esi + 0x1148]
add esp, 0x18
cmp eax, ebp
je 0x444299
mov eax, dword [eax + 0x14]
cmp eax, ebp
je 0x444299
mov dword [eax + 0x1f], ebp
push dword [edi + 4]
mov ecx, dword [0x512c64]
call fcn.004045e9
push dword [esi + 8]
push dword [0x5106a4]
call fcn.00429fe9
mov eax, dword [esi + 8]
cmp eax, ebp
je 0x4442c9
cmp eax, dword [0x511008]
jne 0x4442c9
call fcn.00418559
cmp dword [esp + 0x7c], ebp
jne 0x444461
mov eax, dword [esi + 0xde0]
cmp eax, ebp
je 0x444461
mov eax, dword [eax + 0x1154]
cmp eax, ebp
je 0x444461
cmp dword [eax], 1
jne 0x444461
add eax, 0xc34
push eax
call fcn.0042e9ee
test eax, eax
je 0x444461
mov eax, dword [esi + 0xde0]
mov eax, dword [eax + 0x1154]
push ebp
push ebp
push 3
push ebp
push 3
push 0x80000000
add eax, 0xc34
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x444461
mov eax, dword [esi + 0xde0]
mov ecx, dword [0x512c60]
push esi
push dword [eax + 0x1144]
push ebx
call fcn.0040ca5f
push dword [esi + 0xde0]
mov ecx, dword [0x512c60]
push esi
call fcn.00409473
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
push ebp
push esi
call fcn.0043c88a
jmp 0x444461
cmp dword [esi + 0x18], 1
jne 0x4443cd
cmp dword [esi], 1
jne 0x444461
xor eax, eax
inc eax
push ebp
push eax
push dword [esp + 0x80]
mov dword [esi + 0xcf8], eax
mov ecx, dword [0x512c60]
call fcn.0040838c
cmp eax, ebp
je 0x444461
cmp dword [eax], 1
jne 0x444461
xor ecx, ecx
inc ecx
mov dword [eax + 0xcf8], ecx
push ecx
mov ecx, eax
call fcn.0040bce8
jmp 0x444461
mov eax, str.removed
cmp dword [esp + 0x10], ebp
jne 0x444411
push dword [edi + 8]
call fcn.0044c309
push eax
lea eax, [esp + 0x24]
push str.got_problem__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [edi + 8]
add esp, 0xc
sub ecx, 0x15
lea eax, [esp + 0x20]
je 0x44440c
dec ecx
je 0x4444a4
sub ecx, 0x19
jne 0x444411
mov eax, str.prepared_for_safe_removal
push eax
lea eax, [edi + 0x193c]
push eax
push str._s__S
push dword [0x4a7b1c]
push 1
push dword [0x511014]
call fcn.0040601d
add esp, 0x18
cmp dword [edi + 0xc], ebp
jne 0x444461
push dword [edi + 4]
mov ecx, dword [0x512c64]
call fcn.004045e9
cmp dword [edi + 0x10], 6
jge 0x444461
push dword [esi + 8]
push dword [0x5106a4]
call fcn.0043759f
mov dword [esi + 0x1154], ebp
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
push 0x435968
push 0x64
push dword [edi + 0x14]
push dword [0x51069c]
call ebx
call fcn.00435f29
call fcn.0043b757
mov ecx, dword [0x512c60]
call fcn.0040a119
push ebp
call fcn.004360b7
mov eax, dword [esi + 0x18]
cmp eax, 1
jne 0x4444ae
push esi
call fcn.00435d48
jmp 0x4444d1
mov eax, str.disabled
jmp 0x444411
cmp eax, 9
jne 0x4444d1
cmp dword [edi + 0xc], ebp
jne 0x4444d1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x117c]
cmp eax, 0x1388
jbe 0x4444d1
push esi
call fcn.00435cc8
push 0x43af26
push 0x1f4
push 0x19091969
push dword [0x51069c]
call ebx
push 0xc8
call fcn.0043b3a7
call fcn.0043d8ec
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0xc