Function at 0x407970
Capabilities:
Check if file exists
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x463f26
mov eax, dword fs:[0]
push eax
sub esp, 0xb60
mov eax, dword [0x482308]
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 ebx, ecx
mov dword [ebp - 0xb58], ebx
push 0xffffffffffffffff
push str.click
lea ecx, [ebp - 0x294]
call fcn.004143fa
push 0xffffffffffffffff
push str.minbtn
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 1
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x408540
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x294]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x94]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x94]
call fcn.00414510
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.click
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.closebtn
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 2
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 3
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x408570
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.click
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.browsebtn
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 4
call fcn.004143fa
sub esp, 0x28
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x408860
mov dword [ecx + 0xc], 0
movzx eax, byte [ebp - 0xb64]
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.click
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.okbtn
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 6
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 7
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], fcn.004089a0
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.link
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.installtip
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 8
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 9
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x409080
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.itemselect
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.partitioncombo
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 0xa
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 0xb
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x4085a0
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0xffffffffffffffff
push str.link
lea ecx, [ebp - 0x94]
call fcn.004143fa
push 0xffffffffffffffff
push str.warnbtn
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], 0xc
call fcn.004143fa
movzx eax, byte [ebp - 0xb64]
sub esp, 0x28
mov ecx, esp
mov byte [ebp - 4], 0xd
mov dword [ecx], vtable.._AV___Func_impl_no_alloc_V___Binder_U_Unforced_std__P8CMainUI__AEXUtagTNotifyUI_DuiLib___ZPAV3_ABU___Ph__00_2__std__XUtagTNotifyUI_DuiLib___std__.0
mov dword [ecx + 8], 0x4086f0
mov dword [ecx + 0xc], 0
mov byte [ecx + 0x10], al
lea eax, [ebp - 0x94]
push eax
mov dword [ecx + 0x14], ebx
lea eax, [ebp - 0x294]
mov dword [ecx + 0x24], ecx
mov ecx, ebx
push eax
call fcn.0040ac60
lea ecx, [ebp - 0x294]
call fcn.00414510
lea ecx, [ebp - 0x94]
mov dword [ebp - 4], 0xffffffff
call fcn.00414510
push 0x200
lea eax, [ebp - 0x410]
push 0
push eax
call fcn.00447640
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00447640
add esp, 0x18
lea eax, [ebp - 0x210]
push 0x100
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x410]
push eax
push 0xff
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
jle 0x407efa
dec eax
lea esi, [ebp - 0x410]
shr eax, 2
inc eax
mov dword [ebp - 0xb54], eax
movzx eax, word [esi]
push eax
call fcn.0044d7dc
movzx ecx, word [ebp - 0x210]
mov edi, eax
push ecx
call fcn.0044d7dc
add esp, 8
cmp edi, eax
je 0x407eea
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x407eea
push str.partitioncombo
lea ecx, [ebx + 0x3c]
call fcn.00411686
push 0x4b4
mov edi, eax
call fcn.00446023
add esp, 4
mov dword [ebp - 0xb5c], eax
mov ecx, eax
mov dword [ebp - 4], 0xe
call fcn.0041533e
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
push esi
mov ecx, ebx
mov edx, dword [ebx]
call dword [edx + 0x2c]
mov edx, dword [edi + 0x4a0]
lea ecx, [edi + 0x4a0]
push ebx
call dword [edx + 0x10]
push 0x208
lea eax, [ebp - 0x618]
push 0
push eax
call fcn.00447640
movzx eax, word [esi]
push eax
push str._c:WindowsSystem32
lea eax, [ebp - 0x618]
push 0x104
push eax
call fcn.004011e0
push 0x208
lea eax, [ebp - 0x820]
push 0
push eax
call fcn.00447640
movzx eax, word [esi]
push eax
push str._c:WindowsSystem32kernel32.dll
lea eax, [ebp - 0x820]
push 0x104
push eax
call fcn.004011e0
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [ebp - 0x618]
add esp, 0x38
push eax
call edi
test eax, eax
je 0x407ee4
lea eax, [ebp - 0x820]
push eax
call edi
test eax, eax
je 0x407ee4
mov eax, dword [ebx + 0x4a0]
lea ecx, [ebx + 0x4a0]
push 1
call dword [eax + 0x14]
mov ebx, dword [ebp - 0xb58]
add esi, 8
sub dword [ebp - 0xb54], 1
jne 0x407dd2
mov eax, dword [0x484c1c]
lea ecx, [ebp - 0xa30]
add eax, 4
push eax
call fcn.004143d5
push str.AutoInstall
lea ecx, [ebp - 0xa30]
mov dword [ebp - 4], 0xf
call fcn.00414873
test eax, eax
jne 0x408051
lea ecx, [ebp - 0x928]
call fcn.0041441e
lea ecx, [ebp - 0x8a4]
mov byte [ebp - 4], 0x10
call fcn.0041441e
lea ecx, [ebp - 0x9ac]
mov byte [ebp - 4], 0x11
call fcn.0041441e
lea eax, [ebp - 0xb54]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x9ac]
push eax
lea eax, [ebp - 0x8a4]
push eax
lea eax, [ebp - 0x928]
push eax
lea eax, [ebp - 0xb5c]
push eax
call fcn.00406280
test eax, eax
je 0x408030
push dword [ebp - 0xb54]
lea ecx, [ebp - 0x8a4]
call fcn.00411afa
push eax
lea ecx, [ebp - 0x928]
call fcn.00411afa
push eax
mov ecx, ebx
call fcn.00409180
test eax, eax
jne 0x407fce
push str.installtip
lea ecx, [ebx + 0x3c]
call fcn.00411686
push 0x47ab54
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x2c]
jmp 0x408030
lea ecx, [ebp - 0xb50]
call fcn.0041441e
lea ecx, [ebp - 0xacc]
mov byte [ebp - 4], 0x13
call fcn.0041441e
push 0x120
lea eax, [ebp - 0xb50]
mov byte [ebp - 4], 0x14
push 0
push eax
call fcn.00447640
sub esp, 0x114
lea eax, [ebp - 0xb50]
mov ecx, esp
push eax
call fcn.00408490
mov ecx, ebx
call fcn.004089a0
lea ecx, [ebp - 0xacc]
call fcn.00414510
lea ecx, [ebp - 0xb50]
call fcn.00414510
lea ecx, [ebp - 0x9ac]
call fcn.00414510
lea ecx, [ebp - 0x8a4]
call fcn.00414510
lea ecx, [ebp - 0x928]
call fcn.00414510
lea ecx, [ebp - 0xa30]
call fcn.00414510
push dword [ebx + 0x348]
push 1
push 0x80
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
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.00445e0f
mov esp, ebp
pop ebp
ret