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

Disassembly:
push 0xb14
mov eax, 0x5af024
call fcn.0058f792
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
xor eax, eax
pop ebx
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, 0x5c4f10
push edi
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 1
mov dword [ebp - 0x4c4], ebx
mov word [ebp - 0x4d8], ax
call fcn.00404be0
mov dword [ebp - 0x4f4], ebx
lea ecx, [ebp - 0x508]
xor ebx, ebx
mov byte [ebp - 4], 2
push ebx
xor eax, eax
mov dword [ebp - 0x4f8], ebx
push edi
mov word [ebp - 0x508], ax
call fcn.00404be0
push 0x5c59f8
mov edi, str.CInitInfoStorage::GetInstalledOemInf
mov byte [ebp - 4], 3
push edi
push 5
call fcn.00424dad
add esp, 0xc
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x4120e5
push 0x5c5a30
push edi
push 5
call fcn.00424dad
add esp, 0xc
mov esi, ebx
jmp 0x41259a
push str.inf
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call fcn.00591c0a
push 0x5c4f0c
lea eax, [ebp - 0x4a8]
push 0x105
push eax
call fcn.00591c0a
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00591d62
push str.oem.inf
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00591c0a
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 0x412568
lea edi, [esi + 0x10]
mov ebx, eax
mov dword [ebp - 0xb10], edi
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00591d62
lea eax, [ebp - 0xad4]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00591c0a
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.00424dad
add esp, 0x10
cmp dword [edi + 0x14], 8
jb 0x4121d3
mov eax, dword [edi]
jmp 0x4121d5
mov eax, edi
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0041b278
pop ecx
pop ecx
test eax, eax
je 0x412544
cmp dword [edi + 0x14], 8
jb 0x4121f6
mov eax, dword [edi]
jmp 0x4121f8
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.00424dad
add esp, 0x14
lea ecx, [ebp - 0x8b0]
xor eax, eax
push eax
push 1
push 0x105
lea eax, [ebp - 0x21c]
push eax
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::Init_wchar_t_const___unsigned_int__int__int_
test eax, eax
je 0x412544
lea eax, [ebp - 0x21c]
push eax
push str.InfFile__1_s_._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00424dad
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 0x41253e
add esi, 0x40
cmp dword [esi + 0x14], 8
jb 0x412275
mov eax, dword [esi]
jmp 0x412277
mov eax, esi
push eax
push ebx
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x4122a7
cmp dword [esi + 0x14], 8
jb 0x41228c
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.00424dad
add esp, 0x14
jmp 0x412538
push 1
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::GetFullInfo_int_
test eax, eax
jne 0x4122d1
push str.Cannot_get_inf_full_info._n
push str.CInitInfoStorage::GetInstalledOemInf
push 5
call fcn.00424dad
add esp, 0xc
jmp 0x412538
mov eax, dword [ebp - 0xb08]
lea ecx, [ebp - 0x8b0]
add eax, 0x100
mov dword [ebp - 0xb0c], eax
mov esi, dword [eax]
xor eax, eax
mov ebx, eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
test eax, eax
je 0x4123ad
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 0x41231d
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c0]
call fcn.00404be0
cmp dword [ebp - 0x4ac], 8
lea ecx, [ebp - 0x4c0]
mov eax, dword [ebp - 0x4b0]
lea edx, [ebp - 0x4c0]
cmovae ecx, dword [ebp - 0x4c0]
cmovae edx, dword [ebp - 0x4c0]
push fcn.00590371
push edx
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x4c0]
cmovae ecx, dword [ebp - 0x4c0]
lea eax, [ebp - 0xb20]
push ecx
push eax
call fcn.004069eb
add esp, 0x14
lea eax, [ebp - 0x4c0]
mov ecx, edi
push eax
lea eax, [ebp - 0xb18]
push eax
call fcn.0042e43d
mov esi, dword [eax]
cmp esi, dword [edi]
jne 0x4123a7
lea ecx, [ebp - 0x8b0]
inc ebx
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
cmp ebx, eax
jb 0x412301
mov edi, dword [ebp - 0xb10]
mov eax, dword [ebp - 0xb0c]
cmp esi, dword [eax]
jne 0x4123c1
push str.no_hardware_id_matched._n
jmp 0x4122bd
push 0x80
xor ebx, ebx
lea eax, [ebp - 0x29c]
push ebx
push eax
call fcn.0058e700
add esi, 0x10
mov dword [ebp - 0xb14], 0x40
add esp, 0xc
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
jb 0x4123f0
mov esi, dword [esi]
lea ecx, [ebp - 0xb14]
inc eax
push ecx
lea ecx, [ebp - 0x29c]
push ecx
push 1
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 0x41241c
push str.no_suitable_driver_has_found._n
jmp 0x4122bd
cmp dword [edi + 0x14], 8
jb 0x412426
mov eax, dword [edi]
jmp 0x412428
mov eax, edi
lea ecx, [ebp - 0x29c]
push ecx
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x412445
push str.Same_description_is_not_found._n
jmp 0x4122bd
lea ecx, [ebp - 0x8b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetDriverVer_void_
push eax
lea ecx, [ebp - 0x4f0]
call fcn.00401c0c
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 4
push eax
push str.Same_target_inf_has_been_found.___1_s___n
mov esi, str.CInitInfoStorage::GetInstalledOemInf
push esi
push 4
call fcn.00424dad
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.00424dad
add esp, 0x20
cmp dword [ebp - 0x4c8], 0
je 0x4124e3
sub esp, 0x18
lea eax, [ebp - 0x508]
mov ecx, esp
mov dword [ebp - 0xb0c], esp
push eax
call fcn.00401bb9
sub esp, 0x18
mov byte [ebp - 4], 5
lea eax, [ebp - 0x4f0]
mov ecx, esp
push eax
call fcn.00401bb9
mov byte [ebp - 4], 4
call fcn.00409814
add esp, 0x30
test eax, eax
jne 0x412526
cmp word [ebp - 0x21c], 0
jne 0x4124f1
mov eax, ebx
jmp 0x4124fe
lea eax, [ebp - 0x21c]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x4d8]
call fcn.00404be0
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x508]
call fcn.00404b26
push ebx
push 1
lea ecx, [ebp - 0x4f0]
mov byte [ebp - 4], 3
call fcn.00404970
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 0x412170
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor ebx, ebx
mov edi, str.CInitInfoStorage::GetInstalledOemInf
cmp dword [ebp - 0x4c8], 0
je 0x412587
lea ecx, [esi + 0x28]
lea eax, [ebp - 0x4d8]
cmp ecx, eax
je 0x412587
push 0xffffffffffffffff
push ebx
push eax
call fcn.00404b26
push 0x5c5a14
push edi
push 5
call fcn.00424dad
xor esi, esi
add esp, 0xc
inc esi
push ebx
push 1
lea ecx, [ebp - 0x508]
call fcn.00404970
push ebx
push 1
lea ecx, [ebp - 0x4d8]
call fcn.00404970
push ebx
push 1
lea ecx, [ebp - 0x4c0]
call fcn.00404970
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.0058f741
ret 4