Function at 0x407000
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x416a8a
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x41c084]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push esi
push edi
mov eax, dword [0x41c084]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
test byte [0x41cf38], 0x10
mov edi, ecx
mov dword [esp + 0x30], edi
mov esi, edx
je 0x407096
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x40705a
mov eax, 0x41cfb4
xor ebx, ebx
jmp 0x407077
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
xor ebx, ebx
add esp, 8
cmp eax, ebx
jne 0x407076
mov eax, str.DevInst.cpp
jmp 0x407077
inc eax
push str.DefaultUninstallVirtualDevice
push 0x639
push eax
push 0x41926c
push str._T____s____s__d___s_:__n
call fcn.0040bbf0
add esp, 0x14
jmp 0x407098
xor ebx, ebx
test byte [0x41cf38], 8
je 0x407171
xor ecx, ecx
cmp ecx, str.DevInst.cpp
jne 0x4070b6
mov eax, 0x41cfb4
jmp 0x4070d1
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
cmp eax, ebx
jne 0x4070d0
mov eax, str.DevInst.cpp
jmp 0x4070d1
inc eax
push str.DefaultUninstallVirtualDevice
push 0x63a
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx edx, al
add esp, 4
push edx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push edi
push 0x4193b0
call fcn.0040bbf0
add esp, 0x20
test byte [0x41cf38], 8
je 0x407171
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x407120
mov eax, 0x41cfb4
jmp 0x40713b
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
cmp eax, ebx
jne 0x40713a
mov eax, str.DevInst.cpp
jmp 0x40713b
inc eax
push str.DefaultUninstallVirtualDevice
push 0x63b
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx ecx, al
add esp, 4
push ecx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push esi
push 0x4193b0
call fcn.0040bbf0
add esp, 0x20
cmp edi, ebx
je 0x407727
cmp esi, ebx
je 0x407727
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x80], ebx
mov eax, esi
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], 0
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4071b0
sub eax, ecx
mov edi, eax
mov eax, esi
lea esi, [esp + 0x34]
call fcn.0040bb20
mov byte [esp + 0x80], 1
xor esi, esi
cmp dword [esp + 0x44], ebx
je 0x40741c
push 1
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
mov bl, 0x7c
push ecx
xor eax, eax
mov byte [esp + 0x20], bl
call fcn.0040c2b0
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
je 0x4073da
mov byte [esp + 0x14], bl
mov eax, dword [esp + 0x18]
cmp eax, esi
jne 0x407214
inc eax
mov esi, eax
jmp 0x4073bc
sub eax, esi
push eax
lea edx, [esp + 0x38]
mov ebx, esi
push edx
lea esi, [esp + 0x5c]
call fcn.0040c000
mov dword [esp + 0x1c], eax
mov byte [esp + 0x80], 2
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
cmp eax, esi
jae 0x4072fa
cmp edi, eax
ja 0x4072fa
mov ebx, dword [esp + 0x28]
mov ecx, eax
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
cmp esi, ebx
jne 0x4072d8
mov ecx, esi
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x40771d
sub ebx, edi
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x4072d8
mov edx, eax
shr edx, 1
mov esi, 0x9249249
sub esi, edx
cmp esi, eax
jae 0x4072be
xor eax, eax
jmp 0x4072c0
add eax, edx
cmp eax, ecx
jae 0x4072c6
mov eax, ecx
push eax
lea ecx, [esp + 0x24]
call fcn.0040c3e0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
lea ecx, [eax*8]
sub ecx, eax
lea edi, [edi + ecx*4]
mov byte [esp + 0x80], 3
test esi, esi
je 0x40738e
jmp 0x407378
mov ebx, dword [esp + 0x28]
cmp esi, ebx
jne 0x407368
mov ecx, esi
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x40771d
sub ebx, edi
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x407368
mov edx, eax
shr edx, 1
mov esi, 0x9249249
sub esi, edx
cmp esi, eax
jae 0x407352
xor eax, eax
jmp 0x407354
add eax, edx
cmp eax, ecx
jae 0x40735a
mov eax, ecx
push eax
lea ecx, [esp + 0x24]
call fcn.0040c3e0
mov esi, dword [esp + 0x24]
mov byte [esp + 0x80], 4
test esi, esi
je 0x40738e
mov edi, dword [esp + 0x1c]
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
call fcn.0040c610
add esi, 0x1c
mov byte [esp + 0x80], 1
cmp dword [esp + 0x68], 0x10
mov dword [esp + 0x24], esi
jb 0x4073b1
mov edx, dword [esp + 0x54]
push edx
call fcn.0040c763
add esp, 4
mov esi, dword [esp + 0x18]
inc esi
mov dword [esp + 0x18], esi
mov eax, esi
push 1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.0040c2b0
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x407204
mov eax, dword [esp + 0x44]
cmp esi, eax
je 0x40741c
sub eax, esi
push eax
lea eax, [esp + 0x38]
mov ebx, esi
push eax
lea esi, [esp + 0x5c]
call fcn.0040c000
mov ecx, eax
lea ebx, [esp + 0x20]
mov byte [esp + 0x80], 5
call fcn.0040c030
cmp dword [esp + 0x68], 0x10
jb 0x40741c
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0040c763
add esp, 4
cmp dword [esp + 0x48], 0x10
jb 0x407430
mov edx, dword [esp + 0x34]
push edx
call fcn.0040c763
add esp, 4
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], 0
je 0x4076bc
mov edi, esi
mov dword [esp + 0x18], eax
test byte [0x41cf38], 8
mov esi, 0x10
je 0x4074de
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x40747f
mov eax, 0x41cfb4
jmp 0x40749a
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x407499
mov eax, str.DevInst.cpp
jmp 0x40749a
inc eax
push str.DefaultUninstallVirtualDevice
push 0x64b
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx ecx, al
add esp, 4
push ecx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
add esp, 0x18
cmp dword [edi + 0x14], esi
jb 0x4074ce
mov eax, dword [edi]
jmp 0x4074d0
mov eax, edi
push eax
push 0x4193b0
call fcn.0040bbf0
add esp, 8
cmp dword [edi + 0x14], esi
jb 0x4074e7
mov ebx, dword [edi]
jmp 0x4074e9
mov ebx, edi
mov ecx, dword [esp + 0x30]
call fcn.00403b20
test byte [0x41cf38], 8
mov esi, eax
je 0x40755f
xor edx, edx
cmp edx, str.DevInst.cpp
jne 0x40750e
mov eax, 0x41cfb4
jmp 0x407529
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x407528
mov eax, str.DevInst.cpp
jmp 0x407529
inc eax
push str.DefaultUninstallVirtualDevice
push 0x64e
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx eax, al
add esp, 4
push eax
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push esi
push str.cmdRemove_Return__d_n
call fcn.0040bbf0
add esp, 0x20
mov ebx, 1
cmp esi, ebx
jne 0x4075d9
test byte [0x41cf38], 8
je 0x4075d3
xor ecx, ecx
cmp ecx, str.DevInst.cpp
jne 0x407582
mov eax, 0x41cfb4
jmp 0x40759e
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x40759c
mov eax, str.DevInst.cpp
jmp 0x40759e
add eax, ebx
push str.DefaultUninstallVirtualDevice
push 0x652
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx edx, al
add esp, 4
push edx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push str.Machine_will_have_to_be_rebooted_to_complete_remove_virtual_device._n
call fcn.0040bbf0
add esp, 0x1c
add dword [esp + 0x1c], ebx
jmp 0x407643
test byte [0x41cf38], 8
je 0x407643
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x4075f2
mov eax, 0x41cfb4
jmp 0x40760e
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x40760c
mov eax, str.DevInst.cpp
jmp 0x40760e
add eax, ebx
push str.DefaultUninstallVirtualDevice
push 0x657
push eax
push 0x41926c
push 8
call fcn.0040b6d0
movsx ecx, al
add esp, 4
push ecx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push str.remove_device_successed__n
call fcn.0040bbf0
add esp, 0x1c
add edi, 0x1c
sub dword [esp + 0x18], ebx
jne 0x407461
cmp dword [esp + 0x1c], 0
je 0x4076bc
test byte [0x41cf38], 0x10
je 0x4076a9
xor edx, edx
cmp edx, str.DevInst.cpp
jne 0x407671
mov eax, 0x41cfb4
jmp 0x40768c
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x40768b
mov eax, str.DevInst.cpp
jmp 0x40768c
inc eax
push str.DefaultUninstallVirtualDevice
push 0x663
push eax
push 0x41926c
push str._T____s____s__d___s_:__________n
call fcn.0040bbf0
add esp, 0x14
lea ebx, [esp + 0x20]
call fcn.0040a870
mov eax, 1
jmp 0x4077e7
test byte [0x41cf38], 0x10
je 0x40770d
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x4076d5
mov eax, 0x41cfb4
jmp 0x4076f0
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
test eax, eax
jne 0x4076ef
mov eax, str.DevInst.cpp
jmp 0x4076f0
inc eax
push str.DefaultUninstallVirtualDevice
push 0x667
push eax
push 0x41926c
push str._T____s____s__d___s_:__________n
call fcn.0040bbf0
add esp, 0x14
lea ebx, [esp + 0x20]
call fcn.0040a870
xor eax, eax
jmp 0x4077e7
push str.vector_T__too_long
call fcn.0040c699
test byte [0x41cf38], 1
je 0x407791
xor ecx, ecx
cmp ecx, str.DevInst.cpp
jne 0x407741
mov eax, 0x41cfb4
jmp 0x40775c
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
cmp eax, ebx
jne 0x40775b
mov eax, str.DevInst.cpp
jmp 0x40775c
inc eax
push str.DefaultUninstallVirtualDevice
push 0x63f
push eax
push 0x41926c
push 1
call fcn.0040b6d0
movsx edx, al
add esp, 4
push edx
push str.__C____s____s__d___s_:
call fcn.0040bbf0
push str.Invalid_Parameters._n
call fcn.0040bbf0
add esp, 0x1c
test byte [0x41cf38], 0x10
je 0x4077e2
xor eax, eax
cmp eax, str.DevInst.cpp
jne 0x4077aa
mov eax, 0x41cfb4
jmp 0x4077c5
push 0x5c
push str.DevInst.cpp
call fcn.0040ce20
add esp, 8
cmp eax, ebx
jne 0x4077c4
mov eax, str.DevInst.cpp
jmp 0x4077c5
inc eax
push str.DefaultUninstallVirtualDevice
push 0x640
push eax
push 0x41926c
push str._T____s____s__d___s_:__________n
call fcn.0040bbf0
add esp, 0x14
mov eax, 2
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.0040c754
mov esp, ebp
pop ebp
ret