Function at 0x464a90
Capabilities:
Get common file path
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1014
call fcn.004a5d20
mov eax, dword [0x4c4004]
xor eax, esp
mov dword [esp + 0x1010], eax
push ebx
push esi
push edi
push 1
call dword [sym.imp.kernel32.dll_SetErrorMode]
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0x20], ax
lea eax, [esp + 0x22]
push eax
call fcn.0048e770
add esp, 0xc
lea eax, [esp + 0x18]
push eax
push 0x400
call dword [sym.imp.kernel32.dll_GetLogicalDriveStringsW]
shr eax, 2
mov dword [0x4def90], eax
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0x820], ax
lea eax, [esp + 0x822]
push eax
call fcn.0048e770
add esp, 0xc
lea eax, [esp + 0x818]
push 0x400
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
cmp dword [0x4def90], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
jle 0x464d0f
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [esp + 0x18]
mov esi, 0x4dbb68
mov dword [esp + 0xc], eax
nop word [eax + eax]
lea eax, [esi - 0x40]
push 0x4ad29c
push eax
call ebx
push dword [esp + 0xc]
lea edi, [esi - 0x90]
mov dword [esi], 0
push edi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
call ebx
push edi
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
cmp dword [esp + 0x14], 0
mov dword [esi + 0xc4], eax
je 0x464c5c
cmp eax, 3
jne 0x464c65
mov ax, word [edi]
cmp ax, word [esp + 0x818]
jne 0x464bbb
mov dword [esi + 0xc4], 0x6f
push 0
push 0
push 0
push 0
push 0
push 0x400
lea eax, [esi - 0x40]
push eax
push edi
call dword [sym.imp.kernel32.dll_GetVolumeInformationW]
lea eax, [esi + 8]
push eax
push esi
push 0
push edi
call dword [sym.imp.kernel32.dll_GetDiskFreeSpaceExW]
push dword [esi + 4]
push dword [esi]
call fcn.004648f0
add esp, 8
push eax
lea eax, [esi + 0x10]
push eax
call ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.004648f0
add esp, 8
push eax
lea eax, [esi + 0x4c]
push eax
call ebx
push 0x4ba8ac
lea edi, [esi - 0x7c]
push edi
call ebx
lea eax, [esi - 0x90]
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_StrCatW]
mov eax, 0x5d
mov word [esi - 0x74], ax
movzx eax, word [esi - 0x78]
push eax
call fcn.00495314
mov word [esi - 0x78], ax
add esp, 4
mov eax, dword [esi + 0xc4]
cmp eax, 0x6f
ja case.0x464c55.7
movzx eax, byte [eax + 0x464d50]
jmp dword [eax*4 + 0x464d2c]
cmp eax, 3
je 0x464bbb
cmp eax, 5
je 0x464bbb
cmp eax, 0x6f
je 0x464bbb
mov edx, 0x4ae664
mov ecx, 0x4ad81c
call fcn.004773a0
push eax
lea eax, [esi - 0x40]
push eax
call ebx
push 0x4ade28
lea eax, [esi + 0x4c]
push eax
call ebx
push 0x4ade28
lea eax, [esi + 0x10]
jmp 0x464c09
mov edx, 0x4ae664
jmp 0x464cdb
mov edx, 0x4ae8ac
jmp 0x464cdb
mov edx, 0x4ae8b4
jmp 0x464cdb
mov edx, 0x4ae8bc
jmp 0x464cdb
mov edx, 0x4ae8c4
jmp 0x464cdb
mov edx, 0x4aea68
jmp 0x464cdb
mov edx, 0x4aeb40
jmp 0x464cdb
mov edx, 0x4af474
mov ecx, 0x4ad81c
call fcn.004773a0
push eax
lea eax, [esi + 0x88]
push eax
call ebx
mov eax, dword [esp + 0x10]
add esi, 0x158
add dword [esp + 0xc], 8
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [0x4def90]
jl 0x464b50
push 0
call dword [sym.imp.kernel32.dll_SetErrorMode]
mov ecx, dword [esp + 0x101c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0048d815
mov esp, ebp
pop ebp
ret