Function at 0x410530
Capabilities:
Copy file
Get common file path
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x430200
mov eax, dword fs:[0]
push eax
mov eax, 0x11c4
call fcn.0041d680
mov eax, dword [0x448070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x11cc], eax
mov eax, dword [ebp + 0x10]
push str.Enter____EnumerateRegistryForPCIDevices__
push 0x44aca0
mov dword [ebp - 0x1190], esi
mov dword [ebp - 0x11d0], eax
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
xor eax, eax
mov dword [ebp - 0x11c8], 0
push 0x206
push eax
mov word [ebp - 0x418], ax
xor ebx, ebx
lea eax, [ebp - 0x416]
mov dword [ebp - 0x119c], 0
xor edi, edi
mov dword [ebp - 0x1194], ebx
push eax
mov dword [ebp - 0x1198], edi
call fcn.0041c090
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push eax
call fcn.0041c090
xor eax, eax
mov dword [ebp - 0x11b0], 0x200
push 0x206
push eax
mov word [ebp - 0xc30], ax
lea eax, [ebp - 0xc2e]
push eax
call fcn.0041c090
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xe38], ax
lea eax, [ebp - 0xe36]
push eax
call fcn.0041c090
add esp, 0x38
mov dword [ebp - 0x11c4], ebx
mov ecx, str.Windows_Vista
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41065c
test dx, dx
je 0x410658
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41065c
add eax, 4
add ecx, 4
test dx, dx
jne 0x410636
xor eax, eax
jmp 0x410661
sbb eax, eax
or eax, 1
test eax, eax
jne 0x411594
lea eax, [ebp - 0x119c]
push eax
push 8
push 0
push str.SYSTEMCurrentControlSetEnumPCI
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x411594
push str._enumerating_registry_for_devices...
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
lea eax, [ebp - 0x11b0]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x210]
push eax
push 0
push dword [ebp - 0x119c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x411574
lea ecx, [ecx]
push esi
sub esp, 0x18
xor eax, eax
mov edx, esp
mov dword [edx + 0x14], 7
mov dword [edx + 0x10], 0
mov word [edx], ax
cmp word [ebp - 0x210], ax
jne 0x4106f6
xor ecx, ecx
jmp 0x410715
lea ecx, [ebp - 0x210]
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410700
sub ecx, esi
mov esi, dword [ebp - 0x1190]
sar ecx, 1
push ecx
lea eax, [ebp - 0x210]
mov ecx, edx
push eax
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const___unsigned_int_
call fcn.004147c0
add esp, 0x1c
test eax, eax
je 0x4110cf
xor eax, eax
mov dword [ebp - 0xe84], 7
mov dword [ebp - 0xe88], 0
mov word [ebp - 0xe98], ax
cmp word [ebp - 0x210], ax
jne 0x41075e
xor ecx, ecx
jmp 0x410776
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410767
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const___unsigned_int_
push 8
xor eax, eax
mov dword [ebp - 4], 0
push str.device:
lea ecx, [ebp - 0xe68]
mov dword [ebp - 0xe54], 7
mov dword [ebp - 0xe58], 0
mov word [ebp - 0xe68], ax
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const___unsigned_int_
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xe98]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0xe68]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int__unsigned_int_
cmp dword [ebp - 0xe54], 8
lea eax, [ebp - 0xe68]
cmovae eax, dword [ebp - 0xe68]
push eax
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
mov byte [ebp - 4], 0
cmp dword [ebp - 0xe54], 8
jb 0x410816
push dword [ebp - 0xe68]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe3c], 7
push 0xffffffffffffffff
push eax
mov word [ebp - 0xe50], ax
lea ecx, [ebp - 0xe50]
lea eax, [ebp - 0xe98]
mov dword [ebp - 0xe40], 0
push eax
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int__unsigned_int_
mov edi, 1
mov dword [ebp - 0x11a8], 0
mov dword [ebp - 0x11ac], edi
mov dword [ebp - 0x11b4], edi
mov dword [ebp - 0x11a4], 0
mov dword [ebp - 0x11a0], 0
mov dword [ebp - 0x11c0], 0
mov dword [ebp - 0x11bc], 0
mov dword [ebp - 0x11b8], 0
lea eax, [ebp - 0x11c0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x11a8]
push eax
call fcn.00411e00
mov eax, dword [ebp - 0x11a4]
add esp, 8
mov ecx, dword [ebp - 0x11a8]
jmp 0x4108c6
mov esi, dword [ebp - 0x1190]
mov ebx, ecx
cmp ecx, eax
je 0x410b69
jmp 0x4108d8
mov esi, dword [ebp - 0x1190]
test edi, edi
je 0x410f9d
xor eax, eax
mov dword [ebp - 0xe54], 7
push 0xffffffffffffffff
push eax
push ebx
lea ecx, [ebp - 0xe68]
mov dword [ebp - 0xe58], 0
mov word [ebp - 0xe68], ax
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int__unsigned_int_
cmp dword [ebp - 0xe54], 8
lea eax, [ebp - 0xe68]
mov byte [ebp - 4], 5
cmovae eax, dword [ebp - 0xe68]
push eax
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
cmp dword [ebp - 0xe54], 8
lea edx, [ebp - 0x11c0]
push edx
lea edx, [ebp - 0x418]
push edx
lea ecx, [ebp - 0xe68]
cmovae ecx, dword [ebp - 0xe68]
lea eax, [ebp - 0xe50]
cmp dword [ebp - 0xe3c], 8
push esi
cmovae eax, dword [ebp - 0xe50]
push ecx
push eax
call fcn.00412370
add esp, 0x1c
test eax, eax
je 0x410a1f
push str.Inf_Match_found
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.PCI_
add esi, 0x594
push 0x12c
push esi
call fcn.0041c1ed
lea eax, [ebp - 0x210]
push eax
push 0x12c
push esi
call fcn.0041d6ab
mov esi, dword [ebp - 0x1190]
lea eax, [ebp - 0x418]
push eax
add esi, 0x194
push 0x100
push esi
call fcn.0041c1ed
push esi
mov dword [0x44aa50], 1
mov dword [ebp - 0x1198], 1
mov dword [ebp - 0x11ac], 0
call fcn.0041c9d4
push str.IOATDMA.INF
push eax
call fcn.0041c307
add esp, 0x38
test eax, eax
je 0x410a1f
push str.IOATINSTALLED
push 0x44aca0
mov dword [0x44aa20], 1
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
cmp dword [ebp - 0x11c4], 0
jne 0x410b39
push 0x104
lea eax, [ebp - 0x620]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea edi, [ebp - 0x620]
add edi, 0xfffffffe
jmp 0x410a50
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x410a50
cmp dword [ebp - 0xe54], 8
lea edx, [ebp - 0xa28]
mov ecx, 0xb
mov esi, str._system32PROUnstl.exe
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xe68]
cmovae ecx, dword [ebp - 0xe68]
movsw word es:[edi], word [esi]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x410a84
lea edi, [ebp - 0xa28]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x410aa0
mov ecx, 6
mov dword [ebp - 0x118c], 0
mov esi, str.PROUnstl.exe
lea eax, [ebp - 0x1188]
rep movsd dword es:[edi], dword [esi]
push 0x24c
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.0041c090
add esp, 0xc
lea eax, [ebp - 0x118c]
push eax
lea eax, [ebp - 0xa28]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x410b39
push 0
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0xa28]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x410b1b
mov dword [ebp - 0x11c4], 1
jmp 0x410b32
call fcn.00417150
push str.Error_copying_Prounstl.exe
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0xe54], 8
mov byte [ebp - 4], 4
jb 0x410b54
push dword [ebp - 0xe68]
call fcn.0041aa29
add esp, 4
mov edi, dword [ebp - 0x11ac]
add ebx, 0x18
cmp ebx, dword [ebp - 0x11a4]
jne 0x4108d2
test edi, edi
je 0x410f9d
mov ebx, dword [ebp - 0x11b4]
mov eax, ebx
dec eax
je 0x410e54
dec eax
je 0x410cbd
dec eax
je 0x410b97
xor edi, edi
mov dword [ebp - 0x11ac], edi
jmp 0x410f82
push 7
push 0xffffffffffffffff
push str.SUBSYS
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t_const___unsigned_int__unsigned_int_const
test eax, eax
je 0x410f82
push eax
push 0
lea eax, [ebp - 0xe68]
push eax
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_
mov esi, eax
lea eax, [ebp - 0xe50]
cmp eax, esi
je 0x410c60
cmp dword [ebp - 0xe3c], 8
jb 0x410bef
push dword [ebp - 0xe50]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe3c], 7
mov dword [ebp - 0xe40], 0
mov word [ebp - 0xe50], ax
cmp dword [esi + 0x14], 8
jae 0x410c2d
mov eax, dword [esi + 0x10]
inc eax
je 0x410c3b
add eax, eax
push eax
lea eax, [ebp - 0xe50]
push esi
push eax
call fcn.0041adc0
add esp, 0xc
jmp 0x410c3b
mov eax, dword [esi]
mov dword [ebp - 0xe50], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xe40], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xe3c], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
cmp dword [ebp - 0xe54], 8
jb 0x410c77
push dword [ebp - 0xe68]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe54], 7
cmp dword [ebp - 0xe3c], 8
mov word [ebp - 0xe68], ax
lea eax, [ebp - 0xe50]
cmovae eax, dword [ebp - 0xe50]
push eax
push 0x44aca0
mov dword [ebp - 0xe58], 0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.Pass_4
jmp 0x410f75
push 7
push 0xffffffffffffffff
push str.SUBSYS
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t_const___unsigned_int__unsigned_int_const
push 4
push 0xffffffffffffffff
push str.REV
lea ecx, [ebp - 0xe98]
mov esi, eax
call sym.SetupBD.exe_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t_const___unsigned_int__unsigned_int_const
test esi, esi
je 0x410f82
test eax, eax
je 0x410f82
mov ecx, dword [ebp - 0xe88]
sub ecx, esi
push ecx
push eax
lea eax, [ebp - 0xe80]
push eax
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_
push esi
push 0
lea eax, [ebp - 0xee0]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_
lea ecx, [ebp - 0xe80]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0xf10]
push eax
call fcn.0040fa70
mov esi, eax
add esp, 0xc
lea eax, [ebp - 0xe50]
cmp eax, esi
je 0x410d93
cmp dword [ebp - 0xe3c], 8
jb 0x410d6a
push dword [ebp - 0xe50]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe3c], 7
push esi
lea ecx, [ebp - 0xe50]
mov dword [ebp - 0xe40], 0
mov word [ebp - 0xe50], ax
call sym.SetupBD.exe_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::_Assign_rv_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____
cmp dword [ebp - 0xefc], 8
jb 0x410daa
push dword [ebp - 0xf10]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xefc], 7
cmp dword [ebp - 0xecc], 8
mov dword [ebp - 0xf00], 0
mov word [ebp - 0xf10], ax
mov byte [ebp - 4], 6
jb 0x410de2
push dword [ebp - 0xee0]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xecc], 7
cmp dword [ebp - 0xe3c], 8
mov word [ebp - 0xee0], ax
lea eax, [ebp - 0xe50]
cmovae eax, dword [ebp - 0xe50]
push eax
push 0x44aca0
mov dword [ebp - 0xed0], 0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.Pass_3
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 0x10
mov byte [ebp - 4], 4
cmp dword [ebp - 0xe6c], 8
jb 0x410f82
push dword [ebp - 0xe80]
call fcn.0041aa29
add esp, 4
jmp 0x410f82
push 4
push 0xffffffffffffffff
push str.REV
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t_const___unsigned_int__unsigned_int_const
test eax, eax
je 0x410f82
push eax
push 0
lea eax, [ebp - 0xef8]
push eax
lea ecx, [ebp - 0xe98]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_
mov esi, eax
lea eax, [ebp - 0xe50]
cmp eax, esi
je 0x410f1d
cmp dword [ebp - 0xe3c], 8
jb 0x410eac
push dword [ebp - 0xe50]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe3c], 7
mov dword [ebp - 0xe40], 0
mov word [ebp - 0xe50], ax
cmp dword [esi + 0x14], 8
jae 0x410eea
mov eax, dword [esi + 0x10]
inc eax
je 0x410ef8
add eax, eax
push eax
lea eax, [ebp - 0xe50]
push esi
push eax
call fcn.0041adc0
add esp, 0xc
jmp 0x410ef8
mov eax, dword [esi]
mov dword [ebp - 0xe50], eax
mov dword [esi], 0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xe40], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0xe3c], eax
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
cmp dword [ebp - 0xee4], 8
jb 0x410f34
push dword [ebp - 0xef8]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xee4], 7
cmp dword [ebp - 0xe3c], 8
mov word [ebp - 0xef8], ax
lea eax, [ebp - 0xe50]
cmovae eax, dword [ebp - 0xe50]
push eax
push 0x44aca0
mov dword [ebp - 0xee8], 0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
push str.Pass_2
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 0x10
mov eax, dword [ebp - 0x11a4]
inc ebx
mov ecx, dword [ebp - 0x11a8]
mov dword [ebp - 0x11b4], ebx
test edi, edi
jne 0x4108c0
mov ebx, dword [ebp - 0x11c0]
test ebx, ebx
je 0x411004
mov edi, dword [ebp - 0x11bc]
mov esi, ebx
cmp ebx, edi
je 0x410fdd
cmp dword [esi + 0x14], 8
jb 0x410fc3
push dword [esi]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x410fb3
push ebx
call fcn.0041aa29
add esp, 4
mov dword [ebp - 0x11c0], 0
mov dword [ebp - 0x11bc], 0
mov dword [ebp - 0x11b8], 0
mov ebx, dword [ebp - 0x11a8]
test ebx, ebx
je 0x411071
mov edi, dword [ebp - 0x11a4]
mov esi, ebx
cmp ebx, edi
je 0x41104a
lea ebx, [ebx]
cmp dword [esi + 0x14], 8
jb 0x411030
push dword [esi]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x411020
push ebx
call fcn.0041aa29
add esp, 4
mov dword [ebp - 0x11a8], 0
mov dword [ebp - 0x11a4], 0
mov dword [ebp - 0x11a0], 0
cmp dword [ebp - 0xe3c], 8
jb 0x411088
push dword [ebp - 0xe50]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe3c], 7
cmp dword [ebp - 0xe84], 8
mov dword [ebp - 0xe40], 0
mov word [ebp - 0xe50], ax
mov dword [ebp - 4], 0xffffffff
jb 0x4110c3
push dword [ebp - 0xe98]
call fcn.0041aa29
add esp, 4
mov ebx, dword [ebp - 0x1194]
mov edi, dword [ebp - 0x1198]
test edi, edi
je 0x411506
push 0x208
lea eax, [ebp - 0xc30]
push eax
push 0xa
push dword [0x44aa54]
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x44a808
lea eax, [ebp - 0xc30]
push eax
lea eax, [ebp - 0xe38]
push 0x104
push eax
call fcn.0041e3d1
add esp, 0x10
lea eax, [ebp - 0xe38]
push eax
push 0x3e8
push dword [ebp - 0x11d0]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push str.Installing_driver_s_
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
mov dword [ebp - 0xe54], 7
xor eax, eax
mov dword [ebp - 0xe58], 0
lea ecx, [ebp - 0xe68]
mov word [ebp - 0xe68], ax
push 0xf
push str.2K_XP_install:
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::assign_wchar_t_const___unsigned_int_
mov ebx, dword [ebp - 0x1190]
cmp word [ebx + 0x594], 0
lea edx, [ebx + 0x594]
mov dword [ebp - 4], 8
jne 0x41118b
xor ecx, ecx
jmp 0x41119f
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411190
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xe68]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const___unsigned_int_
push 2
push 0x436414
lea ecx, [ebp - 0xe68]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const___unsigned_int_
cmp word [ebx + 0x194], 0
lea edi, [ebx + 0x194]
jne 0x4111d2
xor ecx, ecx
jmp 0x4111e6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4111d7
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0xe68]
call sym.SetupBD.exe_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const___unsigned_int_
cmp dword [ebp - 0xe54], 8
lea eax, [ebp - 0xe68]
cmovae eax, dword [ebp - 0xe68]
push eax
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xe54], 8
jb 0x411233
push dword [ebp - 0xe68]
call fcn.0041aa29
add esp, 4
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_void___thiscall_CNcsRegKey::constructor_void_
push str.SoftwareIntelBasedrivers
lea ecx, [ebp - 0xe80]
mov dword [ebp - 4], 9
call sym.SetupBD.exe_public:_void___thiscall_CNcsString::constructor_wchar_t_const__
push 1
lea eax, [ebp - 0xe80]
mov byte [ebp - 4], 0xa
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_bool___thiscall_CNcsRegKey::Open_struct_HKEY_____class_CNcsString_const___bool_
test al, al
mov byte [ebp - 4], 9
sete bl
cmp dword [ebp - 0xe6c], 8
jb 0x411292
push dword [ebp - 0xe80]
call fcn.0041aa29
add esp, 4
test bl, bl
je 0x4112e0
push str.SoftwareIntelBasedrivers
lea ecx, [ebp - 0xe80]
call sym.SetupBD.exe_public:_void___thiscall_CNcsString::constructor_wchar_t_const__
push 0
push 1
lea eax, [ebp - 0xe80]
mov byte [ebp - 4], 0xb
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_bool___thiscall_CNcsRegKey::Create_struct_HKEY_____class_CNcsString_const___bool__bool_
cmp dword [ebp - 0xe6c], 8
mov byte [ebp - 4], 9
jb 0x4112e0
push dword [ebp - 0xe80]
call fcn.0041aa29
add esp, 4
push edi
lea ecx, [ebp - 0xec8]
call sym.SetupBD.exe_public:_void___thiscall_CNcsString::constructor_wchar_t_const__
push str.Prounstl_source_path
lea ecx, [ebp - 0xe80]
mov byte [ebp - 4], 0xc
call sym.SetupBD.exe_public:_void___thiscall_CNcsString::constructor_wchar_t_const__
push 0
lea eax, [ebp - 0xec8]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0xe80]
push eax
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_bool___thiscall_CNcsRegKey::SetValue_class_CNcsString_const___class_CNcsString___bool_
cmp dword [ebp - 0xe6c], 8
mov byte [ebp - 4], 0xc
jb 0x41133a
push dword [ebp - 0xe80]
call fcn.0041aa29
add esp, 4
mov edx, dword [ebp - 0x11cc]
mov ecx, dword [ebp - 0x1190]
push 0
push ecx
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 8]
mov esi, eax
test esi, esi
jns 0x41136d
cmp esi, 0xe0000207
jne 0x41136d
mov dword [0x44aa3c], eax
mov dword [0x44aa40], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x820], ax
lea eax, [ebp - 0x81e]
push eax
call fcn.0041c090
push ebx
push esi
lea eax, [ebp - 0x820]
push str._2K_XP_UpdateDriver___returned:__x______GetLastError___x
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x1c
lea eax, [ebp - 0x820]
lea ecx, [ebp - 0xeb0]
push eax
call sym.SetupBD.exe_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__
cmp dword [ebp - 0xe9c], 8
lea eax, [ebp - 0xeb0]
mov byte [ebp - 4], 0xe
cmovae eax, dword [ebp - 0xeb0]
push eax
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
lea ecx, [ebp - 0xe80]
push str.Prounstl_source_path
call sym.SetupBD.exe_public:_void___thiscall_CNcsString::constructor_wchar_t_const__
lea eax, [ebp - 0xe80]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_bool___thiscall_CNcsRegKey::DeleteValue_class_CNcsString_const__
cmp dword [ebp - 0xe6c], 8
mov byte [ebp - 4], 0xe
jb 0x411420
push dword [ebp - 0xe80]
call fcn.0041aa29
add esp, 4
lea ecx, [ebp - 0xf3c]
call sym.SetupBD.exe_public:_void___thiscall_CNcsRegKey::Close_void_
push edi
call fcn.00415590
add esp, 4
cmp dword [0x44aa24], 0
jne 0x41147e
test ebx, ebx
jne 0x41147e
push 0x104
lea eax, [ebp - 0x620]
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.004136f0
lea eax, [ebp - 0x620]
push eax
call fcn.00414f50
mov ecx, dword [0x44aa24]
add esp, 0x10
test eax, eax
mov eax, 1
cmovne ecx, eax
mov dword [0x44aa24], ecx
cmp dword [ebp - 0xe9c], 8
jb 0x411495
push dword [ebp - 0xeb0]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xe9c], 7
cmp dword [ebp - 0xeb4], 8
mov dword [ebp - 0xea0], 0
mov word [ebp - 0xeb0], ax
jb 0x4114c9
push dword [ebp - 0xec8]
call fcn.0041aa29
add esp, 4
xor eax, eax
mov dword [ebp - 0xeb4], 7
lea ecx, [ebp - 0xf3c]
mov dword [ebp - 0xeb8], 0
mov word [ebp - 0xec8], ax
mov dword [ebp - 4], 0xffffffff
call sym.SetupBD.exe_public_virtual:_void___thiscall_CNcsRegKey::destructor_void_
mov ebx, dword [ebp - 0x1194]
xor edi, edi
mov dword [ebp - 0x1198], edi
push 0x200
lea eax, [ebp - 0x210]
inc ebx
push 0
push eax
mov dword [ebp - 0x1194], ebx
call fcn.0041c090
push 0x208
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.0041c090
add esp, 0x18
mov dword [ebp - 0x11b0], 0x200
lea eax, [ebp - 0x11b0]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x210]
push eax
push ebx
push dword [ebp - 0x119c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov esi, dword [ebp - 0x1190]
cmp eax, 0x103
jne 0x4106d0
push str._finished_enumerating_registry_for_devices
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
add esp, 8
push dword [ebp - 0x119c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41159e
mov dword [ebp - 0x11c8], 0xffffffff
push str.Exit____EnumerateRegistryForPCIDevices__
push 0x44aca0
call sym.SetupBD.exe_public:_void___cdecl_CNcsDebug::Print_wchar_t_const__
mov eax, dword [ebp - 0x11c8]
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041b486
mov esp, ebp
pop ebp
ret