Function at 0x411083
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
push 0xb14
mov eax, 0x5a7ffd
call fcn.00588aeb
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x8b0]
mov dword [ebp - 0xb08], esi
call sym.SETUP.exe_public:_void___thiscall_CDeviceInf::constructor_void_
push 7
xor ecx, ecx
pop ebx
xor eax, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x4ac], ebx
mov dword [ebp - 0x4b0], ecx
mov word [ebp - 0x4c0], ax
push ecx
mov dword [ebp - 0x4c8], ecx
mov edi, 0x5bef10
push edi
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 1
mov dword [ebp - 0x4c4], ebx
mov word [ebp - 0x4d8], ax
call fcn.00403cef
mov dword [ebp - 0x4f4], ebx
xor ebx, ebx
push ebx
xor eax, eax
push edi
lea ecx, [ebp - 0x508]
mov byte [ebp - 4], 2
mov dword [ebp - 0x4f8], ebx
mov word [ebp - 0x508], ax
call fcn.00403cef
push 0x5bf954
mov edi, str.CInitInfoStorage::GetInstalledOemInf
push edi
push 5
mov byte [ebp - 4], 3
call fcn.00423f75
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x41115a
push 0x5bf98c
push edi
push 5
call fcn.00423f75
add esp, 0xc
mov esi, ebx
jmp 0x41160f
push str.inf
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call fcn.0058af59
push 0x5bef0c
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call fcn.0058af59
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058b0b1
push str.oem.inf
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058af59
add esp, 0x30
lea eax, [ebp - 0xb00]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0xb04], eax
cmp eax, 0xffffffff
je 0x4115dd
lea edi, [esi + 0x10]
mov dword [ebp - 0xb10], edi
mov ebx, eax
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058b0b1
lea eax, [ebp - 0xad4]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058af59
add esp, 0x18
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInf::Clear_void_
lea eax, [ebp - 0x21c]
push eax
push str.FILE_1_s_._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00423f75
add esp, 0x10
cmp dword [edi + 0x14], 8
jb 0x411248
mov eax, dword [edi]
jmp 0x41124a
mov eax, edi
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0041a2a9
pop ecx
pop ecx
test eax, eax
je 0x4115b9
cmp dword [edi + 0x14], 8
jb 0x41126b
mov eax, dword [edi]
jmp 0x41126d
mov eax, edi
push eax
lea eax, [ebp - 0x21c]
push eax
push str.__1_s___has_a_string___2_s__.
push str.CInitInfoStorage::GetInstalledOemInf
push 4
call fcn.00423f75
add esp, 0x14
xor eax, eax
push eax
push 1
push 0x105
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::Init_wchar_t_const___unsigned_int__int__int_
test eax, eax
je 0x4115b9
lea eax, [ebp - 0x21c]
push eax
push str.InfFile__1_s_._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetInfClass_void_
mov ebx, eax
test ebx, ebx
je 0x4115b3
add esi, 0x40
cmp dword [esi + 0x14], 8
jb 0x4112ea
mov eax, dword [esi]
jmp 0x4112ec
mov eax, esi
push eax
push ebx
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x41131c
cmp dword [esi + 0x14], 8
jb 0x411301
mov esi, dword [esi]
push esi
push ebx
push str.InfClass_is_not_match_SRC_1_s___DST_2_s__._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00423f75
add esp, 0x14
jmp 0x4115ad
push 1
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::GetFullInfo_int_
test eax, eax
jne 0x411346
push str.Cannot_get_inf_full_info._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00423f75
add esp, 0xc
jmp 0x4115ad
mov eax, dword [ebp - 0xb08]
add eax, 0x100
mov dword [ebp - 0xb0c], eax
mov esi, dword [eax]
xor eax, eax
lea ecx, [ebp - 0x8b0]
mov ebx, eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
test eax, eax
je 0x411422
mov edi, dword [ebp - 0xb0c]
push ebx
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetDeviceId_unsigned_long_int_
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x411392
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c0]
call fcn.00403cef
cmp dword [ebp - 0x4ac], 8
mov eax, dword [ebp - 0x4b0]
lea ecx, [ebp - 0x4c0]
cmovae ecx, dword [ebp - 0x4c0]
push fcn.005896c4
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x4c0]
cmovae edx, dword [ebp - 0x4c0]
push edx
push eax
lea ecx, [ebp - 0x4c0]
cmovae ecx, dword [ebp - 0x4c0]
push ecx
lea eax, [ebp - 0xb20]
push eax
call fcn.00405b31
add esp, 0x14
lea eax, [ebp - 0x4c0]
push eax
lea eax, [ebp - 0xb18]
push eax
mov ecx, edi
call fcn.0041fa16
mov esi, dword [eax]
cmp esi, dword [edi]
jne 0x41141c
lea ecx, [ebp - 0x8b0]
inc ebx
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
cmp ebx, eax
jb 0x411376
mov edi, dword [ebp - 0xb10]
mov eax, dword [ebp - 0xb0c]
cmp esi, dword [eax]
jne 0x411436
push str.no_hardware_id_matched._n
jmp 0x411332
push 0x80
xor ebx, ebx
lea eax, [ebp - 0x29c]
push ebx
push eax
call fcn.00587a70
add esi, 0x10
mov dword [ebp - 0xb14], 0x40
mov eax, dword [esi + 0x10]
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x411465
mov esi, dword [esi]
lea ecx, [ebp - 0xb14]
push ecx
lea ecx, [ebp - 0x29c]
push ecx
push 1
inc eax
push eax
push esi
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetSuitableDriverName_wchar_t_const___unsigned_int__int__wchar_t___unsigned_long_int__
test eax, eax
jne 0x411491
push str.no_suitable_driver_has_found._n
jmp 0x411332
cmp dword [edi + 0x14], 8
jb 0x41149b
mov eax, dword [edi]
jmp 0x41149d
mov eax, edi
lea ecx, [ebp - 0x29c]
push ecx
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x4114ba
push str.Same_description_is_not_found._n
jmp 0x411332
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetDriverVer_void_
push eax
lea ecx, [ebp - 0x4f0]
call fcn.004010bc
lea eax, [ebp - 0x21c]
push eax
push str.Same_target_inf_has_been_found.___1_s___n
mov esi, str.CInitInfoStorage::GetInstalledOemInf
push esi
push 4
mov byte [ebp - 4], 4
call fcn.00423f75
cmp dword [ebp - 0x4dc], 8
lea eax, [ebp - 0x4f0]
cmovae eax, dword [ebp - 0x4f0]
push eax
push str.DriverVersion___1_s___n
push esi
push 4
call fcn.00423f75
add esp, 0x20
cmp dword [ebp - 0x4c8], 0
je 0x411558
sub esp, 0x18
lea eax, [ebp - 0x508]
mov ecx, esp
mov dword [ebp - 0xb0c], esp
push eax
call fcn.00401069
sub esp, 0x18
lea eax, [ebp - 0x4f0]
mov ecx, esp
push eax
mov byte [ebp - 4], 5
call fcn.00401069
mov byte [ebp - 4], 4
call fcn.004088ed
add esp, 0x30
test eax, eax
jne 0x41159b
cmp word [ebp - 0x21c], 0
jne 0x411566
mov eax, ebx
jmp 0x411573
lea eax, [ebp - 0x21c]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.00403cef
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x508]
call fcn.00403c35
push ebx
push 1
lea ecx, [ebp - 0x4f0]
mov byte [ebp - 4], 3
call fcn.00403a7f
mov esi, dword [ebp - 0xb08]
mov ebx, dword [ebp - 0xb04]
lea eax, [ebp - 0xb00]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4111e5
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor ebx, ebx
mov edi, str.CInitInfoStorage::GetInstalledOemInf
cmp dword [ebp - 0x4c8], 0
je 0x4115fc
lea ecx, [esi + 0x28]
lea eax, [ebp - 0x4d8]
cmp ecx, eax
je 0x4115fc
push 0xffffffffffffffff
push ebx
push eax
call fcn.00403c35
push 0x5bf970
push edi
push 5
call fcn.00423f75
xor esi, esi
add esp, 0xc
inc esi
push ebx
push 1
lea ecx, [ebp - 0x508]
call fcn.00403a7f
push ebx
push 1
lea ecx, [ebp - 0x4d8]
call fcn.00403a7f
push ebx
push 1
lea ecx, [ebp - 0x4c0]
call fcn.00403a7f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInf::destructor_void_
mov eax, esi
call fcn.00588a9a
ret 4